From ab6cd95931b4b3abd1356bcf2adc2d108d4bd417 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 26 Feb 2024 16:36:50 -0800 Subject: [PATCH] [New] add `--entrypoints-legacy` CLI command --- .changeset/violet-bananas-own.md | 6 ++ packages/cli/README.md | 3 +- packages/cli/src/index.ts | 8 ++ packages/cli/test/snapshots.test.ts | 2 + ...--ignore-rules=cjs-only-exports-default.md | 50 ++++++++++++ packages/core/src/checkPackage.ts | 6 ++ .../core/src/internal/getEntrypointInfo.ts | 12 ++- .../fixtures/eslint-module-utils@2.8.1.tgz | Bin 0 -> 15565 bytes .../eslint-module-utils@2.8.1.tgz.json | 76 ++++++++++++++++++ 9 files changed, 160 insertions(+), 3 deletions(-) create mode 100644 .changeset/violet-bananas-own.md create mode 100644 packages/cli/test/snapshots/eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default.md create mode 100644 packages/core/test/fixtures/eslint-module-utils@2.8.1.tgz create mode 100644 packages/core/test/snapshots/eslint-module-utils@2.8.1.tgz.json diff --git a/.changeset/violet-bananas-own.md b/.changeset/violet-bananas-own.md new file mode 100644 index 0000000..ef89e41 --- /dev/null +++ b/.changeset/violet-bananas-own.md @@ -0,0 +1,6 @@ +--- +"@arethetypeswrong/cli": minor +"@arethetypeswrong/core": minor +--- + +add `--entrypoints-legacy` option diff --git a/packages/cli/README.md b/packages/cli/README.md index 70c205e..61352ff 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -132,12 +132,13 @@ In the config file, `format` can be a string value. #### Entrypoints -`attw` automatically discovers package entrypoints by looking at package.json `exports` and subdirectories with additional package.json files. This automatic discovery process can be overridden with the `--entrypoints` option, or altered with the `--include-entrypoints` and `--exclude-entrypoints` options: +`attw` automatically discovers package entrypoints by looking at package.json `exports` and subdirectories with additional package.json files. In a package lacking `exports`, providing the `--entrypoints-legacy` option will include all published code files. This automatic discovery process can be overridden with the `--entrypoints` option, or altered with the `--include-entrypoints` and `--exclude-entrypoints` options: ```shell attw --pack . --entrypoints . one two three # Just ".", "./one", "./two", "./three" attw --pack . --include-entrypoints added # Auto-discovered entyrpoints plus "./added" attw --pack . --exclude-entrypoints styles.css # Auto-discovered entrypoints except "./styles.css" +attw --pack . --entrypoints-legacy # All published code files ``` #### Ignore Rules diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index b722758..984e071 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -37,6 +37,7 @@ interface Opts extends render.RenderOptions { entrypoints?: string[]; includeEntrypoints?: string[]; excludeEntrypoints?: string[]; + entrypointsLegacy?: boolean; } program @@ -71,6 +72,11 @@ particularly ESM-related module resolution issues.`, "Specify entrypoints to check in addition to automatically discovered ones.", ) .option("--exclude-entrypoints ", "Specify entrypoints to exclude from checking.") + .option( + "--entrypoints-legacy", + 'In packages without the `exports` field, every file is an entry point. Specifying this option ' + + 'only takes effect when no entrypoints are automatically detected, or explicitly provided with other options.' + ) .addOption( new Option("--ignore-rules ", "Specify rules to ignore").choices(Object.values(problemFlags)).default([]), ) @@ -127,6 +133,7 @@ particularly ESM-related module resolution issues.`, entrypoints: opts.entrypoints, includeEntrypoints: opts.includeEntrypoints, excludeEntrypoints: opts.excludeEntrypoints, + entrypointsLegacy: opts.entrypointsLegacy, }); } } catch (error) { @@ -189,6 +196,7 @@ particularly ESM-related module resolution issues.`, entrypoints: opts.entrypoints, includeEntrypoints: opts.includeEntrypoints, excludeEntrypoints: opts.excludeEntrypoints, + entrypointsLegacy: opts.entrypointsLegacy, }); } catch (error) { handleError(error, "checking file"); diff --git a/packages/cli/test/snapshots.test.ts b/packages/cli/test/snapshots.test.ts index 42f98e0..8ca60c9 100644 --- a/packages/cli/test/snapshots.test.ts +++ b/packages/cli/test/snapshots.test.ts @@ -40,6 +40,8 @@ const tests = [ "react@18.2.0.tgz", `--definitely-typed ${new URL("../../../core/test/fixtures/@types__react@18.2.21.tgz", import.meta.url).pathname}`, ], + + ["eslint-module-utils@2.8.1.tgz", "--entrypoints-legacy --ignore-rules=cjs-only-exports-default"], ]; const defaultOpts = "-f table-flipped"; diff --git a/packages/cli/test/snapshots/eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default.md b/packages/cli/test/snapshots/eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default.md new file mode 100644 index 0000000..368946c --- /dev/null +++ b/packages/cli/test/snapshots/eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default.md @@ -0,0 +1,50 @@ +# eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default + +``` +$ attw eslint-module-utils@2.8.1.tgz --entrypoints-legacy --ignore-rules=cjs-only-exports-default + + +eslint-module-utils v2.8.1 + +Build tools: +- typescript@next + + (ignoring rules: 'cjs-only-exports-default') + + No problems found 🌟 + + +┌─────────────────────────────────────────┬────────┬───────────────────┬───────────────────┬─────────┐ +│ │ node10 │ node16 (from CJS) │ node16 (from ESM) │ bundler │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/declaredScope.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/hash.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/ignore.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/module-require.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/ModuleCache.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/moduleVisitor.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/parse.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/pkgDir.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/pkgUp.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/readPkgUp.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/resolve.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/unambiguous.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +├─────────────────────────────────────────┼────────┼───────────────────┼───────────────────┼─────────┤ +│ "eslint-module-utils/visit.js" │ 🟢 │ 🟢 (CJS) │ 🟢 (CJS) │ 🟢 │ +└─────────────────────────────────────────┴────────┴───────────────────┴───────────────────┴─────────┘ + + +``` + +Exit code: 0 \ No newline at end of file diff --git a/packages/core/src/checkPackage.ts b/packages/core/src/checkPackage.ts index 01874ba..028355b 100644 --- a/packages/core/src/checkPackage.ts +++ b/packages/core/src/checkPackage.ts @@ -28,6 +28,12 @@ export interface CheckPackageOptions { * Entrypoints to exclude from checking. */ excludeEntrypoints?: (string | RegExp)[]; + + /** + * Whether to automatically consider all published files as entrypoints + * in the absence of any other detected or configured entrypoints. + */ + entrypointsLegacy?: boolean; } export async function checkPackage(pkg: Package, options?: CheckPackageOptions): Promise { diff --git a/packages/core/src/internal/getEntrypointInfo.ts b/packages/core/src/internal/getEntrypointInfo.ts index 55ae600..b91ba44 100644 --- a/packages/core/src/internal/getEntrypointInfo.ts +++ b/packages/core/src/internal/getEntrypointInfo.ts @@ -13,13 +13,21 @@ import type { import { allBuildTools, getResolutionKinds } from "../utils.js"; import type { CheckPackageOptions } from "../checkPackage.js"; -function getEntrypoints(fs: Package, exportsObject: any, options: CheckPackageOptions | undefined): string[] { +const extensions = new Set([".jsx", ".tsx", ".js", ".ts", ".mjs", ".cjs", ".mts", ".cjs"]); + +function getEntrypoints(fs: Package, exportsObject: unknown, options: CheckPackageOptions | undefined): string[] { if (options?.entrypoints) { return options.entrypoints.map((e) => formatEntrypointString(e, fs.packageName)); } if (exportsObject === undefined && fs) { - const proxies = getProxyDirectories(`/node_modules/${fs.packageName}`, fs); + const rootDir = `/node_modules/${fs.packageName}`; + const proxies = getProxyDirectories(rootDir, fs); if (proxies.length === 0) { + if (options?.entrypointsLegacy) { + return fs.listFiles() + .filter(f => !ts.isDeclarationFileName(f) && extensions.has(f.slice(f.lastIndexOf(".")))) + .map(f => "." + f.slice(rootDir.length)); + } return ["."]; } return proxies; diff --git a/packages/core/test/fixtures/eslint-module-utils@2.8.1.tgz b/packages/core/test/fixtures/eslint-module-utils@2.8.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6893543bc4ed9211a922d4142a0ffdf4eaa908b2 GIT binary patch literal 15565 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�{n6|%izNC!bkQDxY~E!i5Pt&LOngYMuJqq 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 bVGqmq$MR?Sv;0~9WIz8O|NeQ705kyralxU% literal 0 HcmV?d00001 diff --git a/packages/core/test/snapshots/eslint-module-utils@2.8.1.tgz.json b/packages/core/test/snapshots/eslint-module-utils@2.8.1.tgz.json new file mode 100644 index 0000000..a1df5c2 --- /dev/null +++ b/packages/core/test/snapshots/eslint-module-utils@2.8.1.tgz.json @@ -0,0 +1,76 @@ +{ + "packageName": "eslint-module-utils", + "packageVersion": "2.8.1", + "types": { + "kind": "included" + }, + "buildTools": { + "typescript": "next" + }, + "entrypoints": { + ".": { + "subpath": ".", + "resolutions": { + "node10": { + "name": ".", + "resolutionKind": "node10", + "visibleProblems": [ + 0 + ] + }, + "node16-cjs": { + "name": ".", + "resolutionKind": "node16-cjs", + "visibleProblems": [ + 1 + ] + }, + "node16-esm": { + "name": ".", + "resolutionKind": "node16-esm", + "visibleProblems": [ + 2 + ] + }, + "bundler": { + "name": ".", + "resolutionKind": "bundler", + "visibleProblems": [ + 3 + ] + } + }, + "hasTypes": false, + "isWildcard": false + } + }, + "programInfo": { + "node10": {}, + "node16": { + "moduleKinds": {} + }, + "bundler": {} + }, + "problems": [ + { + "kind": "NoResolution", + "entrypoint": ".", + "resolutionKind": "node10" + }, + { + "kind": "NoResolution", + "entrypoint": ".", + "resolutionKind": "node16-cjs" + }, + { + "kind": "NoResolution", + "entrypoint": ".", + "resolutionKind": "node16-esm" + }, + { + "kind": "NoResolution", + "entrypoint": ".", + "resolutionKind": "bundler" + } + ] +}