diff --git a/cli/eslint.config.mjs b/cli/eslint.config.mjs new file mode 100644 index 0000000000..b87632a120 --- /dev/null +++ b/cli/eslint.config.mjs @@ -0,0 +1,74 @@ +// @ts-check + +import antfu, { GLOB_MARKDOWN } from '@antfu/eslint-config' +import md from 'eslint-markdown' +import markdownPreferences from 'eslint-plugin-markdown-preferences' + +export default antfu( + { + ignores: original => [ + 'context/**', + 'docs/**', + 'dist/**', + 'coverage/**', + ...original, + ], + typescript: { + overrides: { + 'ts/consistent-type-definitions': ['error', 'type'], + 'ts/no-explicit-any': 'error', + 'ts/no-redeclare': 'off', + }, + erasableOnly: true, + }, + test: { + overrides: { + 'test/prefer-lowercase-title': 'off', + }, + }, + stylistic: { + overrides: { + 'antfu/top-level-function': 'off', + }, + }, + e18e: false, + }, + markdownPreferences.configs.standard, + { + files: [GLOB_MARKDOWN], + plugins: { md }, + rules: { + 'md/no-url-trailing-slash': 'error', + 'markdown-preferences/prefer-link-reference-definitions': [ + 'error', + { + minLinks: 1, + }, + ], + 'markdown-preferences/ordered-list-marker-sequence': [ + 'error', + { increment: 'never' }, + ], + 'markdown-preferences/definitions-last': 'error', + 'markdown-preferences/sort-definitions': 'error', + }, + }, + { + rules: { + 'node/prefer-global/process': 'off', + }, + }, + { + files: ['src/**/*.ts'], + rules: { + 'no-restricted-imports': ['error', { + patterns: [ + { + group: ['../**', './*/**', '..'], + message: 'Use the @/ (or @test/) alias for parent-directory or nested relative imports; keep ./ only for same-folder siblings.', + }, + ], + }], + }, + }, +) diff --git a/eslint.config.mjs b/eslint.config.mjs index 5140a99f12..1380ed67d2 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -22,10 +22,6 @@ export default antfu( '!packages/**', '!web/**', '!e2e/**', - '!cli/**', - 'cli/context/**', - 'cli/docs/**', - 'cli/oclif.manifest.json', '!eslint.config.mjs', '!package.json', '!pnpm-workspace.yaml', @@ -78,17 +74,4 @@ export default antfu( 'node/prefer-global/process': 'off', }, }, - { - files: ['cli/src/**/*.ts'], - rules: { - 'no-restricted-imports': ['error', { - patterns: [ - { - group: ['../**', './*/**', '..'], - message: 'Use the @/ (or @test/) alias for parent-directory or nested relative imports; keep ./ only for same-folder siblings.', - }, - ], - }], - }, - }, )