Skip to content

Commit c25ec86

Browse files
authored
chore: some ESLint improvements (#283)
* chore: update eslint config * chore: auto enforce import sorting * chore: fix unresolved shiki imports * chore: remove unused file * chore: enable import-x rules to all mjs files * chore: remove unused eslint directive * chore: remove eslint-config-prettier * chore: use eslint globals.nodeBuiltin * refactor: fix rebase issues * refactor: fix rebase issues
1 parent e543fba commit c25ec86

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1022
-125
lines changed

bin/cli.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#!/usr/bin/env node
22

33
import process from 'node:process';
4+
45
import { Argument, Command, Option } from 'commander';
56

7+
import commands from './commands/index.mjs';
68
import interactive from './commands/interactive.mjs';
79
import list, { types } from './commands/list.mjs';
8-
import commands from './commands/index.mjs';
910
import { errorWrap } from './utils.mjs';
1011

1112
const program = new Command()

bin/commands/generate.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import {
77
DOC_NODE_CHANGELOG_URL,
88
DOC_NODE_VERSION,
99
} from '../../src/constants.mjs';
10-
import createGenerator from '../../src/generators.mjs';
1110
import { publicGenerators } from '../../src/generators/index.mjs';
12-
import createNodeReleases from '../../src/releases.mjs';
13-
import { loadAndParse } from '../utils.mjs';
11+
import createGenerator from '../../src/generators.mjs';
1412
import createLinter from '../../src/linter/index.mjs';
1513
import { getEnabledRules } from '../../src/linter/utils/rules.mjs';
14+
import createNodeReleases from '../../src/releases.mjs';
15+
import { loadAndParse } from '../utils.mjs';
1616

1717
const availableGenerators = Object.keys(publicGenerators);
1818

bin/commands/lint.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import process from 'node:process';
33
import createLinter from '../../src/linter/index.mjs';
44
import reporters from '../../src/linter/reporters/index.mjs';
55
import rules from '../../src/linter/rules/index.mjs';
6-
import { loadAndParse } from '../utils.mjs';
76
import { getEnabledRules } from '../../src/linter/utils/rules.mjs';
7+
import { loadAndParse } from '../utils.mjs';
88

99
const availableRules = Object.keys(rules);
1010
const availableReporters = Object.keys(reporters);

eslint.config.mjs

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,50 @@
11
import pluginJs from '@eslint/js';
2-
import eslintConfigPrettier from 'eslint-config-prettier';
2+
import importX from 'eslint-plugin-import-x';
33
import jsdoc from 'eslint-plugin-jsdoc';
44
import globals from 'globals';
55

66
export default [
7-
// @see https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores
7+
pluginJs.configs.recommended,
8+
importX.flatConfigs.recommended,
9+
{
10+
ignores: ['out/', 'src/generators/api-links/test/fixtures/'],
11+
},
12+
{
13+
files: ['**/*.mjs'],
14+
rules: {
15+
'import-x/namespace': 'off',
16+
'import-x/no-named-as-default': 'off',
17+
'import-x/no-named-as-default-member': 'off',
18+
'import-x/no-unresolved': 'off',
19+
'import-x/order': [
20+
'error',
21+
{
22+
groups: [
23+
'builtin',
24+
'external',
25+
'internal',
26+
['sibling', 'parent'],
27+
'index',
28+
'unknown',
29+
],
30+
'newlines-between': 'always',
31+
alphabetize: {
32+
order: 'asc',
33+
caseInsensitive: true,
34+
},
35+
},
36+
],
37+
},
38+
},
839
{
940
files: ['src/**/*.mjs', 'bin/**/*.mjs'],
1041
plugins: {
1142
jsdoc: jsdoc,
1243
},
13-
languageOptions: { globals: globals.node },
44+
languageOptions: {
45+
ecmaVersion: 'latest',
46+
globals: { ...globals.nodeBuiltin },
47+
},
1448
rules: {
1549
'jsdoc/check-alignment': 'error',
1650
'jsdoc/check-indentation': 'error',
@@ -39,15 +73,8 @@ export default [
3973
'jsdoc/require-param': 'off',
4074
},
4175
},
42-
// @see https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores
4376
{
4477
files: ['src/generators/legacy-html/assets/*.js'],
4578
languageOptions: { globals: { ...globals.browser } },
4679
},
47-
// @see https://eslint.org/docs/latest/rules to learn more about these rules
48-
pluginJs.configs.recommended,
49-
eslintConfigPrettier,
50-
{
51-
ignores: ['src/generators/api-links/test/fixtures/**'],
52-
},
5380
];

0 commit comments

Comments
 (0)