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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # eslint-plugin-logical-imports
2
2
 
3
- Sort imports as an index of local names.
4
- Autofix in one pass with `eslint --fix` or `oxlint --fix`.
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
- Let me explain why.
48
- If you disagree with any point,
49
- that's okay and you can skip the rest.
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 Node >= 24, ESLint >= 10 or Oxlint >= 1.
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.
@@ -10,6 +10,10 @@ type Plugin = {
10
10
  };
11
11
  };
12
12
  };
13
+ meta: {
14
+ name: string;
15
+ version: string;
16
+ };
13
17
  rules: {
14
18
  order: typeof rule;
15
19
  };
@@ -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 = {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAc7B,MAAM,MAAM,GAAW;IACrB,OAAO,EAAE,EAAuB;IAChC,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"}
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 runs = isFlat ? [] : getBlockRuns(chunk, blockOrder);
41
- const isMuddled = !isFlat && (new Set(runs).size !== runs.length
42
- || hasUnseparatedBlocks(chunk, extendedRanges, sourceCode, blockOrder));
43
- const isDisorderedBlocks = !isFlat && !isMuddled && !isSubsequence(runs, blockOrder);
44
- const isDisorderedDecls = hasDisorderedDecls(chunk, sourceCode, blockOrder, allowMultipleSpecifiers ?? false);
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
- && !isMuddled
48
- && !isDisorderedBlocks
49
- && !isDisorderedDecls) {
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
- context.report({ fix, messageId: Messages.multipleSpecifiers, node: decl });
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 (isMuddled) {
61
- context.report({ fix, messageId: Messages.muddledBlocks, node: chunk[0] });
79
+ if (muddledDecl !== null) {
80
+ context.report({ fix, messageId: Messages.muddledBlocks, node: muddledDecl });
62
81
  }
63
- if (isDisorderedBlocks) {
64
- context.report({ fix, messageId: Messages.disorderedBlocks, node: chunk[0] });
82
+ if (disorderedBlocksDecl !== null) {
83
+ context.report({ fix, messageId: Messages.disorderedBlocks, node: disorderedBlocksDecl });
65
84
  }
66
- if (isDisorderedDecls) {
67
- context.report({ fix, messageId: Messages.disorderedDeclarations, node: chunk[0] });
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
- items: {
96
- enum: [
97
- 'builtin',
98
- 'builtin:types',
99
- 'external',
100
- 'external:types',
101
- 'internal',
102
- 'internal:types',
103
- ],
104
- },
105
- maxItems: 6,
106
- minItems: 0,
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 && !allowMultipleSpecifiers) {
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 getBlockRuns(chunk, blockOrder) {
342
- const runs = [];
343
- for (const decl of chunk) {
344
- const block = classify(decl, blockOrder);
345
- if (runs[runs.length - 1] !== block) {
346
- runs.push(block);
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 runs;
399
+ return null;
350
400
  }
351
- function hasUnseparatedBlocks(chunk, extendedRanges, sourceCode, blockOrder) {
401
+ function getDisorderedBlocksDecl(chunk, blockOrder, prefixes) {
352
402
  for (let i = 1; i < chunk.length; i++) {
353
- if (classify(chunk[i - 1], blockOrder) === classify(chunk[i], blockOrder)) {
354
- continue;
355
- }
356
- const between = sourceCode.text.slice(extendedRanges[i - 1][1], extendedRanges[i][0]);
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 false;
409
+ return null;
363
410
  }
364
- function isSubsequence(runs, blockOrder) {
365
- let i = 0;
366
- for (const run of runs) {
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
- return sorted.some((decl, i) => decl !== chunk[i]);
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
- for (const bucket of buckets.values()) {
394
- if (bucket.length < 2) {
395
- continue;
396
- }
397
- const sorted = [...bucket].sort(compare);
398
- if (sorted.some((decl, i) => decl !== bucket[i])) {
399
- return true;
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 false;
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, undefined, { sensitivity: 'base' });
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
@@ -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.2.3",
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": ">=24"
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
- "import",
39
+ "oxlint",
39
40
  "plugin",
41
+ "import",
42
+ "order",
40
43
  "sort"
41
44
  ],
42
45
  "peerDependencies": {
43
- "eslint": ">=10"
46
+ "eslint": ">=9"
44
47
  },
45
48
  "devDependencies": {
46
49
  "@eslint/js": "^10.0.1",