Skip to content

Commit

Permalink
feat(eslint): change import order
Browse files Browse the repository at this point in the history
Move type imports to the top and into separate group.
  • Loading branch information
lesha1201 committed Dec 4, 2023
1 parent 4dc026c commit 6602684
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions eslint/rules/import.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,23 @@
// https://github.com/lydell/eslint-plugin-simple-import-sort#custom-grouping
const baseImportOrder = [
// Side effect imports.
['^\\u0000'],
// Node.js builtins prefixed with `node:`.
['^node:'],
// Packages.
['^@?\\w'],
// 1. Special aliases (e.g. `@/`, `~/`).
// 2. Relative imports.
['^[@~^$#!]/', '^\\.'],
];

/** Type imports order */
const typeImportOrder = baseImportOrder.flatMap(group =>
group.map(item => `${item}.+\\u0000$`),
);

const importOrder = [typeImportOrder, ...baseImportOrder];

module.exports = {
/**
* Enforce that named type-only specifiers only ever written as part of a
Expand Down Expand Up @@ -67,20 +87,5 @@ module.exports = {
*/
'import/order': 'off',
'simple-import-sort/exports': 'error',
'simple-import-sort/imports': [
'error',
{
groups: [
// Side effect imports.
['^\\u0000'],
// Node.js builtins prefixed with `node:`.
['^node:'],
// Packages.
['^@?\\w'],
// 1. Absolute imports and other imports such as Vue-style `@/foo`.
// 2. Relative imports.
['^', '^\\.'],
],
},
],
'simple-import-sort/imports': ['error', { groups: importOrder }],
};

0 comments on commit 6602684

Please sign in to comment.