Skip to content

Commit

Permalink
Migrate ESLint 8 → 9
Browse files Browse the repository at this point in the history
- Migrates to flat config
- Replaces eslint-plugin-import with eslint-plugin-import-x
  • Loading branch information
Destiner committed Sep 21, 2024
1 parent 80b89ef commit 070db97
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 81 deletions.
78 changes: 0 additions & 78 deletions .eslintrc.json

This file was deleted.

Binary file modified bun.lockb
Binary file not shown.
80 changes: 80 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import js from '@eslint/js';
import eslintPluginImportX from 'eslint-plugin-import-x';
import pluginVue from 'eslint-plugin-vue';
import { configs as tsConfigs, parser as tsParser } from 'typescript-eslint';
import parserVue from 'vue-eslint-parser';

export default [
js.configs.recommended,
eslintPluginImportX.flatConfigs.recommended,
eslintPluginImportX.flatConfigs.typescript,
...tsConfigs.recommended,
...pluginVue.configs['flat/recommended'],
{
languageOptions: {
parser: tsParser,
ecmaVersion: 2020,
sourceType: 'module',
},
rules: {
'import-x/first': 'error',
'import-x/exports-last': 'error',
'import-x/newline-after-import': 'error',
'import-x/prefer-default-export': 'error',
'import-x/group-exports': 'error',
'import-x/no-duplicates': 'error',
'import-x/no-amd': 'error',
'import-x/no-commonjs': 'error',
'import-x/order': [
'error',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
],
'newlines-between': 'always',
alphabetize: {
order: 'asc',
},
},
],
'import-x/no-unused-modules': 'error',
'import-x/no-mutable-exports': 'error',
'import-x/no-extraneous-dependencies': [
'error',
{
devDependencies: [
'eslint.config.js',
'vite.config.ts',
'test/**/*.test.ts',
],
},
],
'@typescript-eslint/explicit-function-return-type': 'error',
'vue/component-api-style': ['error', ['script-setup']],
'vue/custom-event-name-casing': ['error', 'kebab-case'],
'vue/no-empty-component-block': 'error',
'vue/html-self-closing': 'off',
'vue/singleline-html-element-content-newline': 'off',
},
},
{
files: ['*.vue', '**/*.vue'],
languageOptions: {
parser: parserVue,
parserOptions: {
parser: '@typescript-eslint/parser',
},
},
},
{
files: ['src/pages/**/*.vue'],
rules: {
'vue/multi-word-component-names': 'off',
},
},
];
8 changes: 5 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,22 +30,24 @@
"vue-router": "^4.4.3"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^8.4.0",
"@eslint/js": "^9.11.0",
"@vitejs/plugin-vue": "^5.1.3",
"@vue/compiler-sfc": "^3.5.3",
"eslint": "^8.57.0",
"eslint": "^9.11.0",
"eslint-import-resolver-typescript": "^3.6.3",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-import-x": "^4.2.1",
"eslint-plugin-vue": "^9.28.0",
"prettier": "^3.3.3",
"stylelint": "^16.9.0",
"stylelint-config-property-sort-order-smacss": "^10.0.0",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^36.0.1",
"typescript": "^5.5.4",
"typescript-eslint": "^8.6.0",
"vite": "^5.4.3",
"vite-plugin-vue-devtools": "^7.4.4",
"vite-tsconfig-paths": "^5.0.1",
"vue-eslint-parser": "^9.4.3",
"vue-tsc": "^2.1.6"
}
}

0 comments on commit 070db97

Please sign in to comment.