eslint-plugin-logical-imports 0.2.3 → 0.3.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/README.md +36 -13
- package/build/src/index.d.ts +4 -0
- package/build/src/index.js +5 -0
- package/build/src/index.js.map +1 -1
- package/build/src/rule.js +139 -92
- package/build/src/rule.js.map +1 -1
- package/package.json +8 -5
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# eslint-plugin-logical-imports
|
|
2
2
|
|
|
3
|
-
Sort
|
|
4
|
-
Autofix in one pass with
|
|
3
|
+
Sort import declarations as an index of local names.
|
|
4
|
+
Autofix in one pass with `--fix`.
|
|
5
5
|
|
|
6
6
|
* [What's this?](#whats-this)
|
|
7
7
|
* [Why?](#why)
|
|
@@ -13,6 +13,7 @@ Autofix in one pass with `eslint --fix` or `oxlint --fix`.
|
|
|
13
13
|
* [Block glossary](#block-glossary)
|
|
14
14
|
* [How do I use it?](#how-do-i-use-it)
|
|
15
15
|
* [Can I control how it handles import blocks?](#can-i-control-how-it-handles-import-blocks)
|
|
16
|
+
* [Can I use a prefix for internal paths?](#can-i-use-a-prefix-for-internal-paths)
|
|
16
17
|
* [Single imports is crazy, what about performance?](#single-imports-is-crazy-what-about-performance)
|
|
17
18
|
* [Single imports is still crazy, can I opt out of that part?](#single-imports-is-still-crazy-can-i-opt-out-of-that-part)
|
|
18
19
|
* [What alternatives exist?](#what-alternatives-exist)
|
|
@@ -41,12 +42,12 @@ or the index of a book.
|
|
|
41
42
|
|
|
42
43
|
Because you're sorting imports wrong!
|
|
43
44
|
|
|
44
|
-
> No I'm not
|
|
45
|
+
> No I'm not.
|
|
45
46
|
|
|
46
47
|
I think you are!
|
|
47
|
-
|
|
48
|
-
If you disagree with any
|
|
49
|
-
|
|
48
|
+
Allow me to explain why.
|
|
49
|
+
If you disagree with any of these points,
|
|
50
|
+
you can stop reading and move on with your life.
|
|
50
51
|
It's not for everyone. 👍
|
|
51
52
|
|
|
52
53
|
1. **What is the point of sorting anything?**
|
|
@@ -178,7 +179,7 @@ import { useUser } from './hooks/use-user';
|
|
|
178
179
|
npm install --save-dev eslint-plugin-logical-imports
|
|
179
180
|
```
|
|
180
181
|
|
|
181
|
-
Tested with
|
|
182
|
+
Tested with ESLint versions 9 and 10, and Oxlint version 1.
|
|
182
183
|
|
|
183
184
|
## How do I configure it?
|
|
184
185
|
|
|
@@ -236,17 +237,18 @@ Option|Type|Default|Description
|
|
|
236
237
|
------|----|-------|-----------
|
|
237
238
|
`allowMultipleSpecifiers`|`boolean`|`false`|Set to `true` to allow multi-imports like `{ a, b }`
|
|
238
239
|
`blocks`|`string[]`|`['builtin', 'external', 'internal']`|Change the handling of import blocks, or use `[]` for a single block.
|
|
240
|
+
`internalPrefixes`|`string[]`|`[]`|Identify path prefixes as internal, e.g. `['@/', '~/']`.
|
|
239
241
|
|
|
240
242
|
### Block glossary
|
|
241
243
|
|
|
242
244
|
Value|Matches
|
|
243
245
|
-----|-------
|
|
244
|
-
`builtin`|Node/Deno/Bun builtins, e.g. `node:fs`, `module`, `bun:test
|
|
245
|
-
`builtin:types`|Type-only imports of builtins
|
|
246
|
-
`external`|External dependencies (npm packages)
|
|
247
|
-
`external:types`|Type-only imports of external dependencies
|
|
248
|
-
`internal`|Local dependencies, e.g. `./foo/bar`, `../baz`, `/qux`
|
|
249
|
-
`internal:types`|Type-only imports of internal dependencies
|
|
246
|
+
`builtin`|Node/Deno/Bun builtins, e.g. `node:fs`, `module`, `bun:test`.
|
|
247
|
+
`builtin:types`|Type-only imports of builtins.
|
|
248
|
+
`external`|External dependencies (npm packages).
|
|
249
|
+
`external:types`|Type-only imports of external dependencies.
|
|
250
|
+
`internal`|Local dependencies, e.g. `./foo/bar`, `../baz`, `/qux`, or matching a prefix in `internalPrefixes`.
|
|
251
|
+
`internal:types`|Type-only imports of internal dependencies.
|
|
250
252
|
|
|
251
253
|
If a `:types` variant is omitted from `blocks`,
|
|
252
254
|
type imports of that category fall back to the runtime-block peer,
|
|
@@ -318,6 +320,27 @@ export default [
|
|
|
318
320
|
];
|
|
319
321
|
```
|
|
320
322
|
|
|
323
|
+
### Can I use a prefix for internal paths?
|
|
324
|
+
|
|
325
|
+
Yes, you can these with the `internalPrefixes` option:
|
|
326
|
+
|
|
327
|
+
```js
|
|
328
|
+
// ...
|
|
329
|
+
import logicalImports from 'eslint-plugin-logical-imports';
|
|
330
|
+
|
|
331
|
+
export default [
|
|
332
|
+
// ...
|
|
333
|
+
{
|
|
334
|
+
plugins: { 'logical-imports': logicalImports },
|
|
335
|
+
rules: {
|
|
336
|
+
'logical-imports/order': ['error', {
|
|
337
|
+
internalPrefixes: ['@/', '~/'],
|
|
338
|
+
}],
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
];
|
|
342
|
+
```
|
|
343
|
+
|
|
321
344
|
## Single imports is crazy, what about performance?
|
|
322
345
|
|
|
323
346
|
There's no impact from splitting imports across multiple declarations.
|
package/build/src/index.d.ts
CHANGED
package/build/src/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import pkg from 'eslint-plugin-logical-imports/package.json' with { type: 'json' };
|
|
1
2
|
import rule from "./rule.js";
|
|
2
3
|
const plugin = {
|
|
3
4
|
configs: {},
|
|
5
|
+
meta: {
|
|
6
|
+
name: pkg.name,
|
|
7
|
+
version: pkg.version,
|
|
8
|
+
},
|
|
4
9
|
rules: { order: rule },
|
|
5
10
|
};
|
|
6
11
|
plugin.configs.recommended = {
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,4CAA4C,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnF,OAAO,IAAI,MAAM,WAAW,CAAC;AAkB7B,MAAM,MAAM,GAAW;IACrB,OAAO,EAAE,EAAuB;IAChC,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB;IACD,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG;IAC3B,OAAO,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE;IACtC,KAAK,EAAE,EAAE,uBAAuB,EAAE,OAAO,EAAE;CAC5C,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
package/build/src/rule.js
CHANGED
|
@@ -20,10 +20,22 @@ const Messages = {
|
|
|
20
20
|
muddledBlocks: 'muddledBlocks',
|
|
21
21
|
multipleSpecifiers: 'multipleSpecifiers',
|
|
22
22
|
};
|
|
23
|
+
const BASE_BLOCKS = [
|
|
24
|
+
BlockTypes.builtin,
|
|
25
|
+
BlockTypes.external,
|
|
26
|
+
BlockTypes.internal,
|
|
27
|
+
];
|
|
23
28
|
const rule = {
|
|
24
29
|
create(context) {
|
|
25
|
-
const { allowMultipleSpecifiers, blocks } = (context.options[0] ?? {});
|
|
30
|
+
const { allowMultipleSpecifiers, blocks, internalPrefixes } = (context.options[0] ?? {});
|
|
26
31
|
const blockOrder = blocks ?? DEFAULT_BLOCKS;
|
|
32
|
+
const prefixes = internalPrefixes ?? [];
|
|
33
|
+
if (blockOrder.length > 0) {
|
|
34
|
+
const missing = BASE_BLOCKS.filter((block) => !blockOrder.includes(block));
|
|
35
|
+
if (missing.length > 0) {
|
|
36
|
+
throw new Error(`logical-imports/order: blocks must include all base categories or be empty (missing: ${missing.join(', ')})`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
27
39
|
const { sourceCode } = context;
|
|
28
40
|
const lineEnding = detectLineEnding(sourceCode.text);
|
|
29
41
|
const isFlat = blockOrder.length === 0;
|
|
@@ -37,34 +49,41 @@ const rule = {
|
|
|
37
49
|
const multiSpecDecls = allowMultipleSpecifiers
|
|
38
50
|
? []
|
|
39
51
|
: chunk.filter((decl) => decl.specifiers.length > 1);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
52
|
+
const muddledDecl = isFlat
|
|
53
|
+
? null
|
|
54
|
+
: getMuddledBlocksDecl(chunk, extendedRanges, sourceCode, blockOrder, prefixes);
|
|
55
|
+
const disorderedBlocksDecl = isFlat || muddledDecl !== null
|
|
56
|
+
? null
|
|
57
|
+
: getDisorderedBlocksDecl(chunk, blockOrder, prefixes);
|
|
58
|
+
const disorderedDecl = getFirstDisorderedDecl(chunk, sourceCode, blockOrder, allowMultipleSpecifiers ?? false, prefixes);
|
|
45
59
|
if (disorderedSpecDecls.length === 0
|
|
46
60
|
&& multiSpecDecls.length === 0
|
|
47
|
-
&&
|
|
48
|
-
&&
|
|
49
|
-
&&
|
|
61
|
+
&& muddledDecl === null
|
|
62
|
+
&& disorderedBlocksDecl === null
|
|
63
|
+
&& disorderedDecl === null) {
|
|
50
64
|
continue;
|
|
51
65
|
}
|
|
52
|
-
const newText = buildChunkText(chunk, extendedRanges, sourceCode, blockOrder, lineEnding, allowMultipleSpecifiers ?? false);
|
|
66
|
+
const newText = buildChunkText(chunk, extendedRanges, sourceCode, blockOrder, lineEnding, allowMultipleSpecifiers ?? false, prefixes);
|
|
53
67
|
const fix = (fixer) => fixer.replaceTextRange([extendedRanges[0][0], extendedRanges[extendedRanges.length - 1][1]], newText);
|
|
54
68
|
for (const decl of disorderedSpecDecls) {
|
|
55
69
|
context.report({ fix, messageId: Messages.disorderedSpecifiers, node: decl });
|
|
56
70
|
}
|
|
57
71
|
for (const decl of multiSpecDecls) {
|
|
58
|
-
|
|
72
|
+
if (hasInsideComments(decl, sourceCode)) {
|
|
73
|
+
context.report({ messageId: Messages.multipleSpecifiers, node: decl });
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
context.report({ fix, messageId: Messages.multipleSpecifiers, node: decl });
|
|
77
|
+
}
|
|
59
78
|
}
|
|
60
|
-
if (
|
|
61
|
-
context.report({ fix, messageId: Messages.muddledBlocks, node:
|
|
79
|
+
if (muddledDecl !== null) {
|
|
80
|
+
context.report({ fix, messageId: Messages.muddledBlocks, node: muddledDecl });
|
|
62
81
|
}
|
|
63
|
-
if (
|
|
64
|
-
context.report({ fix, messageId: Messages.disorderedBlocks, node:
|
|
82
|
+
if (disorderedBlocksDecl !== null) {
|
|
83
|
+
context.report({ fix, messageId: Messages.disorderedBlocks, node: disorderedBlocksDecl });
|
|
65
84
|
}
|
|
66
|
-
if (
|
|
67
|
-
context.report({ fix, messageId: Messages.disorderedDeclarations, node:
|
|
85
|
+
if (disorderedDecl !== null) {
|
|
86
|
+
context.report({ fix, messageId: Messages.disorderedDeclarations, node: disorderedDecl });
|
|
68
87
|
}
|
|
69
88
|
}
|
|
70
89
|
},
|
|
@@ -92,18 +111,35 @@ const rule = {
|
|
|
92
111
|
type: 'boolean',
|
|
93
112
|
},
|
|
94
113
|
blocks: {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
114
|
+
anyOf: [
|
|
115
|
+
{
|
|
116
|
+
maxItems: 0,
|
|
117
|
+
type: 'array',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
allOf: [
|
|
121
|
+
{ contains: { const: 'builtin' } },
|
|
122
|
+
{ contains: { const: 'external' } },
|
|
123
|
+
{ contains: { const: 'internal' } },
|
|
124
|
+
],
|
|
125
|
+
items: {
|
|
126
|
+
enum: [
|
|
127
|
+
'builtin',
|
|
128
|
+
'builtin:types',
|
|
129
|
+
'external',
|
|
130
|
+
'external:types',
|
|
131
|
+
'internal',
|
|
132
|
+
'internal:types',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
maxItems: 6,
|
|
136
|
+
type: 'array',
|
|
137
|
+
uniqueItems: true,
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
internalPrefixes: {
|
|
142
|
+
items: { type: 'string' },
|
|
107
143
|
type: 'array',
|
|
108
144
|
uniqueItems: true,
|
|
109
145
|
},
|
|
@@ -157,8 +193,8 @@ function hasFloatingCommentBetween(prev, curr, sourceCode) {
|
|
|
157
193
|
}
|
|
158
194
|
return false;
|
|
159
195
|
}
|
|
160
|
-
function buildChunkText(chunk, extendedRanges, sourceCode, blockOrder, lineEnding, allowMultipleSpecifiers) {
|
|
161
|
-
const items = getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowMultipleSpecifiers);
|
|
196
|
+
function buildChunkText(chunk, extendedRanges, sourceCode, blockOrder, lineEnding, allowMultipleSpecifiers, prefixes) {
|
|
197
|
+
const items = getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowMultipleSpecifiers, prefixes);
|
|
162
198
|
if (blockOrder.length === 0) {
|
|
163
199
|
return items
|
|
164
200
|
.sort((a, b) => compareKeys(a.sortKey, b.sortKey))
|
|
@@ -180,17 +216,20 @@ function buildChunkText(chunk, extendedRanges, sourceCode, blockOrder, lineEndin
|
|
|
180
216
|
.join(lineEnding))
|
|
181
217
|
.join(lineEnding + lineEnding);
|
|
182
218
|
}
|
|
183
|
-
function getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowMultipleSpecifiers) {
|
|
219
|
+
function getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowMultipleSpecifiers, prefixes) {
|
|
184
220
|
const items = [];
|
|
185
221
|
for (let i = 0; i < chunk.length; i++) {
|
|
186
222
|
const decl = chunk[i];
|
|
187
|
-
const block = classify(decl, blockOrder);
|
|
188
|
-
if (decl.specifiers.length > 1
|
|
223
|
+
const block = classify(decl, blockOrder, prefixes);
|
|
224
|
+
if (decl.specifiers.length > 1
|
|
225
|
+
&& !allowMultipleSpecifiers
|
|
226
|
+
&& !hasInsideComments(decl, sourceCode)) {
|
|
227
|
+
const tail = getDeclTail(decl, sourceCode);
|
|
189
228
|
for (const specifier of decl.specifiers) {
|
|
190
229
|
items.push({
|
|
191
230
|
block,
|
|
192
231
|
sortKey: specifier.local.name,
|
|
193
|
-
text: formatSpecifier(decl, specifier),
|
|
232
|
+
text: formatSpecifier(decl, specifier, tail),
|
|
194
233
|
});
|
|
195
234
|
}
|
|
196
235
|
}
|
|
@@ -202,11 +241,12 @@ function getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowM
|
|
|
202
241
|
&& !hasInsideComments(decl, sourceCode)
|
|
203
242
|
&& isDisorderedNamed(decl)) {
|
|
204
243
|
const leading = sourceCode.text.slice(start, decl.range[0]);
|
|
244
|
+
const tail = getDeclTail(decl, sourceCode);
|
|
205
245
|
const trailing = sourceCode.text.slice(decl.range[1], end);
|
|
206
246
|
items.push({
|
|
207
247
|
block,
|
|
208
248
|
sortKey,
|
|
209
|
-
text: leading + rebuildMultiSpecifierText(decl) + trailing,
|
|
249
|
+
text: leading + rebuildMultiSpecifierText(decl, tail) + trailing,
|
|
210
250
|
});
|
|
211
251
|
}
|
|
212
252
|
else {
|
|
@@ -220,7 +260,7 @@ function getLogicalImports(chunk, extendedRanges, sourceCode, blockOrder, allowM
|
|
|
220
260
|
}
|
|
221
261
|
return items;
|
|
222
262
|
}
|
|
223
|
-
function rebuildMultiSpecifierText(decl) {
|
|
263
|
+
function rebuildMultiSpecifierText(decl, tail) {
|
|
224
264
|
const named = decl.specifiers.filter(isImportSpecifier);
|
|
225
265
|
const sortedNamedText = [...named]
|
|
226
266
|
.sort((a, b) => compareKeys(a.local.name, b.local.name))
|
|
@@ -232,7 +272,7 @@ function rebuildMultiSpecifierText(decl) {
|
|
|
232
272
|
: `{ ${sortedNamedText} }`;
|
|
233
273
|
const isTypeDecl = decl.importKind === 'type';
|
|
234
274
|
const prefix = isTypeDecl ? 'type ' : '';
|
|
235
|
-
return `import ${prefix}${lhs} from ${decl.source.raw}
|
|
275
|
+
return `import ${prefix}${lhs} from ${decl.source.raw}${tail}`;
|
|
236
276
|
}
|
|
237
277
|
function formatNamedSpecifier(specifier) {
|
|
238
278
|
const isType = specifier.importKind === 'type';
|
|
@@ -312,8 +352,8 @@ function detectLineEnding(text) {
|
|
|
312
352
|
const lf = (text.match(/(?<!\r)\n/g) ?? []).length;
|
|
313
353
|
return crlf > lf ? '\r\n' : '\n';
|
|
314
354
|
}
|
|
315
|
-
function classify(decl, blockOrder) {
|
|
316
|
-
const baseBlock = getBaseBlock(decl);
|
|
355
|
+
function classify(decl, blockOrder, prefixes) {
|
|
356
|
+
const baseBlock = getBaseBlock(decl, prefixes);
|
|
317
357
|
if (isTypeImport(decl)) {
|
|
318
358
|
const typesBlock = `${baseBlock}:types`;
|
|
319
359
|
if (blockOrder.includes(typesBlock)) {
|
|
@@ -322,12 +362,12 @@ function classify(decl, blockOrder) {
|
|
|
322
362
|
}
|
|
323
363
|
return baseBlock;
|
|
324
364
|
}
|
|
325
|
-
function getBaseBlock(decl) {
|
|
365
|
+
function getBaseBlock(decl, prefixes) {
|
|
326
366
|
const source = decl.source.value;
|
|
327
367
|
if (/^(bun|deno|node):/.test(source) || BUILTIN_MODULES.has(source)) {
|
|
328
368
|
return BlockTypes.builtin;
|
|
329
369
|
}
|
|
330
|
-
if (source.startsWith('.') || source.startsWith('/')) {
|
|
370
|
+
if (source.startsWith('.') || source.startsWith('/') || prefixes.some((p) => source.startsWith(p))) {
|
|
331
371
|
return BlockTypes.internal;
|
|
332
372
|
}
|
|
333
373
|
return BlockTypes.external;
|
|
@@ -338,91 +378,98 @@ function isTypeImport(decl) {
|
|
|
338
378
|
}
|
|
339
379
|
return decl.specifiers.some((specifier) => specifier.importKind === 'type');
|
|
340
380
|
}
|
|
341
|
-
function
|
|
342
|
-
const
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
381
|
+
function getMuddledBlocksDecl(chunk, extendedRanges, sourceCode, blockOrder, prefixes) {
|
|
382
|
+
const closedBlocks = new Set();
|
|
383
|
+
let prevBlock = null;
|
|
384
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
385
|
+
const block = classify(chunk[i], blockOrder, prefixes);
|
|
386
|
+
if (prevBlock !== null && prevBlock !== block) {
|
|
387
|
+
closedBlocks.add(prevBlock);
|
|
388
|
+
if (closedBlocks.has(block)) {
|
|
389
|
+
return chunk[i];
|
|
390
|
+
}
|
|
391
|
+
const between = sourceCode.text.slice(extendedRanges[i - 1][1], extendedRanges[i][0]);
|
|
392
|
+
const newlines = (between.match(/\n/g) ?? []).length;
|
|
393
|
+
if (newlines < 2) {
|
|
394
|
+
return chunk[i];
|
|
395
|
+
}
|
|
347
396
|
}
|
|
397
|
+
prevBlock = block;
|
|
348
398
|
}
|
|
349
|
-
return
|
|
399
|
+
return null;
|
|
350
400
|
}
|
|
351
|
-
function
|
|
401
|
+
function getDisorderedBlocksDecl(chunk, blockOrder, prefixes) {
|
|
352
402
|
for (let i = 1; i < chunk.length; i++) {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
const newlines = (between.match(/\n/g) ?? []).length;
|
|
358
|
-
if (newlines < 2) {
|
|
359
|
-
return true;
|
|
403
|
+
const prevIdx = blockOrder.indexOf(classify(chunk[i - 1], blockOrder, prefixes));
|
|
404
|
+
const currIdx = blockOrder.indexOf(classify(chunk[i], blockOrder, prefixes));
|
|
405
|
+
if (currIdx < prevIdx) {
|
|
406
|
+
return chunk[i];
|
|
360
407
|
}
|
|
361
408
|
}
|
|
362
|
-
return
|
|
409
|
+
return null;
|
|
363
410
|
}
|
|
364
|
-
function
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
while (i < blockOrder.length && blockOrder[i] !== run) {
|
|
368
|
-
i++;
|
|
369
|
-
}
|
|
370
|
-
if (i >= blockOrder.length) {
|
|
371
|
-
return false;
|
|
372
|
-
}
|
|
373
|
-
i++;
|
|
411
|
+
function getFirstDisorderedDecl(chunk, sourceCode, blockOrder, allowMultipleSpecifiers, prefixes) {
|
|
412
|
+
if (chunk.length < 2) {
|
|
413
|
+
return null;
|
|
374
414
|
}
|
|
375
|
-
return true;
|
|
376
|
-
}
|
|
377
|
-
function hasDisorderedDecls(chunk, sourceCode, blockOrder, allowMultipleSpecifiers) {
|
|
378
415
|
const compare = (a, b) => compareKeys(getEffectiveSortKey(a, sourceCode, allowMultipleSpecifiers), getEffectiveSortKey(b, sourceCode, allowMultipleSpecifiers));
|
|
379
416
|
if (blockOrder.length === 0) {
|
|
380
|
-
if (chunk.length < 2) {
|
|
381
|
-
return false;
|
|
382
|
-
}
|
|
383
417
|
const sorted = [...chunk].sort(compare);
|
|
384
|
-
|
|
418
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
419
|
+
if (sorted[i] !== chunk[i]) {
|
|
420
|
+
return sorted[i];
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return null;
|
|
385
424
|
}
|
|
386
425
|
const buckets = new Map();
|
|
387
426
|
for (const decl of chunk) {
|
|
388
|
-
const block = classify(decl, blockOrder);
|
|
427
|
+
const block = classify(decl, blockOrder, prefixes);
|
|
389
428
|
const bucket = buckets.get(block) ?? [];
|
|
390
429
|
bucket.push(decl);
|
|
391
430
|
buckets.set(block, bucket);
|
|
392
431
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
432
|
+
const cursors = new Map();
|
|
433
|
+
for (const [block, bucket] of buckets) {
|
|
434
|
+
bucket.sort(compare);
|
|
435
|
+
cursors.set(block, 0);
|
|
436
|
+
}
|
|
437
|
+
for (const decl of chunk) {
|
|
438
|
+
const block = classify(decl, blockOrder, prefixes);
|
|
439
|
+
const sorted = buckets.get(block);
|
|
440
|
+
const cursor = cursors.get(block);
|
|
441
|
+
if (sorted[cursor] !== decl) {
|
|
442
|
+
return sorted[cursor];
|
|
400
443
|
}
|
|
444
|
+
cursors.set(block, cursor + 1);
|
|
401
445
|
}
|
|
402
|
-
return
|
|
446
|
+
return null;
|
|
403
447
|
}
|
|
404
448
|
function getDisorderedSpecDecls(chunk, sourceCode) {
|
|
405
449
|
return chunk.filter((decl) => decl.specifiers.length > 1
|
|
406
450
|
&& !hasInsideComments(decl, sourceCode)
|
|
407
451
|
&& isDisorderedNamed(decl));
|
|
408
452
|
}
|
|
409
|
-
function formatSpecifier(decl, specifier) {
|
|
453
|
+
function formatSpecifier(decl, specifier, tail) {
|
|
410
454
|
if (isImportDefaultSpecifier(specifier)) {
|
|
411
|
-
return formatImport(specifier.local.name, decl.source.raw);
|
|
455
|
+
return formatImport(specifier.local.name, decl.source.raw, tail);
|
|
412
456
|
}
|
|
413
457
|
if (isImportNamespaceSpecifier(specifier)) {
|
|
414
|
-
return formatImport(`* as ${specifier.local.name}`, decl.source.raw);
|
|
458
|
+
return formatImport(`* as ${specifier.local.name}`, decl.source.raw, tail);
|
|
415
459
|
}
|
|
416
460
|
if (isIdentifier(specifier.imported) && specifier.imported.name === specifier.local.name) {
|
|
417
|
-
return formatImport(`{ ${specifier.local.name} }`, decl.source.raw);
|
|
461
|
+
return formatImport(`{ ${specifier.local.name} }`, decl.source.raw, tail);
|
|
418
462
|
}
|
|
419
463
|
const imported = isIdentifier(specifier.imported)
|
|
420
464
|
? specifier.imported.name
|
|
421
465
|
: specifier.imported.raw;
|
|
422
|
-
return formatImport(`{ ${imported} as ${specifier.local.name} }`, decl.source.raw);
|
|
466
|
+
return formatImport(`{ ${imported} as ${specifier.local.name} }`, decl.source.raw, tail);
|
|
467
|
+
}
|
|
468
|
+
function getDeclTail(decl, sourceCode) {
|
|
469
|
+
return sourceCode.text.slice(decl.source.range[1], decl.range[1]);
|
|
423
470
|
}
|
|
424
471
|
function compareKeys(a, b) {
|
|
425
|
-
const ci = a.localeCompare(b,
|
|
472
|
+
const ci = a.localeCompare(b, 'en', { sensitivity: 'base' });
|
|
426
473
|
if (ci !== 0) {
|
|
427
474
|
return ci;
|
|
428
475
|
}
|
|
@@ -440,7 +487,7 @@ function isImportNamespaceSpecifier(node) {
|
|
|
440
487
|
function isImportSpecifier(node) {
|
|
441
488
|
return node.type === 'ImportSpecifier';
|
|
442
489
|
}
|
|
443
|
-
function formatImport(lhs, rhs) {
|
|
444
|
-
return `import ${lhs} from ${rhs}
|
|
490
|
+
function formatImport(lhs, rhs, tail) {
|
|
491
|
+
return `import ${lhs} from ${rhs}${tail}`;
|
|
445
492
|
}
|
|
446
493
|
//# sourceMappingURL=rule.js.map
|
package/build/src/rule.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/rule.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/rule.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-logical-imports",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "ESLint plugin that enforces one specifier per import statement and alphabetical sort by local symbol name, with configurable block grouping.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Phil Booth (https://philbooth.me/)",
|
|
@@ -16,13 +16,14 @@
|
|
|
16
16
|
".": {
|
|
17
17
|
"types": "./build/src/index.d.ts",
|
|
18
18
|
"default": "./build/src/index.js"
|
|
19
|
-
}
|
|
19
|
+
},
|
|
20
|
+
"./package.json": "./package.json"
|
|
20
21
|
},
|
|
21
22
|
"files": [
|
|
22
23
|
"build/src"
|
|
23
24
|
],
|
|
24
25
|
"engines": {
|
|
25
|
-
"node": ">=
|
|
26
|
+
"node": ">=22"
|
|
26
27
|
},
|
|
27
28
|
"type": "module",
|
|
28
29
|
"scripts": {
|
|
@@ -35,12 +36,14 @@
|
|
|
35
36
|
},
|
|
36
37
|
"keywords": [
|
|
37
38
|
"eslint",
|
|
38
|
-
"
|
|
39
|
+
"oxlint",
|
|
39
40
|
"plugin",
|
|
41
|
+
"import",
|
|
42
|
+
"order",
|
|
40
43
|
"sort"
|
|
41
44
|
],
|
|
42
45
|
"peerDependencies": {
|
|
43
|
-
"eslint": ">=
|
|
46
|
+
"eslint": ">=9"
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@eslint/js": "^10.0.1",
|