eslint-plugin-fast-import 1.10.0 → 2.0.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,21 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.0.0 (3/13/2026)
4
+
5
+ - Added `prefer-alias-imports` rule
6
+ - BREAKING CHANGE: added `prefer-alias-imports` rule to the recommend and all configs
7
+ - This rule is likely to cause new errors in codebases that use aliases and have the recommended or all configs enabled
8
+ - To disable this rule to preserve existing behavior, add `"fast-import/prefer-alias-imports": "off"` to your eslint config.
9
+
10
+ ## 1.12.0 (2/15/2026)
11
+
12
+ - Added `externallyImported` option
13
+
14
+ ## 1.11.0 (2/15/2026)
15
+
16
+ - Added support for reading config from a separate JSON file
17
+ - Fixed a bug where a file importing itself would cause a crash
18
+
3
19
  ## 1.10.0 (1/28/2026)
4
20
 
5
21
  - Added `no-node-builtins` rule
package/README.md CHANGED
@@ -5,14 +5,19 @@
5
5
  - [Installation](#installation)
6
6
  - [Rules](#rules)
7
7
  - [Configuration](#configuration)
8
+ - [Using fast-import.config.json](#using-fast-importconfigjson)
8
9
  - [Configuration options](#configuration-options)
9
10
  - [rootDir (required)](#rootdir-required)
10
11
  - [alias](#alias)
11
- - [entryPoints](#entrypoints)
12
+ - [externallyImported / entryPoints](#externallyimported--entrypoints)
12
13
  - [ignorePatterns](#ignorepatterns)
14
+ - [ignoreOverridePatterns](#ignoreoverridepatterns)
15
+ - [testFilePatterns](#testfilepatterns)
13
16
  - [mode](#mode)
14
17
  - [editorUpdateRate](#editorupdaterate)
15
18
  - [debugLogging](#debuglogging)
19
+ - [requireFileExtensions](#requirefileextensions)
20
+ - [Use in monorepos](#use-in-monorepos)
16
21
  - [Comparisons to import and import-x](#comparisons-to-import-and-import-x)
17
22
  - [Performance](#performance)
18
23
  - [Accuracy](#accuracy)
@@ -62,6 +67,7 @@ npm install --save-dev eslint-plugin-fast-import
62
67
  | [no-unresolved-imports](src/rules/unresolved/README.md) | 🧰 ☑️ | |
63
68
  | [no-unused-exports](src/rules/unused/README.md) | 🧰 ☑️ | |
64
69
  | [consistent-file-extensions](src/rules/extension/README.md) | 🧰 | 🔧 |
70
+ | [prefer-alias-imports](src/rules/alias/README.md) | 🧰 ☑️ | 🔧 |
65
71
  | [require-node-prefix](src/rules/nodePrefix/README.md) | 🧰 | 🔧 |
66
72
  | [no-node-builtins](src/rules/nodeBuiltins/README.md) \* | | |
67
73
  | [no-restricted-imports](src/rules/restricted/README.md) \*\* | | |
@@ -78,18 +84,38 @@ Fast Import only supports ESLint 9+ and flat configs. For most simple TypeScript
78
84
 
79
85
  ```js
80
86
  import { recommended } from 'eslint-plugin-fast-import';
81
- import { dirname } from 'node:path';
82
- import { fileURLToPath } from 'node:url';
83
87
 
84
88
  export default [
85
89
  recommended({
86
- rootDir: dirname(fileURLToPath(import.meta.url)),
90
+ rootDir: import.meta.dirname,
87
91
  }),
88
92
  ];
89
93
  ```
90
94
 
91
95
  This will apply the recommended rules along with the default configuration.
92
96
 
97
+ ### Using fast-import.config.json
98
+
99
+ You can also define the configuration in a `fast-import.config.json` file. This file should contain the same configuration options as the [Configuration options](#configuration-options) section, except that it should not include the `rootDir` option.
100
+
101
+ To use this file, pass in a path to the directory containing the `fast-import.config.json` file. `rootDir` will automatically be set to this path, like so:
102
+
103
+ ```js
104
+ import { recommended } from 'eslint-plugin-fast-import';
105
+
106
+ export default [recommended(import.meta.dirname)];
107
+ ```
108
+
109
+ And then the configuration file:
110
+
111
+ ```json
112
+ {
113
+ "entryPoints": {
114
+ "./src/index.ts": ["default"]
115
+ }
116
+ }
117
+ ```
118
+
93
119
  ### Configuration options
94
120
 
95
121
  Fast Import supports a number of configuration options. Fast Import attempts to auto-detect as many as possible, but you may need to tweak or suppliment these options.
@@ -116,7 +142,7 @@ ESM Example using `dirname` from `node:path` and `fileURLToPath` from `node:url`
116
142
 
117
143
  ```js
118
144
  recommended({
119
- rootDir: dirname(fileURLToPath(import.meta.url)),
145
+ rootDir: import.meta.dirname,
120
146
  });
121
147
  ```
122
148
 
@@ -135,7 +161,7 @@ Example:
135
161
 
136
162
  ```js
137
163
  recommended({
138
- rootDir: __dirname
164
+ rootDir: import.meta.dirname
139
165
  alias: {
140
166
  '@/*': 'src/*'
141
167
  'foo': 'src/foo.ts'
@@ -145,11 +171,16 @@ recommended({
145
171
 
146
172
  Note: patterns with a single star after them will match any symbols/files that start with the symbol/filepath.
147
173
 
148
- #### entryPoints
174
+ #### externallyImported / entryPoints
175
+
176
+ Type: `Record<string, Array<string> | RegExp>`
177
+
178
+ Exports specified with `externallyImported` or `entryPoints` define exports that are not imported by code inside of the code base, but instead by code outside of the codebase. The difference between `externallyImported` and `entryPoints` is:
149
179
 
150
- Type: `Record<string, Array<string | RegExp>>`
180
+ - `entryPoints` are intended to represent entry points in a library intended for use by others, aka a "public API."
181
+ - `externallyImported` are intended to represent exports intended for use by a specific framework, e.g. the default export in a `page.tsx` file in a Next.js application or the default export in a file called `eslint.config.mjs` in a ESLint configuration.
151
182
 
152
- Entry points define exports that are not imported by code inside of the code base, but instead by code outside of the codebase.
183
+ In practice, this distinction only matters in monorepos. In the monorepo case, this categorization is necessary for determining if a package's entry points are intended to be used by other packages in the monorepo, and thus should be analyzed for usage. See [Use in monorepos](#use-in-monorepos) for more info.
153
184
 
154
185
  For example, if you are building a Next.js application, then the `default` export in files titled `page.tsx`, `layout.tsx`, etc. are imported by the Next.js runtime itself, and thus Fast Import never sees the import.
155
186
 
@@ -159,12 +190,14 @@ Example:
159
190
 
160
191
  ```js
161
192
  recommended({
162
- rootDir: __dirname
193
+ rootDir: import.meta.dirname,
163
194
  entryPoints: {
164
- './src/index.ts': ['default', 'anotherExport'],
165
- './src/app/**/page.tsx': ['default']
166
- }
167
- })
195
+ './src/app/**/page.tsx': ['default', 'metadata'],
196
+ },
197
+ externallyImported: {
198
+ 'index.ts': /.*/,
199
+ },
200
+ });
168
201
  ```
169
202
 
170
203
  #### ignorePatterns
@@ -179,7 +212,7 @@ Example:
179
212
 
180
213
  ```js
181
214
  recommended({
182
- rootDir: __dirname
215
+ rootDir: import.meta.dirname
183
216
  ignorePatterns: [
184
217
  'src/**/__test__/**/snapshot/**/*',
185
218
  '*.pid'
@@ -197,7 +230,7 @@ Example:
197
230
 
198
231
  ```js
199
232
  recommended({
200
- rootDir: __dirname
233
+ rootDir: import.meta.dirname
201
234
  ignoreOverridePatterns: [
202
235
  'src/generated/**/*.ts',
203
236
  ]
@@ -219,7 +252,7 @@ Example:
219
252
 
220
253
  ```js
221
254
  recommended({
222
- rootDir: __dirname
255
+ rootDir: import.meta.dirname
223
256
  ignoreOverridePatterns: [
224
257
  '__fixture__',
225
258
  ]
@@ -261,7 +294,7 @@ Example:
261
294
 
262
295
  ```js
263
296
  recommended({
264
- rootDir: __dirname
297
+ rootDir: import.meta.dirname
265
298
  editorUpdateRate: 2_000
266
299
  })
267
300
  ```
@@ -276,7 +309,7 @@ Example:
276
309
 
277
310
  ```js
278
311
  recommended({
279
- rootDir: __dirname
312
+ rootDir: import.meta.dirname
280
313
  debugLogging: true
281
314
  })
282
315
  ```
@@ -291,11 +324,15 @@ Example:
291
324
 
292
325
  ```js
293
326
  recommended({
294
- rootDir: __dirname
327
+ rootDir: import.meta.dirname
295
328
  requireFileExtensions: true
296
329
  })
297
330
  ```
298
331
 
332
+ ### Use in monorepos
333
+
334
+ Fast import is designed to work well in monorepos. The caching mechanism described in [the algorithm](#algorithm) is monorepo aware, allowing fast import to manage multiple caches for different packages in the monorepo simultaneously.
335
+
299
336
  ## Comparisons to import and import-x
300
337
 
301
338
  Below are performance and accuracy comparisons to [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) and [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x)
@@ -167,7 +167,12 @@ function analyzeSingleImport({ originAnalyzedImport, analyzedProjectInfo, }) {
167
167
  return;
168
168
  }
169
169
  // Return value indicates if we've found the root export yet or not
170
+ const visited = new Set();
170
171
  function traverse(currentFile, currentImportName) {
172
+ if (visited.has(currentFile)) {
173
+ return false;
174
+ }
175
+ visited.add(currentFile);
171
176
  // Get the file from the project info
172
177
  const targetFileDetails = analyzedProjectInfo.files.get(currentFile);
173
178
  /* istanbul ignore if */
@@ -294,7 +299,12 @@ function analyzeBarrelImport({ originAnalyzedImport, pivotAnalyzedImport, analyz
294
299
  if (originAnalyzedImport.importEntry.resolvedModuleType !== 'firstPartyCode') {
295
300
  return;
296
301
  }
302
+ const visited = new Set();
297
303
  function traverse(currentFile) {
304
+ if (visited.has(currentFile)) {
305
+ return;
306
+ }
307
+ visited.add(currentFile);
298
308
  // Get the file from the project info
299
309
  const targetFileDetails = analyzedProjectInfo.files.get(currentFile);
300
310
  /* istanbul ignore if */
@@ -1 +1 @@
1
- {"version":3,"file":"computeAnalyzedInfo.js","sourceRoot":"","sources":["../../src/module/computeAnalyzedInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computeAnalyzedInfo.js","sourceRoot":"","sources":["../../src/module/computeAnalyzedInfo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type PackageInfo = {
2
+ name: string;
3
+ entryPoints: string[];
4
+ };
5
+ export declare function initializeMonorepo({ rootDir }: {
6
+ rootDir: string;
7
+ }): PackageInfo[] | undefined;
8
+ export {};
@@ -0,0 +1,41 @@
1
+ import { readdirSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ let packages = undefined;
4
+ function getPacakgeConfigs(rootDir) {
5
+ const packages = [];
6
+ const dirContents = readdirSync(rootDir, {
7
+ withFileTypes: true,
8
+ });
9
+ let packageJsonPath = null;
10
+ let fastImportConfigPath = null;
11
+ for (const content of dirContents) {
12
+ if (!content.isDirectory()) {
13
+ if (content.name === 'package.json') {
14
+ packageJsonPath = join(rootDir, content.name);
15
+ }
16
+ else if (content.name === 'fast-import.config.json') {
17
+ fastImportConfigPath = join(rootDir, content.name);
18
+ }
19
+ }
20
+ else if (content.name !== 'node_modules' &&
21
+ content.name !== 'dist' &&
22
+ content.name !== 'build' &&
23
+ content.name !== '.git') {
24
+ packages.push(...getPacakgeConfigs(join(rootDir, content.name)));
25
+ }
26
+ }
27
+ if (packageJsonPath && fastImportConfigPath) {
28
+ const { name } = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
29
+ // Need to validate using zod. Or alternately pass to getsettings?
30
+ const { entryPoints } = JSON.parse(readFileSync(fastImportConfigPath, 'utf-8'));
31
+ }
32
+ return packages;
33
+ }
34
+ export function initializeMonorepo({ rootDir }) {
35
+ if (packages) {
36
+ return packages;
37
+ }
38
+ packages = getPacakgeConfigs(rootDir);
39
+ console.log(packages);
40
+ }
41
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/package/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,IAAI,QAAQ,GAA8B,SAAS,CAAC;AAEpD,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE;QACvC,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IAEH,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,oBAAoB,GAAkB,IAAI,CAAC;IAC/C,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBACpC,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;gBACtD,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;aAAM,IACL,OAAO,CAAC,IAAI,KAAK,cAAc;YAC/B,OAAO,CAAC,IAAI,KAAK,MAAM;YACvB,OAAO,CAAC,IAAI,KAAK,OAAO;YACxB,OAAO,CAAC,IAAI,KAAK,MAAM,EACvB,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;QAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAEjE,CAAC;QACF,kEAAkE;QAClE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAChC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CACC,CAAC;IACjD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAuB;IACjE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -62,13 +62,18 @@ declare const plugin: {
62
62
  }], unknown, TSESLint.RuleListener> & {
63
63
  name: string;
64
64
  };
65
+ 'prefer-alias-imports': TSESLint.RuleModule<"preferAlias" | "preferRelative", [{
66
+ mode?: "always" | "relative-if-descendant" | undefined;
67
+ } | undefined], unknown, TSESLint.RuleListener> & {
68
+ name: string;
69
+ };
65
70
  };
66
71
  processors: {};
67
72
  };
68
73
  export default plugin;
69
- export declare function recommended({ requireFileExtensions, ...settings }: UserSettings & {
74
+ type ExtendedSettings = UserSettings & {
70
75
  requireFileExtensions?: boolean;
71
- }): TSESLint.FlatConfig.Config;
72
- export declare function all({ requireFileExtensions, ...settings }: UserSettings & {
73
- requireFileExtensions?: boolean;
74
- }): TSESLint.FlatConfig.Config;
76
+ };
77
+ type ConfigArgs = ExtendedSettings | string;
78
+ export declare function recommended(args: ConfigArgs): TSESLint.FlatConfig.Config;
79
+ export declare function all(args: ConfigArgs): TSESLint.FlatConfig.Config;
package/dist/plugin.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { readFileSync } from 'node:fs';
2
- import { join } from 'node:path';
2
+ import { isAbsolute, join } from 'node:path';
3
3
  import { getDirname } from 'cross-dirname';
4
+ import { preferAliasImports } from './rules/alias/alias.js';
4
5
  import { noCycle } from './rules/cycle/cycle.js';
5
6
  import { noEntryPointImports } from './rules/entryPoint/entryPoint.js';
6
7
  import { consistentFileExtensions } from './rules/extension/extension.js';
@@ -34,6 +35,7 @@ const plugin = {
34
35
  'no-node-builtins': noNodeBuiltins,
35
36
  'require-node-prefix': nodePrefix,
36
37
  'no-restricted-imports': noRestrictedImports,
38
+ 'prefer-alias-imports': preferAliasImports,
37
39
  },
38
40
  processors: {},
39
41
  };
@@ -49,6 +51,7 @@ const recommendedConfig = {
49
51
  'fast-import/no-external-barrel-reexports': 'error',
50
52
  'fast-import/no-test-imports-in-prod': 'error',
51
53
  'fast-import/no-named-as-default': 'error',
54
+ 'fast-import/prefer-alias-imports': 'error',
52
55
  'fast-import/require-node-prefix': 'off',
53
56
  },
54
57
  };
@@ -66,6 +69,7 @@ const allConfig = {
66
69
  'fast-import/no-test-imports-in-prod': 'error',
67
70
  'fast-import/no-named-as-default': 'error',
68
71
  'fast-import/require-node-prefix': 'error',
72
+ 'fast-import/prefer-alias-imports': 'error',
69
73
  },
70
74
  };
71
75
  const offConfig = {
@@ -84,6 +88,7 @@ const offConfig = {
84
88
  'fast-import/no-node-builtins': 'off',
85
89
  'fast-import/require-node-prefix': 'off',
86
90
  'fast-import/no-restricted-imports': 'off',
91
+ 'fast-import/prefer-alias-imports': 'off',
87
92
  },
88
93
  };
89
94
  Object.assign(plugin.configs, {
@@ -92,7 +97,41 @@ Object.assign(plugin.configs, {
92
97
  off: offConfig,
93
98
  });
94
99
  export default plugin;
95
- export function recommended({ requireFileExtensions, ...settings }) {
100
+ function processArgs(args) {
101
+ if (typeof args === 'string') {
102
+ const rootDir = args;
103
+ if (!isAbsolute(rootDir)) {
104
+ throw new Error('rootDir must be an absolute path');
105
+ }
106
+ const configPath = join(rootDir, 'fast-import.config.json');
107
+ let configContent;
108
+ let parsedConfig;
109
+ try {
110
+ configContent = readFileSync(configPath, 'utf8');
111
+ }
112
+ catch (error) {
113
+ throw new Error(`Failed to read config file at "${configPath}": ${error instanceof Error ? error.message : String(error)}`);
114
+ }
115
+ try {
116
+ parsedConfig = JSON.parse(configContent);
117
+ }
118
+ catch (error) {
119
+ throw new Error(`Failed to parse config file at "${configPath}": ${error instanceof Error ? error.message : String(error)}`);
120
+ }
121
+ if (typeof parsedConfig !== 'object' || parsedConfig === null) {
122
+ throw new Error(`Config file at "${configPath}" must contain a JSON object`);
123
+ }
124
+ const config = parsedConfig;
125
+ if (config.rootDir) {
126
+ throw new Error(`Config file at "${configPath}" must not contain a "rootDir" property when loading from a directory path`);
127
+ }
128
+ config.rootDir = rootDir;
129
+ return config;
130
+ }
131
+ return args;
132
+ }
133
+ export function recommended(args) {
134
+ const { requireFileExtensions, ...settings } = processArgs(args);
96
135
  return {
97
136
  ...{
98
137
  ...recommendedConfig,
@@ -111,7 +150,8 @@ export function recommended({ requireFileExtensions, ...settings }) {
111
150
  },
112
151
  };
113
152
  }
114
- export function all({ requireFileExtensions, ...settings }) {
153
+ export function all(args) {
154
+ const { requireFileExtensions, ...settings } = processArgs(args);
115
155
  return {
116
156
  ...{
117
157
  ...allConfig,
@@ -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,5 @@
1
+ export declare const preferAliasImports: import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferAlias" | "preferRelative", [{
2
+ mode?: "always" | "relative-if-descendant" | undefined;
3
+ } | undefined], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
4
+ name: string;
5
+ };
@@ -0,0 +1,185 @@
1
+ import { dirname, relative, resolve } from 'node:path';
2
+ import { z } from 'zod';
3
+ import { InternalError } from '../../util/error.js';
4
+ import { createRule, getESMInfo, getLocFromRange } from '../util.js';
5
+ const MODE_DEFAULT = 'relative-if-descendant';
6
+ const schema = z
7
+ .strictObject({
8
+ mode: z.enum(['always', 'relative-if-descendant']).optional(),
9
+ })
10
+ .optional();
11
+ /**
12
+ * Find the best matching wildcard alias for an absolute path.
13
+ * Returns the entry with the longest (most specific) path match.
14
+ */
15
+ function findBestWildcardAlias(absolutePath, wildcardAliases) {
16
+ let best;
17
+ for (const [symbol, path] of Object.entries(wildcardAliases)) {
18
+ if (absolutePath.startsWith(path) &&
19
+ (!best || path.length > best.path.length)) {
20
+ best = { symbol, path };
21
+ }
22
+ }
23
+ return best;
24
+ }
25
+ export const preferAliasImports = createRule({
26
+ name: 'prefer-alias-imports',
27
+ meta: {
28
+ docs: {
29
+ description: 'Enforces the use of alias imports instead of relative paths when an alias is available, and vice versa for files under the same alias',
30
+ },
31
+ schema: [schema.toJSONSchema()],
32
+ fixable: 'code',
33
+ type: 'suggestion',
34
+ messages: {
35
+ preferAlias: 'Use alias import "{{alias}}" instead of relative path "{{relative}}"',
36
+ preferRelative: 'Use relative import "{{relative}}" instead of alias "{{alias}}" for files under the same alias',
37
+ },
38
+ },
39
+ defaultOptions: [{ mode: MODE_DEFAULT }],
40
+ create(context) {
41
+ const esmInfo = getESMInfo(context);
42
+ /* istanbul ignore if */
43
+ if (!esmInfo) {
44
+ return {};
45
+ }
46
+ const { fileInfo, settings } = esmInfo;
47
+ /* istanbul ignore if */
48
+ if (fileInfo.fileType !== 'code') {
49
+ return {};
50
+ }
51
+ const { wildcardAliases, fixedAliases } = settings;
52
+ // No aliases configured — nothing to enforce
53
+ if (Object.keys(wildcardAliases).length === 0 &&
54
+ Object.keys(fixedAliases).length === 0) {
55
+ return {};
56
+ }
57
+ const { mode = MODE_DEFAULT } = context.options[0] ?? {};
58
+ // Pre-compute the current file's "home alias" for relative-if-descendant mode
59
+ const homeAlias = findBestWildcardAlias(context.filename, wildcardAliases);
60
+ for (const importEntry of [
61
+ ...fileInfo.singleImports,
62
+ ...fileInfo.barrelImports,
63
+ ...fileInfo.dynamicImports,
64
+ ...fileInfo.singleReexports,
65
+ ...fileInfo.barrelReexports,
66
+ ]) {
67
+ const { moduleSpecifier, resolvedModuleType, statementNodeRange } = importEntry;
68
+ if (!moduleSpecifier ||
69
+ (resolvedModuleType !== 'firstPartyCode' &&
70
+ resolvedModuleType !== 'firstPartyOther')) {
71
+ continue;
72
+ }
73
+ if (moduleSpecifier.startsWith('.')) {
74
+ // --- Relative import: check if it should use an alias ---
75
+ // Check fixed aliases first (exact resolvedModulePath match)
76
+ const { resolvedModulePath } = importEntry;
77
+ let matchedAliasName;
78
+ let matchedAliasSymbol;
79
+ let matchedAliasPath;
80
+ if (resolvedModulePath) {
81
+ for (const [alias, path] of Object.entries(fixedAliases)) {
82
+ if (resolvedModulePath === path) {
83
+ matchedAliasName = alias;
84
+ break;
85
+ }
86
+ }
87
+ }
88
+ // Check wildcard aliases
89
+ if (!matchedAliasName) {
90
+ const absolutePath = resolve(dirname(context.filename), moduleSpecifier);
91
+ const match = findBestWildcardAlias(absolutePath, wildcardAliases);
92
+ if (match) {
93
+ matchedAliasSymbol = match.symbol;
94
+ matchedAliasPath = match.path;
95
+ }
96
+ }
97
+ if (!matchedAliasName && !matchedAliasSymbol) {
98
+ continue;
99
+ }
100
+ // In relative-if-descendant mode, skip if same alias as home
101
+ if (mode === 'relative-if-descendant') {
102
+ if (matchedAliasName) {
103
+ // Fixed alias — always different from a wildcard home alias, so report
104
+ }
105
+ else if (homeAlias &&
106
+ matchedAliasSymbol === homeAlias.symbol &&
107
+ matchedAliasPath === homeAlias.path) {
108
+ // Same wildcard alias — relative is preferred
109
+ continue;
110
+ }
111
+ }
112
+ let newSpecifier;
113
+ if (matchedAliasName) {
114
+ newSpecifier = matchedAliasName;
115
+ }
116
+ else if (matchedAliasSymbol && matchedAliasPath) {
117
+ newSpecifier =
118
+ matchedAliasSymbol +
119
+ resolve(dirname(context.filename), moduleSpecifier).slice(matchedAliasPath.length);
120
+ }
121
+ else {
122
+ continue;
123
+ }
124
+ context.report({
125
+ messageId: 'preferAlias',
126
+ loc: getLocFromRange(context, importEntry.reportNodeRange),
127
+ data: { alias: newSpecifier, relative: moduleSpecifier },
128
+ fix(fixer) {
129
+ const sourceNode = context.sourceCode.getNodeByRangeIndex(statementNodeRange[0]);
130
+ /* istanbul ignore if */
131
+ if (!('raw' in sourceNode.source)) {
132
+ throw new InternalError(`Property "raw" is missing in sourceNode.source`);
133
+ }
134
+ return fixer.replaceText(sourceNode.source, sourceNode.source.raw.replace(moduleSpecifier, newSpecifier));
135
+ },
136
+ });
137
+ }
138
+ else if (mode === 'relative-if-descendant') {
139
+ // --- Alias import: check if it should be relative ---
140
+ // Check wildcard aliases
141
+ let matchedSymbol;
142
+ let matchedPath;
143
+ for (const [symbol, path] of Object.entries(wildcardAliases)) {
144
+ if (moduleSpecifier.startsWith(symbol) &&
145
+ (!matchedSymbol || path.length > (matchedPath?.length ?? 0))) {
146
+ matchedSymbol = symbol;
147
+ matchedPath = path;
148
+ }
149
+ }
150
+ // Only convert wildcard aliases that match the home alias
151
+ if (matchedSymbol &&
152
+ matchedPath &&
153
+ homeAlias &&
154
+ matchedSymbol === homeAlias.symbol &&
155
+ matchedPath === homeAlias.path) {
156
+ // Compute the absolute target path and then a relative path from current file
157
+ const targetAbsPath = matchedPath + moduleSpecifier.slice(matchedSymbol.length);
158
+ let newSpecifier = relative(dirname(context.filename), targetAbsPath);
159
+ // Ensure it starts with ./ or ../
160
+ if (!newSpecifier.startsWith('.')) {
161
+ newSpecifier = './' + newSpecifier;
162
+ }
163
+ context.report({
164
+ messageId: 'preferRelative',
165
+ loc: getLocFromRange(context, importEntry.reportNodeRange),
166
+ data: { relative: newSpecifier, alias: moduleSpecifier },
167
+ fix(fixer) {
168
+ const sourceNode = context.sourceCode.getNodeByRangeIndex(statementNodeRange[0]);
169
+ /* istanbul ignore if */
170
+ if (!('raw' in sourceNode.source)) {
171
+ throw new InternalError(`Property "raw" is missing in sourceNode.source`);
172
+ }
173
+ return fixer.replaceText(sourceNode.source, sourceNode.source.raw.replace(moduleSpecifier, newSpecifier));
174
+ },
175
+ });
176
+ }
177
+ // Fixed aliases that match the home alias scope could also be flagged,
178
+ // but fixed aliases are exact-match by nature — they don't have a
179
+ // "scope" in the same way. We leave them alone.
180
+ }
181
+ }
182
+ return {};
183
+ },
184
+ });
185
+ //# sourceMappingURL=alias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alias.js","sourceRoot":"","sources":["../../../src/rules/alias/alias.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare const consistentFileExtensions: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingExtension" | "extraExtension" | "incorrectExtension", [{
2
- mode?: "never" | "always" | undefined;
2
+ mode?: "always" | "never" | undefined;
3
3
  forceTsExtension?: boolean | undefined;
4
4
  } | undefined], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
5
5
  name: string;
@@ -6,7 +6,7 @@ export type IgnorePattern = {
6
6
  dir: string;
7
7
  contents: string;
8
8
  };
9
- export type ParsedSettings = Omit<RequiredDeep<Settings>, 'ignorePatterns' | 'ignoreOverridePatterns' | 'alias' | 'entryPoints'> & {
9
+ export type ParsedSettings = Omit<RequiredDeep<Settings>, 'ignorePatterns' | 'ignoreOverridePatterns' | 'alias' | 'entryPoints' | 'externallyImported'> & {
10
10
  ignorePatterns: IgnorePattern[];
11
11
  ignoreOverridePatterns: IgnorePattern[];
12
12
  wildcardAliases: Record<string, string>;
@@ -63,7 +63,7 @@ export function getSettings(context) {
63
63
  ...typeScriptSettings,
64
64
  ...userSettings,
65
65
  };
66
- const { alias = {}, entryPoints = {} } = mergedSettings;
66
+ const { alias = {}, entryPoints = {}, externallyImported = {}, } = mergedSettings;
67
67
  // Clean up any aliases
68
68
  const wildcardAliases = {};
69
69
  const fixedAliases = {};
@@ -95,7 +95,13 @@ export function getSettings(context) {
95
95
  }
96
96
  // Clean up any entry points
97
97
  const parsedEntryPoints = [];
98
- for (const [filePattern, symbols] of Object.entries(entryPoints)) {
98
+ // Merge entry points and externally imported exports, since they mean the
99
+ // same thing from inside the module. They are kept separate in settings for
100
+ // use by monorepo package analysis rules (aka outside the module)
101
+ for (const [filePattern, symbols] of Object.entries({
102
+ ...entryPoints,
103
+ ...externallyImported,
104
+ })) {
99
105
  const formattedSymbols = Array.isArray(symbols)
100
106
  ? symbols.map((symbol) => trimTrailingPathSeparator(symbol))
101
107
  : symbols;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAiB,MAAM,WAAW,CAAC;AAsB3D,2EAA2E;AAC3E,kDAAkD;AAClD,2BAA2B;AAC3B,SAAS,WAAW,CAAC,IAAc;IACjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,2BAA2B;AAC3B,MAAM,YAAY,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAClC,CAAC,CAAC,QAAQ;IACV,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,UAAU,CAAC;AAEnB,MAAM,aAAa,GAAG,IAAI,GAAG,EAG1B,CAAC;AAEJ,iBAAiB;AACjB,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,sBAAsB,CAC7B,CAA0B,EAC1B,CAAsC;IAEtC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,OAAsD;IAEtD,uCAAuC;IACvC,IAAI,cAA0C,CAAC;IAC/C,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,aAAa,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC;QACpC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,6EAA6E;IAC7E,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;IAEjC,mCAAmC;IACnC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAEvE,2EAA2E;IAC3E,MAAM,cAAc,GAAG;QACrB,GAAG,kBAAkB;QACrB,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,EAAE,EAChB,kBAAkB,GAAG,EAAE,GACxB,GAAG,cAAc,CAAC;IAEnB,uBAAuB;IACvB,MAAM,eAAe,GAAsC,EAAE,CAAC;IAC9D,MAAM,YAAY,GAAmC,EAAE,CAAC;IACxD,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAE3C,6EAA6E;QAC7E,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,2EAA2E;QAC3E,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,2BAA2B,MAAM,gBAAgB,CACpE,CAAC;YACJ,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,+BAA+B,MAAM,wBAAwB,CAChF,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,iBAAiB,GAAkC,EAAE,CAAC;IAC5D,0EAA0E;IAC1E,4EAA4E;IAC5E,kEAAkE;IAClE,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;QAClD,GAAG,WAAW;QACd,GAAG,kBAAkB;KACtB,CAAC,EAAE,CAAC;QACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC7C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC,CAAC,OAAO,CAAC;QAEZ,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,CACF,oCAAoC,WAAW,+IAA+I,CAC/L,CAAC;YACF,SAAS;QACX,CAAC;QACD,iBAAiB,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/B,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,IAAI,MAAM,CAAC;IACpD,MAAM,IAAI,GACR,cAAc,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;IACtE,IAAI,cAAc,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,oBAAoB,cAAc,CAAC,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,IAAI,cAAc,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;QACxC,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,wBAAwB,cAAc,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IACE,CAAC,sBAAsB,CAAC,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC,EACzE,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC3B,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7D,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,CAAC;QACxE,IAAI,cAAc,EAAE,CAAC;YACnB,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,CAAC;YACtC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxB,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1D,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oEAAoE;IACpE,yEAAyE;IACzE,mDAAmD;IACnD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,KAAK,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,cAAc,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC,CAAC;IAEJ,MAAM,sBAAsB,GAAG,CAC7B,cAAc,CAAC,sBAAsB,IAAI,EAAE,CAC5C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC,CAAC;IAEJ,gDAAgD;IAChD,MAAM,WAAW,GAAG;QAClB,OAAO;QACP,eAAe;QACf,YAAY;QACZ,WAAW,EAAE,iBAAiB;QAC9B,cAAc;QACd,sBAAsB;QACtB,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,IAAI,KAAK;QAC1D,IAAI;QACJ,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,IAAI,EAAE;KACxD,CAAC;IACF,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -4,12 +4,13 @@ declare const settingsSchema: z.ZodObject<{
4
4
  rootDir: z.ZodString;
5
5
  alias: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6
6
  entryPoints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodCustom<RegExp, RegExp>]>>>;
7
+ externallyImported: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodCustom<RegExp, RegExp>]>>>;
7
8
  ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
9
  ignoreOverridePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
9
10
  mode: z.ZodOptional<z.ZodEnum<{
11
+ fix: "fix";
10
12
  auto: "auto";
11
13
  "one-shot": "one-shot";
12
- fix: "fix";
13
14
  editor: "editor";
14
15
  }>>;
15
16
  editorUpdateRate: z.ZodOptional<z.ZodNumber>;
@@ -9,6 +9,9 @@ const settingsSchema = z.strictObject({
9
9
  entryPoints: z
10
10
  .record(z.string(), z.union([z.array(z.string()), z.instanceof(RegExp)]))
11
11
  .optional(),
12
+ externallyImported: z
13
+ .record(z.string(), z.union([z.array(z.string()), z.instanceof(RegExp)]))
14
+ .optional(),
12
15
  ignorePatterns: z.array(z.string()).optional(),
13
16
  ignoreOverridePatterns: z.array(z.string()).optional(),
14
17
  mode: z.enum(['auto', 'one-shot', 'fix', 'editor']).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/settings/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/settings/user.ts"],"names":[],"mappings":"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"}
package/eslint.config.mjs CHANGED
@@ -1,10 +1,9 @@
1
- import { join } from 'node:path';
1
+ import { join, resolve } from 'node:path';
2
2
 
3
3
  import { includeIgnoreFile } from '@eslint/compat';
4
- import { FlatCompat } from '@eslint/eslintrc';
5
4
  import js from '@eslint/js';
6
- import { getDirname } from 'cross-dirname';
7
5
  import { globalIgnores } from 'eslint/config';
6
+ import { defineConfig } from 'eslint/config';
8
7
  import jest from 'eslint-plugin-jest';
9
8
  import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
10
9
  import simpleImportSort from 'eslint-plugin-simple-import-sort';
@@ -13,37 +12,27 @@ import tseslint from 'typescript-eslint';
13
12
 
14
13
  import { all } from './dist/plugin.js';
15
14
 
16
- const compat = new FlatCompat({
17
- baseDirectory: getDirname(),
18
- recommendedConfig: js.configs.recommended,
19
- allConfig: js.configs.all,
20
- });
15
+ const ROOT_DIR = import.meta.dirname;
21
16
 
22
- export default tseslint.config(
23
- includeIgnoreFile(join(getDirname(), '.gitignore')),
24
- globalIgnores(['src/**/__test__/**/project/*', 'jest.config.ts']),
17
+ export default defineConfig([
18
+ includeIgnoreFile(join(ROOT_DIR, '.gitignore')),
19
+ globalIgnores(['src/**/__test__/**/project/**/*', 'jest.config.ts']),
25
20
  {
26
21
  files: ['**/*.{js,mjs,jsx,ts,tsx,mts}'],
27
22
  languageOptions: {
28
23
  globals: globals.node,
29
24
  },
30
- },
31
- all({
32
- entryPoints: {
33
- 'src/plugin.ts': [
34
- 'default',
35
- 'getESMInfo',
36
- 'registerUpdateListener',
37
- 'isNonTestFile',
38
- 'recommended',
39
- 'all',
40
- ],
41
- '*.config.*': ['default'],
25
+ plugins: { js, 'simple-import-sort': simpleImportSort },
26
+ extends: ['js/recommended'],
27
+ rules: {
28
+ 'object-shorthand': 'error',
29
+ 'simple-import-sort/imports': 'error',
30
+
31
+ // Handled by TypeScript eslint
32
+ 'no-unused-vars': 'off',
42
33
  },
43
- debugLogging: true,
44
- rootDir: getDirname(),
45
- requireFileExtensions: true,
46
- }),
34
+ },
35
+ all(ROOT_DIR),
47
36
  eslintPluginPrettierRecommended,
48
37
  ...tseslint.configs.strictTypeChecked.map((r) =>
49
38
  r.name === 'typescript-eslint/strict-type-checked'
@@ -58,7 +47,7 @@ export default tseslint.config(
58
47
  languageOptions: {
59
48
  parserOptions: {
60
49
  projectService: true,
61
- tsconfigRootDir: getDirname(),
50
+ tsconfigRootDir: ROOT_DIR,
62
51
  },
63
52
  },
64
53
  rules: {
@@ -69,14 +58,6 @@ export default tseslint.config(
69
58
  '@typescript-eslint/no-unsafe-enum-comparison': 'off',
70
59
  },
71
60
  },
72
- {
73
- plugins: {
74
- 'simple-import-sort': simpleImportSort,
75
- },
76
- rules: {
77
- 'simple-import-sort/imports': 'error',
78
- },
79
- },
80
61
  {
81
62
  files: ['**/*.test.ts'],
82
63
  ...jest.configs['flat/recommended'],
@@ -86,13 +67,4 @@ export default tseslint.config(
86
67
  files: ['**/*..jsx,mjs}'],
87
68
  extends: [tseslint.configs.disableTypeChecked],
88
69
  },
89
- ...compat.extends('eslint:recommended'),
90
- {
91
- rules: {
92
- 'object-shorthand': 'error',
93
-
94
- // Handled by TypeScript eslint
95
- 'no-unused-vars': 'off',
96
- },
97
- }
98
- );
70
+ ]);
@@ -0,0 +1,19 @@
1
+ {
2
+ "entryPoints": {
3
+ "src/plugin.ts": [
4
+ "default",
5
+ "getESMInfo",
6
+ "registerUpdateListener",
7
+ "isNonTestFile",
8
+ "recommended",
9
+ "all"
10
+ ]
11
+ },
12
+ "externallyImported": {
13
+ "*.config.*": [
14
+ "default"
15
+ ]
16
+ },
17
+ "debugLogging": true,
18
+ "requireFileExtensions": true
19
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-fast-import",
3
- "version": "1.10.0",
3
+ "version": "2.0.0",
4
4
  "description": "ESLint plugin with rules to ensure proper usage of imports and exports",
5
5
  "keywords": [
6
6
  "eslint",