Skip to content

Commit 8c6e34f

Browse files
committed
fix(eslint): generated import order are now sorted alphabetically
1 parent de70bb6 commit 8c6e34f

File tree

5 files changed

+29
-3
lines changed

5 files changed

+29
-3
lines changed

.changeset/slimy-wombats-peel.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'sv': patch
3+
---
4+
5+
fix(eslint): generated import order are now sorted alphabetically

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@
4646
"esbuild"
4747
]
4848
}
49-
}
49+
}

packages/addons/eslint/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { addEslintConfigPrettier } from '../common.ts';
21
import { defineAddon, log } from '@sveltejs/cli-core';
32
import {
43
array,
@@ -10,6 +9,7 @@ import {
109
type AstTypes
1110
} from '@sveltejs/cli-core/js';
1211
import { parseJson, parseScript } from '@sveltejs/cli-core/parsers';
12+
import { addEslintConfigPrettier } from '../common.ts';
1313

1414
export default defineAddon({
1515
id: 'eslint',
@@ -164,8 +164,8 @@ export default defineAddon({
164164
imports.addNamed(ast, 'node:url', { fileURLToPath: 'fileURLToPath' });
165165
imports.addDefault(ast, 'globals', 'globals');
166166
imports.addDefault(ast, 'eslint-plugin-svelte', 'svelte');
167-
imports.addNamed(ast, '@eslint/compat', { includeIgnoreFile: 'includeIgnoreFile' });
168167
imports.addDefault(ast, '@eslint/js', 'js');
168+
imports.addNamed(ast, '@eslint/compat', { includeIgnoreFile: 'includeIgnoreFile' });
169169

170170
return generateCode();
171171
});
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import * as foo from 'p1';
2+
import * as bar from './p2';
3+
import { namedTwo } from 'p3';
4+
import 'p4';
5+
import MyPackage from 'p5';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { imports, type AstTypes } from '@sveltejs/cli-core/js';
2+
3+
export function run(ast: AstTypes.Program): void {
4+
// imports should be added HERE in the reverse order
5+
// so that the imports are added from the top (unshift)
6+
imports.addDefault(ast, 'p5', 'MyPackage');
7+
imports.addEmpty(ast, 'p4');
8+
imports.addNamed(ast, 'p3', { namedTwo: 'namedTwo' }, false);
9+
imports.addNamespace(ast, './p2', 'bar');
10+
imports.addNamespace(ast, 'p1', 'foo');
11+
12+
// adding the same import twice should not produce two imports
13+
imports.addNamespace(ast, './p2', 'bar');
14+
// adding the same import for the 3rd time. Only the first one should be kept.
15+
imports.addNamespace(ast, './p2', 'bar');
16+
}

0 commit comments

Comments
 (0)