eslint-plugin-fast-import 2.1.0 → 2.2.1
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/.claude/settings.local.json +4 -4
- package/CHANGELOG.md +9 -0
- package/README.md +58 -25
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/rules/alias/alias.d.ts +1 -1
- package/dist/rules/extension/extension.d.ts +1 -1
- package/dist/settings/settings.js +7 -2
- package/dist/settings/settings.js.map +1 -1
- package/dist/settings/user.d.ts +6 -2
- package/dist/settings/user.js +10 -2
- package/dist/settings/user.js.map +1 -1
- package/eslint.config.mjs +6 -2
- package/fast-import.config.json +3 -4
- package/oxlint.config.ts +53 -0
- package/package.json +13 -3
- package/tsconfig.base.json +2 -1
- package/dist/package/package.d.ts +0 -8
- package/dist/package/package.js +0 -41
- package/dist/package/package.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"permissions": {
|
|
3
3
|
"allow": [
|
|
4
|
-
"Bash(npm i)",
|
|
5
|
-
"Bash(npm run build:*)",
|
|
6
4
|
"Bash(npm run lint:*)",
|
|
7
|
-
"Bash(npm run
|
|
8
|
-
"Bash(
|
|
5
|
+
"Bash(npm run build:*)",
|
|
6
|
+
"Bash(npx eslint:*)",
|
|
7
|
+
"Bash(npm test:*)",
|
|
8
|
+
"Bash(node -e:*)"
|
|
9
9
|
]
|
|
10
10
|
}
|
|
11
11
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 2.2.1 (10/13/2025)
|
|
4
|
+
|
|
5
|
+
- Added missing export for `getLocFromRange`
|
|
6
|
+
|
|
7
|
+
## 2.2.0 (3/26/2026)
|
|
8
|
+
|
|
9
|
+
- Added support for `regexp` property in `entryPoints` and `externallyImported` options
|
|
10
|
+
- Added formal support for Oxlint
|
|
11
|
+
|
|
3
12
|
## 2.1.0 (3/13/2026)
|
|
4
13
|
|
|
5
14
|
- Fixed logic errors in `prefer-alias-imports` rule
|
package/README.md
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
- [Installation](#installation)
|
|
6
6
|
- [Rules](#rules)
|
|
7
7
|
- [Configuration](#configuration)
|
|
8
|
-
- [Using fast-import.config.json](#using-fast-importconfigjson)
|
|
9
8
|
- [Configuration options](#configuration-options)
|
|
10
9
|
- [rootDir (required)](#rootdir-required)
|
|
11
10
|
- [alias](#alias)
|
|
@@ -17,7 +16,9 @@
|
|
|
17
16
|
- [editorUpdateRate](#editorupdaterate)
|
|
18
17
|
- [debugLogging](#debuglogging)
|
|
19
18
|
- [requireFileExtensions](#requirefileextensions)
|
|
19
|
+
- [Using fast-import.config.json](#using-fast-importconfigjson)
|
|
20
20
|
- [Use in monorepos](#use-in-monorepos)
|
|
21
|
+
- [Using with Oxlint](#using-with-oxlint)
|
|
21
22
|
- [Comparisons to import and import-x](#comparisons-to-import-and-import-x)
|
|
22
23
|
- [Performance](#performance)
|
|
23
24
|
- [Accuracy](#accuracy)
|
|
@@ -94,28 +95,6 @@ export default [
|
|
|
94
95
|
|
|
95
96
|
This will apply the recommended rules along with the default configuration.
|
|
96
97
|
|
|
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
|
-
|
|
119
98
|
### Configuration options
|
|
120
99
|
|
|
121
100
|
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.
|
|
@@ -173,7 +152,7 @@ Note: patterns with a single star after them will match any symbols/files that s
|
|
|
173
152
|
|
|
174
153
|
#### externallyImported / entryPoints
|
|
175
154
|
|
|
176
|
-
Type: `Record<string, Array<string> | RegExp>`
|
|
155
|
+
Type: `Record<string, Array<string> | RegExp | { regexp: string }>`
|
|
177
156
|
|
|
178
157
|
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
158
|
|
|
@@ -196,6 +175,9 @@ recommended({
|
|
|
196
175
|
},
|
|
197
176
|
externallyImported: {
|
|
198
177
|
'index.ts': /.*/,
|
|
178
|
+
// Or use { regexp: string } for environments that don't support RegExp
|
|
179
|
+
// (e.g. Oxlint's JS plugin interface):
|
|
180
|
+
// 'index.ts': { regexp: '.*' },
|
|
199
181
|
},
|
|
200
182
|
});
|
|
201
183
|
```
|
|
@@ -253,7 +235,7 @@ Example:
|
|
|
253
235
|
```js
|
|
254
236
|
recommended({
|
|
255
237
|
rootDir: import.meta.dirname
|
|
256
|
-
|
|
238
|
+
testFilePatterns: [
|
|
257
239
|
'__fixture__',
|
|
258
240
|
]
|
|
259
241
|
})
|
|
@@ -329,10 +311,61 @@ recommended({
|
|
|
329
311
|
})
|
|
330
312
|
```
|
|
331
313
|
|
|
314
|
+
### Using fast-import.config.json
|
|
315
|
+
|
|
316
|
+
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.
|
|
317
|
+
|
|
318
|
+
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:
|
|
319
|
+
|
|
320
|
+
```js
|
|
321
|
+
import { recommended } from 'eslint-plugin-fast-import';
|
|
322
|
+
|
|
323
|
+
export default [recommended(import.meta.dirname)];
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
And then the configuration file:
|
|
327
|
+
|
|
328
|
+
```json
|
|
329
|
+
{
|
|
330
|
+
"entryPoints": {
|
|
331
|
+
"./src/index.ts": ["default"]
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
332
336
|
### Use in monorepos
|
|
333
337
|
|
|
334
338
|
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
339
|
|
|
340
|
+
### Using with Oxlint
|
|
341
|
+
|
|
342
|
+
Fast Import works with [Oxlint](https://oxc.rs/docs/guide/usage/linter) via its [JS plugin interface](https://oxc.rs/docs/guide/usage/linter/js-plugins).
|
|
343
|
+
|
|
344
|
+
Configuration is essentially the same as with ESLint, with two differences:
|
|
345
|
+
|
|
346
|
+
1. Oxlint's JS plugin interface does not yet [support `RegExp` values in settings](https://github.com/oxc-project/oxc/issues/20530). If you use regexes in `entryPoints` or `externallyImported`, use the `{ regexp: string }` form instead (see [externallyImported / entryPoints](#externallyimported--entrypoints)).
|
|
347
|
+
2. Oxlint does not have an equivalent to ESLint's flat config, so the `recommended()` and `all()` helper functions cannot be used directly. Instead, call the helper and spread its `rules` and `settings` into Oxlint's config separately:
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
import { all } from 'eslint-plugin-fast-import';
|
|
351
|
+
|
|
352
|
+
const ROOT_DIR = import.meta.dirname;
|
|
353
|
+
const { rules: fastImportRules, settings } = all(ROOT_DIR);
|
|
354
|
+
|
|
355
|
+
export default {
|
|
356
|
+
jsPlugins: [
|
|
357
|
+
{ name: 'fast-import', specifier: 'eslint-plugin-fast-import' },
|
|
358
|
+
],
|
|
359
|
+
rules: {
|
|
360
|
+
...fastImportRules,
|
|
361
|
+
// other rules...
|
|
362
|
+
},
|
|
363
|
+
settings,
|
|
364
|
+
};
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
For a full working example, see this repo's own [oxlint.config.ts](./oxlint.config.ts).
|
|
368
|
+
|
|
336
369
|
## Comparisons to import and import-x
|
|
337
370
|
|
|
338
371
|
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)
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
2
|
import type { UserSettings } from './settings/user.js';
|
|
3
|
-
export { getESMInfo, registerUpdateListener, isNonTestFile, } from './rules/util.js';
|
|
3
|
+
export { getESMInfo, registerUpdateListener, isNonTestFile, getLocFromRange, } from './rules/util.js';
|
|
4
4
|
declare const plugin: {
|
|
5
5
|
meta: {
|
|
6
6
|
name: string;
|
|
@@ -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?: "never" | "always" | undefined;
|
|
13
13
|
forceTsExtension?: boolean | undefined;
|
|
14
14
|
} | undefined], unknown, TSESLint.RuleListener> & {
|
|
15
15
|
name: string;
|
|
@@ -63,7 +63,7 @@ declare const plugin: {
|
|
|
63
63
|
name: string;
|
|
64
64
|
};
|
|
65
65
|
'prefer-alias-imports': TSESLint.RuleModule<"preferAlias" | "preferRelative", [{
|
|
66
|
-
mode?: "
|
|
66
|
+
mode?: "relative-if-local" | "always" | undefined;
|
|
67
67
|
minSharedPathDepth?: number | undefined;
|
|
68
68
|
} | undefined], unknown, TSESLint.RuleListener> & {
|
|
69
69
|
name: string;
|
package/dist/plugin.js
CHANGED
|
@@ -14,7 +14,7 @@ import { noTestImportsInProd } from './rules/testInProd/testInProd.js';
|
|
|
14
14
|
import { noUnresolvedImports } from './rules/unresolved/unresolved.js';
|
|
15
15
|
import { noUnusedExports } from './rules/unused/unused.js';
|
|
16
16
|
// Helper exports
|
|
17
|
-
export { getESMInfo, registerUpdateListener, isNonTestFile, } from './rules/util.js';
|
|
17
|
+
export { getESMInfo, registerUpdateListener, isNonTestFile, getLocFromRange, } from './rules/util.js';
|
|
18
18
|
// Plugin export
|
|
19
19
|
const { name, version } = JSON.parse(readFileSync(join(getDirname(), '..', 'package.json'), 'utf8'));
|
|
20
20
|
const plugin = {
|
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,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,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,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const preferAliasImports: import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferAlias" | "preferRelative", [{
|
|
2
|
-
mode?: "
|
|
2
|
+
mode?: "relative-if-local" | "always" | undefined;
|
|
3
3
|
minSharedPathDepth?: number | undefined;
|
|
4
4
|
} | undefined], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
5
5
|
name: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const consistentFileExtensions: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingExtension" | "extraExtension" | "incorrectExtension", [{
|
|
2
|
-
mode?: "
|
|
2
|
+
mode?: "never" | "always" | undefined;
|
|
3
3
|
forceTsExtension?: boolean | undefined;
|
|
4
4
|
} | undefined], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
5
5
|
name: string;
|
|
@@ -104,7 +104,9 @@ export function getSettings(context) {
|
|
|
104
104
|
})) {
|
|
105
105
|
const formattedSymbols = Array.isArray(symbols)
|
|
106
106
|
? symbols.map((symbol) => trimTrailingPathSeparator(symbol))
|
|
107
|
-
: symbols
|
|
107
|
+
: symbols instanceof RegExp
|
|
108
|
+
? symbols
|
|
109
|
+
: new RegExp(symbols.regexp);
|
|
108
110
|
if (isAbsolute(filePattern)) {
|
|
109
111
|
warn(`Invalid entry point file patter "${filePattern}". Entry point files patterns must be relative to the directory with your ESLint config file, not absolute. This entry point will be ignored.`);
|
|
110
112
|
continue;
|
|
@@ -173,9 +175,12 @@ export function getSettings(context) {
|
|
|
173
175
|
debug(` ${symbol}`);
|
|
174
176
|
}
|
|
175
177
|
}
|
|
176
|
-
else {
|
|
178
|
+
else if (symbols instanceof RegExp) {
|
|
177
179
|
debug(` ${symbols.toString()}`);
|
|
178
180
|
}
|
|
181
|
+
else {
|
|
182
|
+
debug(` /${symbols.regexp}/`);
|
|
183
|
+
}
|
|
179
184
|
}
|
|
180
185
|
}
|
|
181
186
|
const ignorePatterns = (mergedSettings.ignorePatterns ?? []).map((p) => ({
|
|
@@ -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":"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"}
|
package/dist/settings/user.d.ts
CHANGED
|
@@ -3,8 +3,12 @@ import type { GenericContext } from '../types/context.js';
|
|
|
3
3
|
declare const settingsSchema: z.ZodObject<{
|
|
4
4
|
rootDir: z.ZodString;
|
|
5
5
|
alias: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
6
|
-
entryPoints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodCustom<RegExp, RegExp
|
|
7
|
-
|
|
6
|
+
entryPoints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{
|
|
7
|
+
regexp: z.ZodString;
|
|
8
|
+
}, z.core.$strict>]>>>;
|
|
9
|
+
externallyImported: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodString>, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{
|
|
10
|
+
regexp: z.ZodString;
|
|
11
|
+
}, z.core.$strict>]>>>;
|
|
8
12
|
ignorePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
13
|
ignoreOverridePatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
10
14
|
mode: z.ZodOptional<z.ZodEnum<{
|
package/dist/settings/user.js
CHANGED
|
@@ -7,10 +7,18 @@ const settingsSchema = z.strictObject({
|
|
|
7
7
|
rootDir: z.string(),
|
|
8
8
|
alias: z.record(z.string(), z.string()).optional(),
|
|
9
9
|
entryPoints: z
|
|
10
|
-
.record(z.string(), z.union([
|
|
10
|
+
.record(z.string(), z.union([
|
|
11
|
+
z.array(z.string()),
|
|
12
|
+
z.instanceof(RegExp),
|
|
13
|
+
z.strictObject({ regexp: z.string() }),
|
|
14
|
+
]))
|
|
11
15
|
.optional(),
|
|
12
16
|
externallyImported: z
|
|
13
|
-
.record(z.string(), z.union([
|
|
17
|
+
.record(z.string(), z.union([
|
|
18
|
+
z.array(z.string()),
|
|
19
|
+
z.instanceof(RegExp),
|
|
20
|
+
z.strictObject({ regexp: z.string() }),
|
|
21
|
+
]))
|
|
14
22
|
.optional(),
|
|
15
23
|
ignorePatterns: z.array(z.string()).optional(),
|
|
16
24
|
ignoreOverridePatterns: z.array(z.string()).optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/settings/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAClD,WAAW,EAAE,CAAC;SACX,MAAM,
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/settings/user.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { join
|
|
1
|
+
import { join } from 'node:path';
|
|
2
2
|
|
|
3
3
|
import { includeIgnoreFile } from '@eslint/compat';
|
|
4
4
|
import js from '@eslint/js';
|
|
@@ -16,7 +16,11 @@ const ROOT_DIR = import.meta.dirname;
|
|
|
16
16
|
|
|
17
17
|
export default defineConfig([
|
|
18
18
|
includeIgnoreFile(join(ROOT_DIR, '.gitignore')),
|
|
19
|
-
globalIgnores([
|
|
19
|
+
globalIgnores([
|
|
20
|
+
'src/**/__test__/**/project/**/*',
|
|
21
|
+
'jest.config.ts',
|
|
22
|
+
'oxlint.config.ts',
|
|
23
|
+
]),
|
|
20
24
|
{
|
|
21
25
|
files: ['**/*.{js,mjs,jsx,ts,tsx,mts}'],
|
|
22
26
|
languageOptions: {
|
package/fast-import.config.json
CHANGED
|
@@ -4,16 +4,15 @@
|
|
|
4
4
|
"default",
|
|
5
5
|
"getESMInfo",
|
|
6
6
|
"registerUpdateListener",
|
|
7
|
+
"getLocFromRange",
|
|
7
8
|
"isNonTestFile",
|
|
8
9
|
"recommended",
|
|
9
10
|
"all"
|
|
10
11
|
]
|
|
11
12
|
},
|
|
12
13
|
"externallyImported": {
|
|
13
|
-
"*.config.*": [
|
|
14
|
-
"default"
|
|
15
|
-
]
|
|
14
|
+
"*.config.*": ["default"]
|
|
16
15
|
},
|
|
17
16
|
"debugLogging": true,
|
|
18
17
|
"requireFileExtensions": true
|
|
19
|
-
}
|
|
18
|
+
}
|
package/oxlint.config.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { all } from './dist/plugin.js';
|
|
2
|
+
|
|
3
|
+
const ROOT_DIR = import.meta.dirname;
|
|
4
|
+
|
|
5
|
+
// Get fast-import rules and settings from the plugin helper,
|
|
6
|
+
// same as eslint.config.mjs uses all(ROOT_DIR)
|
|
7
|
+
const fastImportConfig = all(ROOT_DIR);
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
plugins: ['typescript', 'jest'],
|
|
11
|
+
categories: {
|
|
12
|
+
correctness: 'error',
|
|
13
|
+
},
|
|
14
|
+
options: {
|
|
15
|
+
typeAware: true,
|
|
16
|
+
},
|
|
17
|
+
jsPlugins: [
|
|
18
|
+
{ name: 'fast-import', specifier: './dist/plugin.js' },
|
|
19
|
+
'eslint-plugin-simple-import-sort',
|
|
20
|
+
],
|
|
21
|
+
ignorePatterns: [
|
|
22
|
+
'dist',
|
|
23
|
+
'coverage',
|
|
24
|
+
'node_modules',
|
|
25
|
+
'src/**/__test__/**/project/**/*',
|
|
26
|
+
'jest.config.ts',
|
|
27
|
+
],
|
|
28
|
+
overrides: [
|
|
29
|
+
{
|
|
30
|
+
files: ['**/*.test.ts'],
|
|
31
|
+
rules: {
|
|
32
|
+
'jest/expect-expect': 'error',
|
|
33
|
+
'jest/no-disabled-tests': 'warn',
|
|
34
|
+
'jest/no-focused-tests': 'error',
|
|
35
|
+
'jest/no-identical-title': 'error',
|
|
36
|
+
'jest/valid-expect': 'error',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
rules: {
|
|
41
|
+
// Core ESLint rules matching eslint.config.mjs
|
|
42
|
+
'eslint/object-shorthand': 'error',
|
|
43
|
+
'simple-import-sort/imports': 'error',
|
|
44
|
+
|
|
45
|
+
// TypeScript rules matching eslint.config.mjs
|
|
46
|
+
'typescript/consistent-type-imports': 'error',
|
|
47
|
+
'typescript/no-unsafe-enum-comparison': 'off',
|
|
48
|
+
|
|
49
|
+
// fast-import rules from the all() helper
|
|
50
|
+
...fastImportConfig.rules,
|
|
51
|
+
},
|
|
52
|
+
settings: fastImportConfig.settings,
|
|
53
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-fast-import",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "ESLint plugin with rules to ensure proper usage of imports and exports",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -16,10 +16,18 @@
|
|
|
16
16
|
"author": "Bryan Hughes <bryan@nebri.us>",
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"main": "dist/plugin.js",
|
|
19
|
+
"exports": {
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./dist/plugin.d.ts",
|
|
22
|
+
"default": "./dist/plugin.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
19
25
|
"type": "module",
|
|
20
26
|
"scripts": {
|
|
21
|
-
"lint": "
|
|
22
|
-
"lint:
|
|
27
|
+
"lint": "npm run lint:eslint && npm run lint:oxlint",
|
|
28
|
+
"lint:eslint": "TIMING=1 eslint --report-unused-disable-directives \"**/*.{ts,tsx,mts,js,jsx,mjs}\"",
|
|
29
|
+
"lint:eslint:fix": "eslint --fix \"**/*.{js,jsx,mjs,ts,tsx,mts}\"",
|
|
30
|
+
"lint:oxlint": "oxlint --type-aware",
|
|
23
31
|
"build": "tsc",
|
|
24
32
|
"test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage src",
|
|
25
33
|
"format": "prettier --write \"**/*.{js,jsx,mjs,ts,tsx,mts}\"",
|
|
@@ -52,6 +60,8 @@
|
|
|
52
60
|
"global": "^4.4.0",
|
|
53
61
|
"globals": "^17.0.0",
|
|
54
62
|
"jest-diff": "^30.0.0",
|
|
63
|
+
"oxlint": "^1.57.0",
|
|
64
|
+
"oxlint-tsgolint": "^0.17.4",
|
|
55
65
|
"prettier": "^3.4.2",
|
|
56
66
|
"simple-git": "^3.27.0",
|
|
57
67
|
"ts-jest": "^29.2.5",
|
package/tsconfig.base.json
CHANGED
package/dist/package/package.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|