From 458ca8671ba5294ee3970a0d257880cb80896679 Mon Sep 17 00:00:00 2001 From: Andrew Duthie Date: Tue, 4 Jun 2024 14:35:36 -0400 Subject: [PATCH 1/2] Validate unnecessary exempted files in TypeScript enforcement changelog: Internal, Automated Testing, Validate unnecessary exempted files in TypeScript enforcement --- scripts/enforce-typescript-files.mjs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/enforce-typescript-files.mjs b/scripts/enforce-typescript-files.mjs index 14e3d10abea..32a50c27589 100755 --- a/scripts/enforce-typescript-files.mjs +++ b/scripts/enforce-typescript-files.mjs @@ -61,7 +61,6 @@ const LEGACY_FILE_EXCEPTIONS = [ 'spec/javascript/packages/document-capture/context/acuant-spec.jsx', 'spec/javascript/packages/document-capture/context/device-spec.jsx', 'spec/javascript/packages/document-capture/context/failed-capture-attempts-spec.jsx', - 'spec/javascript/packages/document-capture/context/feature-flag-spec.jsx', 'spec/javascript/packages/document-capture/context/file-base64-cache-spec.js', 'spec/javascript/packages/document-capture/context/index-spec.js', 'spec/javascript/packages/document-capture/context/selfie-capture-spec.jsx', @@ -83,15 +82,24 @@ const packagesWithEntrypoints = await glob('app/javascript/packages/*/package.js const jsFiles = await glob( ['app/{javascript/packages,components}/**/*.{js,jsx}', 'spec/javascript/*/**/*.{js,jsx}'], - { - ignore: [...packagesWithEntrypoints.map((path) => join(path, '**')), ...LEGACY_FILE_EXCEPTIONS], - }, + { ignore: [...packagesWithEntrypoints.map((path) => join(path, '**'))] }, ); +const invalidExceptions = LEGACY_FILE_EXCEPTIONS.filter((file) => !jsFiles.includes(file)); + +assert( + !invalidExceptions.length, + `Unnecessary exception should be removed from LEGACY_FILE_EXCEPTIONS allowlist. + +Found ${JSON.stringify(invalidExceptions)}`, +); + +const unexpectedJSFiles = jsFiles.filter((file) => !LEGACY_FILE_EXCEPTIONS.includes(file)); + assert( - !jsFiles.length, + !unexpectedJSFiles.length, `All new JavaScript files should be written with TypeScript extensions (.ts, .tsx). -Found ${JSON.stringify(jsFiles)} +Found ${JSON.stringify(unexpectedJSFiles)} `, ); From 75e3d43ddcfb267ee1e71cf94712c5a8307decd7 Mon Sep 17 00:00:00 2001 From: Andrew Duthie Date: Tue, 4 Jun 2024 15:34:14 -0400 Subject: [PATCH 2/2] Remove unnecessary array splat --- scripts/enforce-typescript-files.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/enforce-typescript-files.mjs b/scripts/enforce-typescript-files.mjs index 32a50c27589..02ef7efe969 100755 --- a/scripts/enforce-typescript-files.mjs +++ b/scripts/enforce-typescript-files.mjs @@ -82,7 +82,7 @@ const packagesWithEntrypoints = await glob('app/javascript/packages/*/package.js const jsFiles = await glob( ['app/{javascript/packages,components}/**/*.{js,jsx}', 'spec/javascript/*/**/*.{js,jsx}'], - { ignore: [...packagesWithEntrypoints.map((path) => join(path, '**'))] }, + { ignore: packagesWithEntrypoints.map((path) => join(path, '**')) }, ); const invalidExceptions = LEGACY_FILE_EXCEPTIONS.filter((file) => !jsFiles.includes(file));