From a120727f2dd8b76d6fa4bc846f2e05938a7024ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Fri, 8 Nov 2024 12:36:25 +0800 Subject: [PATCH] feat: eslint9 --- .eslintrc.cjs | 64 ------------------------------------------------ eslint.config.js | 17 +++++++++++++ package.json | 5 +++- 3 files changed, 21 insertions(+), 65 deletions(-) delete mode 100644 .eslintrc.cjs create mode 100644 eslint.config.js diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 253be20b..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,64 +0,0 @@ -module.exports = { - 'env': { - 'browser': true, - 'es2021': true, - 'node': true - }, - 'ignorePatterns': ['src/core/proto/'], - 'extends': [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended' - ], - 'overrides': [ - { - 'env': { - 'node': true - }, - 'files': [ - '.eslintrc.{js,cjs}' - ], - 'parserOptions': { - 'sourceType': 'script' - } - } - ], - 'parser': '@typescript-eslint/parser', - 'parserOptions': { - 'ecmaVersion': 'latest', - 'sourceType': 'module' - }, - 'plugins': [ - '@typescript-eslint', - 'import' - ], - 'settings': { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts'] - }, - 'import/resolver': { - 'typescript': { - 'alwaysTryTypes': true - } - } - }, - 'rules': { - 'indent': [ - 'error', - 4 - ], - 'linebreak-style': [ - 'error', - 'unix' - ], - 'semi': [ - 'error', - 'always' - ], - 'no-unused-vars': 'off', - 'no-async-promise-executor': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-unused-vars': 'off', - '@typescript-eslint/no-var-requires': 'off', - 'object-curly-spacing': ['error', 'always'], - } -}; diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..a3be0958 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,17 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + +export default [ + { files: ["**/*.{js,mjs,cjs,ts}"] }, + { languageOptions: { globals: globals.browser } }, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, + { + rules: { + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": "off", + "semi": ["error", "always"] + } + } +]; \ No newline at end of file diff --git a/package.json b/package.json index 1ddf8cc8..8743f6d6 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ }, "devDependencies": { "@babel/preset-typescript": "^7.24.7", + "@eslint/js": "^9.14.0", "@log4js-node/log4js-api": "^1.0.2", "@napneko/nap-proto-core": "^0.0.2", "@protobuf-ts/runtime": "^2.9.4", @@ -30,14 +31,16 @@ "chalk": "^5.3.0", "commander": "^12.1.0", "cors": "^2.8.5", - "eslint": "^8.57.0", + "eslint": "^9.14.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.1", "fast-xml-parser": "^4.3.6", "file-type": "^19.0.0", + "globals": "^15.12.0", "image-size": "^1.1.1", "json-schema-to-ts": "^3.1.1", "typescript": "^5.3.3", + "typescript-eslint": "^8.13.0", "vite": "^5.2.6", "vite-plugin-cp": "^4.0.8", "vite-tsconfig-paths": "^5.1.0"