{
+ "$schema": "https://json.schemastore.org/eslintrc",
"root": true,
"env": {
- "es2020": true,
+ "es2022": true,
"node": true,
"mocha": true
},
"parserOptions": {
- "ecmaVersion": 2020,
+ "ecmaVersion": 2022,
"sourceType": "module"
},
- "extends": [
- "eslint:recommended",
- "plugin:import/recommended",
- "plugin:jsdoc/recommended",
- "plugin:prettier/recommended"
- ],
- "plugins": ["import", "jsdoc"],
+ "plugins": ["import"],
+ "extends": ["eslint:recommended", "plugin:import/recommended", "plugin:prettier/recommended"],
"settings": {
- "jsdoc": {
- "mode": "typescript"
- },
"import/resolver": {
"typescript": {
"project": "./tsconfig.json"
"space-unary-ops": "error",
"spaced-comment": ["error", "always"],
"switch-colon-spacing": "error",
- "arrow-body-style": ["error", "as-needed"],
"arrow-parens": ["error", "always"],
"arrow-spacing": "error",
"no-duplicate-imports": "error",
"no-var": "error",
"prefer-const": "error",
"sort-imports": [
- "warn",
+ "error",
{
"ignoreCase": false,
"ignoreDeclarationSort": true,
"allowSeparatedGroups": true
}
],
- "import/no-unresolved": "error",
"import/order": [
"error",
{
"files": ["**/*.ts"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
- "project": "./tsconfig.json"
+ "project": true,
+ "tsconfigRootDir": "./"
},
+ "plugins": ["@typescript-eslint", "eslint-plugin-tsdoc"],
"extends": [
- "plugin:@typescript-eslint/eslint-recommended",
- "plugin:@typescript-eslint/recommended",
- "plugin:@typescript-eslint/recommended-requiring-type-checking",
+ "plugin:@typescript-eslint/recommended-type-checked",
+ "plugin:@typescript-eslint/stylistic-type-checked",
"plugin:import/typescript"
],
- "plugins": ["@typescript-eslint"],
"rules": {
+ "tsdoc/syntax": "warn",
"@typescript-eslint/array-type": "off",
"semi": "off",
"@typescript-eslint/semi": ["error", "always"],
}
},
{
- "files": ["**/*.js"],
- "extends": "plugin:node/recommended",
+ "files": ["**/*.js", "**/*.cjs", "**/*.mjs"],
+ "plugins": ["jsdoc"],
+ "extends": ["plugin:jsdoc/recommended", "plugin:n/recommended"],
"rules": {
- "node/shebang": "off"
+ "n/shebang": "off"
}
}
]