eslint-plugin-fast-import 1.11.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 +11 -0
- package/README.md +33 -16
- package/dist/package/package.d.ts +8 -0
- package/dist/package/package.js +41 -0
- package/dist/package/package.js.map +1 -0
- package/dist/plugin.d.ts +6 -1
- package/dist/plugin.js +5 -0
- package/dist/plugin.js.map +1 -1
- package/dist/rules/alias/alias.d.ts +5 -0
- package/dist/rules/alias/alias.js +185 -0
- package/dist/rules/alias/alias.js.map +1 -0
- package/dist/rules/extension/extension.d.ts +1 -1
- package/dist/settings/settings.d.ts +1 -1
- package/dist/settings/settings.js +8 -2
- package/dist/settings/settings.js.map +1 -1
- package/dist/settings/user.d.ts +2 -1
- package/dist/settings/user.js +3 -0
- package/dist/settings/user.js.map +1 -1
- package/fast-import.config.json +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
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
|
+
|
|
3
14
|
## 1.11.0 (2/15/2026)
|
|
4
15
|
|
|
5
16
|
- Added support for reading config from a separate JSON file
|
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) \*\* | | |
|
|
@@ -155,7 +161,7 @@ Example:
|
|
|
155
161
|
|
|
156
162
|
```js
|
|
157
163
|
recommended({
|
|
158
|
-
rootDir:
|
|
164
|
+
rootDir: import.meta.dirname
|
|
159
165
|
alias: {
|
|
160
166
|
'@/*': 'src/*'
|
|
161
167
|
'foo': 'src/foo.ts'
|
|
@@ -165,11 +171,16 @@ recommended({
|
|
|
165
171
|
|
|
166
172
|
Note: patterns with a single star after them will match any symbols/files that start with the symbol/filepath.
|
|
167
173
|
|
|
168
|
-
#### entryPoints
|
|
174
|
+
#### externallyImported / entryPoints
|
|
169
175
|
|
|
170
|
-
Type: `Record<string, Array<string | RegExp
|
|
176
|
+
Type: `Record<string, Array<string> | RegExp>`
|
|
171
177
|
|
|
172
|
-
|
|
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:
|
|
179
|
+
|
|
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.
|
|
182
|
+
|
|
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.
|
|
173
184
|
|
|
174
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.
|
|
175
186
|
|
|
@@ -179,12 +190,14 @@ Example:
|
|
|
179
190
|
|
|
180
191
|
```js
|
|
181
192
|
recommended({
|
|
182
|
-
rootDir:
|
|
193
|
+
rootDir: import.meta.dirname,
|
|
183
194
|
entryPoints: {
|
|
184
|
-
'./src/
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
195
|
+
'./src/app/**/page.tsx': ['default', 'metadata'],
|
|
196
|
+
},
|
|
197
|
+
externallyImported: {
|
|
198
|
+
'index.ts': /.*/,
|
|
199
|
+
},
|
|
200
|
+
});
|
|
188
201
|
```
|
|
189
202
|
|
|
190
203
|
#### ignorePatterns
|
|
@@ -199,7 +212,7 @@ Example:
|
|
|
199
212
|
|
|
200
213
|
```js
|
|
201
214
|
recommended({
|
|
202
|
-
rootDir:
|
|
215
|
+
rootDir: import.meta.dirname
|
|
203
216
|
ignorePatterns: [
|
|
204
217
|
'src/**/__test__/**/snapshot/**/*',
|
|
205
218
|
'*.pid'
|
|
@@ -217,7 +230,7 @@ Example:
|
|
|
217
230
|
|
|
218
231
|
```js
|
|
219
232
|
recommended({
|
|
220
|
-
rootDir:
|
|
233
|
+
rootDir: import.meta.dirname
|
|
221
234
|
ignoreOverridePatterns: [
|
|
222
235
|
'src/generated/**/*.ts',
|
|
223
236
|
]
|
|
@@ -239,7 +252,7 @@ Example:
|
|
|
239
252
|
|
|
240
253
|
```js
|
|
241
254
|
recommended({
|
|
242
|
-
rootDir:
|
|
255
|
+
rootDir: import.meta.dirname
|
|
243
256
|
ignoreOverridePatterns: [
|
|
244
257
|
'__fixture__',
|
|
245
258
|
]
|
|
@@ -281,7 +294,7 @@ Example:
|
|
|
281
294
|
|
|
282
295
|
```js
|
|
283
296
|
recommended({
|
|
284
|
-
rootDir:
|
|
297
|
+
rootDir: import.meta.dirname
|
|
285
298
|
editorUpdateRate: 2_000
|
|
286
299
|
})
|
|
287
300
|
```
|
|
@@ -296,7 +309,7 @@ Example:
|
|
|
296
309
|
|
|
297
310
|
```js
|
|
298
311
|
recommended({
|
|
299
|
-
rootDir:
|
|
312
|
+
rootDir: import.meta.dirname
|
|
300
313
|
debugLogging: true
|
|
301
314
|
})
|
|
302
315
|
```
|
|
@@ -311,11 +324,15 @@ Example:
|
|
|
311
324
|
|
|
312
325
|
```js
|
|
313
326
|
recommended({
|
|
314
|
-
rootDir:
|
|
327
|
+
rootDir: import.meta.dirname
|
|
315
328
|
requireFileExtensions: true
|
|
316
329
|
})
|
|
317
330
|
```
|
|
318
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
|
+
|
|
319
336
|
## Comparisons to import and import-x
|
|
320
337
|
|
|
321
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)
|
|
@@ -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
|
@@ -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?: "
|
|
12
|
+
mode?: "always" | "never" | undefined;
|
|
13
13
|
forceTsExtension?: boolean | undefined;
|
|
14
14
|
} | undefined], unknown, TSESLint.RuleListener> & {
|
|
15
15
|
name: string;
|
|
@@ -62,6 +62,11 @@ 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
|
};
|
package/dist/plugin.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
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, {
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,iBAAiB;AACjB,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,gBAAgB;AAChB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAClC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC1B,CAAC;AAEvC,MAAM,MAAM,GAAG;IACb,IAAI,EAAE;QACJ,IAAI;QACJ,OAAO;KACR;IACD,OAAO,EAAE,EAAE;IACX,KAAK,EAAE;QACL,4BAA4B,EAAE,wBAAwB;QACtD,mBAAmB,EAAE,eAAe;QACpC,UAAU,EAAE,OAAO;QACnB,wBAAwB,EAAE,mBAAmB;QAC7C,uBAAuB,EAAE,mBAAmB;QAC5C,8BAA8B,EAAE,yBAAyB;QACzD,yBAAyB,EAAE,mBAAmB;QAC9C,qBAAqB,EAAE,cAAc;QACrC,kBAAkB,EAAE,cAAc;QAClC,qBAAqB,EAAE,UAAU;QACjC,uBAAuB,EAAE,mBAAmB;
|
|
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?: "
|
|
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
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/settings/settings.ts"],"names":[],"mappings":"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"}
|
package/dist/settings/user.d.ts
CHANGED
|
@@ -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>;
|
package/dist/settings/user.js
CHANGED
|
@@ -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/fast-import.config.json
CHANGED