eslint-plugin-fast-import 1.9.2 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.10.0 (1/28/2026)
4
+
5
+ - Added `no-node-builtins` rule
6
+
3
7
  ## 1.9.2 (1/25/2026)
4
8
 
5
9
  - Fixed bug where tsconfig with non-relative extends was not being resolved correctly
package/CLAUDE.md CHANGED
@@ -36,9 +36,10 @@ The plugin uses a three-phase pipelined algorithm for analyzing imports/exports.
36
36
  See [mode configuration in README.md](README.md#mode) for details on caching modes.
37
37
 
38
38
  **Important for development:**
39
+
39
40
  - Caching is disabled when running `npm run lint` (uses `one-shot` mode via auto-detection)
40
- - Caching is disabled in tests (tests explicitly set `mode: 'fix'` in settings)
41
- - The `fix` and `editor` modes enable caching for file updates
41
+ - Caching is enabled but file watching is disabled in tests (tests explicitly set `mode: 'fix'` in settings)
42
+ - The `fix` and `editor` modes enable caching for file updates, but only `editor` mode enables file watching
42
43
 
43
44
  ### Project Structure
44
45
 
@@ -75,6 +76,8 @@ src/
75
76
 
76
77
  ### Adding a New Rule
77
78
 
79
+ See [Creating new rules](README.md#creating-new-rules) for detailed documentation.
80
+
78
81
  1. Create a new directory under `src/rules/`
79
82
  2. Implement the rule using `createRule` from `src/rules/util.ts`
80
83
  3. Use `getESMInfo(context)` to access parsed import/export information
@@ -82,7 +85,9 @@ src/
82
85
  - Create a `project/` directory with sample source files for the rule to analyze
83
86
  - Tests point `rootDir` to this project directory (see `TEST_PROJECT_DIR` constant)
84
87
  - Test cases reference files within that project (e.g., `FILE_A`, `FILE_B`)
85
- 5. Export from `src/plugin.ts`
88
+ 5. Create a README.md in the rule directory following the style of other rules
89
+ 6. Export from `src/plugin.ts`
90
+ 7. Add the rule to the list of rules in [Rules](README.md#rules)
86
91
 
87
92
  ### Working with Function Overloads
88
93
 
package/README.md CHANGED
@@ -63,9 +63,12 @@ npm install --save-dev eslint-plugin-fast-import
63
63
  | [no-unused-exports](src/rules/unused/README.md) | 🧰 ☑️ | |
64
64
  | [consistent-file-extensions](src/rules/extension/README.md) | 🧰 | 🔧 |
65
65
  | [require-node-prefix](src/rules/nodePrefix/README.md) | 🧰 | 🔧 |
66
- | [no-restricted-imports](src/rules/restricted/README.md) \* | | |
66
+ | [no-node-builtins](src/rules/nodeBuiltins/README.md) \* | | |
67
+ | [no-restricted-imports](src/rules/restricted/README.md) \*\* | | |
67
68
 
68
- \* No restricted imports requires rule-specific options for use, and so is not enabled in any configuration.
69
+ \* No node builtins is intended for non-Node.js environments which can only be determined by the user, and so is not enabled in any configuration.
70
+
71
+ \*\* No restricted imports requires rule-specific options for use, and so is not enabled in any configuration.
69
72
 
70
73
  There is also a configuration called "off" that disables all rules. This configuration is useful if you want to disable all rules for specific files after enabling rules for all other files.
71
74
 
@@ -456,7 +459,7 @@ This is the most important of the three functions. If the file represented by th
456
459
 
457
460
  See the TypeScript types for full details, which are reasonably well commented.
458
461
 
459
- Each ESM entry includes two AST node ranges. A range is the start and end string indices of the node in the original source code. The first range is the range for the entire statement, and the second is a "report" range that is almost always what you want to pass to `context.reportError`. The report range is scoped to the most useful AST node representing the import, export, or reexport. For example, in `import { foo } from './bar'`, the statement range represents all of the code, and the report range is scoped to just `foo`.
462
+ Each ESM entry includes two AST node ranges: `statementNodeRange` and `reportNodeRange`. A range is the start and end string indices of the node in the original source code. The first range is the range for the entire statement, and the second is a "report" range that is almost always what you want to pass to `context.reportError`. The report range is scoped to the most useful AST node representing the import, export, or reexport. For example, in `import { foo } from './bar'`, the statement range represents all of the code, and the report range is scoped to just `foo`.
460
463
 
461
464
  See [getLocFromRange](#getlocfromrange) for more information on using ranges to report errors
462
465
 
package/dist/plugin.d.ts CHANGED
@@ -9,7 +9,7 @@ declare const plugin: {
9
9
  configs: {};
10
10
  rules: {
11
11
  'consistent-file-extensions': TSESLint.RuleModule<"missingExtension" | "extraExtension" | "incorrectExtension", [{
12
- mode?: "never" | "always" | undefined;
12
+ mode?: "always" | "never" | undefined;
13
13
  forceTsExtension?: boolean | undefined;
14
14
  } | undefined], unknown, TSESLint.RuleListener> & {
15
15
  name: string;
@@ -37,6 +37,9 @@ declare const plugin: {
37
37
  'no-named-as-default': TSESLint.RuleModule<"noNamedAsDefault", [], unknown, TSESLint.RuleListener> & {
38
38
  name: string;
39
39
  };
40
+ 'no-node-builtins': TSESLint.RuleModule<"noNodeBuiltins", [], unknown, TSESLint.RuleListener> & {
41
+ name: string;
42
+ };
40
43
  'require-node-prefix': TSESLint.RuleModule<"missingNodePrefix", [], unknown, TSESLint.RuleListener> & {
41
44
  name: string;
42
45
  };
package/dist/plugin.js CHANGED
@@ -6,6 +6,7 @@ import { noEntryPointImports } from './rules/entryPoint/entryPoint.js';
6
6
  import { consistentFileExtensions } from './rules/extension/extension.js';
7
7
  import { noExternalBarrelReexports } from './rules/externalBarrelReexports/externalBarrelReexports.js';
8
8
  import { namedAsDefault } from './rules/namedAsDefault/namedAsDefault.js';
9
+ import { noNodeBuiltins } from './rules/nodeBuiltins/nodeBuiltins.js';
9
10
  import { nodePrefix } from './rules/nodePrefix/nodePrefix.js';
10
11
  import { noRestrictedImports } from './rules/restricted/restricted.js';
11
12
  import { noTestImportsInProd } from './rules/testInProd/testInProd.js';
@@ -30,6 +31,7 @@ const plugin = {
30
31
  'no-external-barrel-reexports': noExternalBarrelReexports,
31
32
  'no-test-imports-in-prod': noTestImportsInProd,
32
33
  'no-named-as-default': namedAsDefault,
34
+ 'no-node-builtins': noNodeBuiltins,
33
35
  'require-node-prefix': nodePrefix,
34
36
  'no-restricted-imports': noRestrictedImports,
35
37
  },
@@ -79,6 +81,7 @@ const offConfig = {
79
81
  'fast-import/no-external-barrel-reexports': 'off',
80
82
  'fast-import/no-test-imports-in-prod': 'off',
81
83
  'fast-import/no-named-as-default': 'off',
84
+ 'fast-import/no-node-builtins': 'off',
82
85
  'fast-import/require-node-prefix': 'off',
83
86
  'fast-import/no-restricted-imports': 'off',
84
87
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const noNodeBuiltins: import("@typescript-eslint/utils/ts-eslint").RuleModule<"noNodeBuiltins", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
@@ -0,0 +1,48 @@
1
+ import { createRule, getESMInfo, getLocFromRange } from '../util.js';
2
+ export const noNodeBuiltins = createRule({
3
+ name: 'no-node-builtins',
4
+ meta: {
5
+ docs: {
6
+ description: 'Disallows imports of Node.js built-in modules',
7
+ },
8
+ schema: [],
9
+ type: 'problem',
10
+ messages: {
11
+ noNodeBuiltins: 'Import of Node.js built-in module "{{specifier}}" is not allowed',
12
+ },
13
+ },
14
+ defaultOptions: [],
15
+ create(context) {
16
+ const esmInfo = getESMInfo(context);
17
+ // No project info means this file wasn't found as part of the project, e.g.
18
+ // because it's ignored
19
+ /* istanbul ignore if */
20
+ if (!esmInfo) {
21
+ return {};
22
+ }
23
+ const { fileInfo } = esmInfo;
24
+ /* istanbul ignore if */
25
+ if (fileInfo.fileType !== 'code') {
26
+ return {};
27
+ }
28
+ for (const importEntry of [
29
+ ...fileInfo.singleImports,
30
+ ...fileInfo.barrelImports,
31
+ ...fileInfo.dynamicImports,
32
+ ...fileInfo.singleReexports,
33
+ ...fileInfo.barrelReexports,
34
+ ]) {
35
+ if (importEntry.resolvedModuleType === 'builtin') {
36
+ context.report({
37
+ loc: getLocFromRange(context, importEntry.statementNodeRange),
38
+ messageId: 'noNodeBuiltins',
39
+ data: {
40
+ specifier: importEntry.moduleSpecifier,
41
+ },
42
+ });
43
+ }
44
+ }
45
+ return {};
46
+ },
47
+ });
48
+ //# sourceMappingURL=nodeBuiltins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeBuiltins.js","sourceRoot":"","sources":["../../../src/rules/nodeBuiltins/nodeBuiltins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EAAE,+CAA+C;SAC7D;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE;YACR,cAAc,EACZ,kEAAkE;SACrE;KACF;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpC,4EAA4E;QAC5E,uBAAuB;QACvB,wBAAwB;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC7B,wBAAwB;QACxB,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,KAAK,MAAM,WAAW,IAAI;YACxB,GAAG,QAAQ,CAAC,aAAa;YACzB,GAAG,QAAQ,CAAC,aAAa;YACzB,GAAG,QAAQ,CAAC,cAAc;YAC1B,GAAG,QAAQ,CAAC,eAAe;YAC3B,GAAG,QAAQ,CAAC,eAAe;SAC5B,EAAE,CAAC;YACF,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC;oBACb,GAAG,EAAE,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC;oBAC7D,SAAS,EAAE,gBAAgB;oBAC3B,IAAI,EAAE;wBACJ,SAAS,EAAE,WAAW,CAAC,eAAe;qBACvC;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-fast-import",
3
- "version": "1.9.2",
3
+ "version": "1.10.0",
4
4
  "description": "ESLint plugin with rules to ensure proper usage of imports and exports",
5
5
  "keywords": [
6
6
  "eslint",