@robot-inventor/eslint-config 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@typescript-eslint/utils/dist/ts-eslint/Config.js").FlatConfig.ConfigArray;
2
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const typescript_eslint_1 = require("typescript-eslint");
4
+ const index_js_1 = require("./src/index.js");
5
+ const overrides = {
6
+ rules: {
7
+ "sort-keys": "off"
8
+ }
9
+ };
10
+ exports.default = (0, typescript_eslint_1.config)(...index_js_1.eslintConfig, overrides);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robot-inventor/eslint-config",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "My ESLint config preset",
5
5
  "type": "commonjs",
6
6
  "files": [
@@ -8,6 +8,7 @@
8
8
  ],
9
9
  "scripts": {
10
10
  "build": "tsc -p . && tsc -p ./tsconfig.cjs.json && tsconfig-to-dual-package",
11
+ "lint": "npx eslint --flag unstable_ts_config ./src/**/*.ts",
11
12
  "ci:version": "changeset version",
12
13
  "ci:publish": "npm run build && changeset publish"
13
14
  },
@@ -35,6 +36,7 @@
35
36
  "@types/eslint-config-prettier": "^6.11.3",
36
37
  "@typescript-eslint/parser": "^8.0.1",
37
38
  "eslint-config-prettier": "^9.1.0",
39
+ "eslint-import-resolver-typescript": "^3.6.1",
38
40
  "eslint-plugin-import-x": "^3.1.0",
39
41
  "eslint-plugin-jsdoc": "^50.0.0",
40
42
  "typescript-eslint": "^8.0.0"
@@ -42,8 +44,15 @@
42
44
  "devDependencies": {
43
45
  "@changesets/changelog-github": "^0.5.0",
44
46
  "@changesets/cli": "^2.27.1",
47
+ "@eslint-types/jsdoc": "^48.2.2",
48
+ "@eslint-types/typescript-eslint": "^7.5.0",
45
49
  "@types/eslint__eslintrc": "^2.1.2",
50
+ "eslint": "^9.9.0",
51
+ "jiti": "^1.21.6",
46
52
  "tsconfig-to-dual-package": "^1.2.0",
47
53
  "typescript": "^5.4.4"
54
+ },
55
+ "overrides": {
56
+ "eslint": "^9.9.0"
48
57
  }
49
58
  }
@@ -0,0 +1,3 @@
1
+ declare const eslintConfigNoJSDoc: import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.ConfigArray;
2
+ declare const eslintConfig: import("@typescript-eslint/utils/dist/ts-eslint").FlatConfig.ConfigArray;
3
+ export { eslintConfigNoJSDoc, eslintConfig };
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.eslintConfig = exports.eslintConfigNoJSDoc = void 0;
7
+ const typescript_eslint_1 = require("typescript-eslint");
8
+ const eslintrc_1 = require("@eslint/eslintrc");
9
+ const js_1 = __importDefault(require("@eslint/js"));
10
+ const eslint_config_prettier_1 = __importDefault(require("eslint-config-prettier"));
11
+ const eslint_plugin_import_x_1 = __importDefault(require("eslint-plugin-import-x"));
12
+ const eslint_plugin_jsdoc_1 = __importDefault(require("eslint-plugin-jsdoc"));
13
+ const compat = new eslintrc_1.FlatCompat();
14
+ const eslintRules = {
15
+ "array-element-newline": ["error", "consistent"],
16
+ curly: ["error", "multi-line"],
17
+ "function-call-argument-newline": ["error", "consistent"],
18
+ "lines-between-class-members": [
19
+ "error",
20
+ "always",
21
+ {
22
+ exceptAfterSingleLine: true
23
+ }
24
+ ],
25
+ "max-len": [
26
+ "error",
27
+ {
28
+ code: 120
29
+ }
30
+ ],
31
+ "multiline-ternary": ["error", "always-multiline"],
32
+ "no-magic-numbers": [
33
+ "error",
34
+ {
35
+ ignoreArrayIndexes: true
36
+ }
37
+ ],
38
+ "no-ternary": "off",
39
+ "no-void": [
40
+ "error",
41
+ // @ts-expect-error Type definitions are incorrect
42
+ {
43
+ allowAsStatement: true
44
+ }
45
+ ],
46
+ "object-curly-spacing": ["error", "always"],
47
+ "one-var": ["error", "never"],
48
+ "padded-blocks": ["error", "never"],
49
+ "space-before-function-paren": [
50
+ "error",
51
+ {
52
+ anonymous: "always",
53
+ asyncArrow: "always",
54
+ named: "never"
55
+ }
56
+ ],
57
+ "no-plusplus": "off",
58
+ "no-extra-parens": [
59
+ "error",
60
+ "all",
61
+ {
62
+ nestedBinaryExpressions: false
63
+ }
64
+ ],
65
+ "no-new": "off"
66
+ };
67
+ const tseslintRules = {
68
+ "@typescript-eslint/explicit-function-return-type": "error",
69
+ "@typescript-eslint/explicit-member-accessibility": "error",
70
+ "@typescript-eslint/consistent-type-imports": "error",
71
+ "@typescript-eslint/no-import-type-side-effects": "error",
72
+ "@typescript-eslint/consistent-type-exports": "error",
73
+ "@typescript-eslint/strict-boolean-expressions": "error",
74
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
75
+ "@typescript-eslint/array-type": [
76
+ "error",
77
+ {
78
+ default: "array-simple"
79
+ }
80
+ ]
81
+ };
82
+ const importXRules = {
83
+ "import-x/no-deprecated": "error",
84
+ "import-x/no-extraneous-dependencies": "error",
85
+ "import-x/no-absolute-path": "error",
86
+ "import-x/no-cycle": "error",
87
+ "import-x/no-self-import": "error",
88
+ "import-x/no-useless-path-segments": "error",
89
+ "import-x/exports-last": "error",
90
+ "import-x/first": "error",
91
+ "import-x/group-exports": "error",
92
+ "import-x/max-dependencies": "error",
93
+ "import-x/newline-after-import": "error",
94
+ "import-x/no-unassigned-import": "error"
95
+ };
96
+ const jsdocRules = {
97
+ "jsdoc/require-jsdoc": [
98
+ "error",
99
+ {
100
+ require: {
101
+ ArrowFunctionExpression: true,
102
+ ClassDeclaration: true,
103
+ ClassExpression: true,
104
+ FunctionDeclaration: true,
105
+ FunctionExpression: true,
106
+ MethodDefinition: true
107
+ }
108
+ }
109
+ ]
110
+ };
111
+ const eslintConfigNoJSDoc = (0, typescript_eslint_1.config)(js_1.default.configs.all, eslint_plugin_jsdoc_1.default.configs["flat/recommended-typescript-error"], eslint_config_prettier_1.default, ...typescript_eslint_1.configs.strictTypeChecked, ...typescript_eslint_1.configs.stylisticTypeChecked, ...compat.config(eslint_plugin_import_x_1.default.configs.recommended), eslint_plugin_import_x_1.default.configs.typescript, {
112
+ languageOptions: {
113
+ parserOptions: {
114
+ projectService: true
115
+ }
116
+ },
117
+ plugins: {
118
+ jsdoc: eslint_plugin_jsdoc_1.default
119
+ },
120
+ linterOptions: {
121
+ reportUnusedDisableDirectives: "error"
122
+ },
123
+ settings: {
124
+ "import-x/resolver": {
125
+ typescript: true,
126
+ node: true
127
+ }
128
+ },
129
+ rules: {
130
+ ...eslintRules,
131
+ ...tseslintRules,
132
+ ...importXRules
133
+ }
134
+ });
135
+ exports.eslintConfigNoJSDoc = eslintConfigNoJSDoc;
136
+ const JSDocRule = (0, typescript_eslint_1.config)({
137
+ rules: {
138
+ ...jsdocRules
139
+ }
140
+ });
141
+ const eslintConfig = (0, typescript_eslint_1.config)(...eslintConfigNoJSDoc, ...JSDocRule);
142
+ exports.eslintConfig = eslintConfig;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { config } from "typescript-eslint";
2
+ import { eslintConfig } from "./src/index.js";
3
+ const overrides = {
4
+ rules: {
5
+ "sort-keys": "off"
6
+ }
7
+ };
8
+ export default config(...eslintConfig, overrides);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robot-inventor/eslint-config",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "My ESLint config preset",
5
5
  "type": "module",
6
6
  "files": [
@@ -8,6 +8,7 @@
8
8
  ],
9
9
  "scripts": {
10
10
  "build": "tsc -p . && tsc -p ./tsconfig.cjs.json && tsconfig-to-dual-package",
11
+ "lint": "npx eslint --flag unstable_ts_config ./src/**/*.ts",
11
12
  "ci:version": "changeset version",
12
13
  "ci:publish": "npm run build && changeset publish"
13
14
  },
@@ -35,6 +36,7 @@
35
36
  "@types/eslint-config-prettier": "^6.11.3",
36
37
  "@typescript-eslint/parser": "^8.0.1",
37
38
  "eslint-config-prettier": "^9.1.0",
39
+ "eslint-import-resolver-typescript": "^3.6.1",
38
40
  "eslint-plugin-import-x": "^3.1.0",
39
41
  "eslint-plugin-jsdoc": "^50.0.0",
40
42
  "typescript-eslint": "^8.0.0"
@@ -42,8 +44,15 @@
42
44
  "devDependencies": {
43
45
  "@changesets/changelog-github": "^0.5.0",
44
46
  "@changesets/cli": "^2.27.1",
47
+ "@eslint-types/jsdoc": "^48.2.2",
48
+ "@eslint-types/typescript-eslint": "^7.5.0",
45
49
  "@types/eslint__eslintrc": "^2.1.2",
50
+ "eslint": "^9.9.0",
51
+ "jiti": "^1.21.6",
46
52
  "tsconfig-to-dual-package": "^1.2.0",
47
53
  "typescript": "^5.4.4"
54
+ },
55
+ "overrides": {
56
+ "eslint": "^9.9.0"
48
57
  }
49
58
  }
@@ -0,0 +1,3 @@
1
+ declare const eslintConfigNoJSDoc: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
2
+ declare const eslintConfig: import("@typescript-eslint/utils/ts-eslint").FlatConfig.ConfigArray;
3
+ export { eslintConfigNoJSDoc, eslintConfig };
@@ -0,0 +1,135 @@
1
+ import { config, configs as tseslintConfigs } from "typescript-eslint";
2
+ import { FlatCompat } from "@eslint/eslintrc";
3
+ import eslint from "@eslint/js";
4
+ import eslintConfigPrettier from "eslint-config-prettier";
5
+ import importX from "eslint-plugin-import-x";
6
+ import jsdoc from "eslint-plugin-jsdoc";
7
+ const compat = new FlatCompat();
8
+ const eslintRules = {
9
+ "array-element-newline": ["error", "consistent"],
10
+ curly: ["error", "multi-line"],
11
+ "function-call-argument-newline": ["error", "consistent"],
12
+ "lines-between-class-members": [
13
+ "error",
14
+ "always",
15
+ {
16
+ exceptAfterSingleLine: true
17
+ }
18
+ ],
19
+ "max-len": [
20
+ "error",
21
+ {
22
+ code: 120
23
+ }
24
+ ],
25
+ "multiline-ternary": ["error", "always-multiline"],
26
+ "no-magic-numbers": [
27
+ "error",
28
+ {
29
+ ignoreArrayIndexes: true
30
+ }
31
+ ],
32
+ "no-ternary": "off",
33
+ "no-void": [
34
+ "error",
35
+ // @ts-expect-error Type definitions are incorrect
36
+ {
37
+ allowAsStatement: true
38
+ }
39
+ ],
40
+ "object-curly-spacing": ["error", "always"],
41
+ "one-var": ["error", "never"],
42
+ "padded-blocks": ["error", "never"],
43
+ "space-before-function-paren": [
44
+ "error",
45
+ {
46
+ anonymous: "always",
47
+ asyncArrow: "always",
48
+ named: "never"
49
+ }
50
+ ],
51
+ "no-plusplus": "off",
52
+ "no-extra-parens": [
53
+ "error",
54
+ "all",
55
+ {
56
+ nestedBinaryExpressions: false
57
+ }
58
+ ],
59
+ "no-new": "off"
60
+ };
61
+ const tseslintRules = {
62
+ "@typescript-eslint/explicit-function-return-type": "error",
63
+ "@typescript-eslint/explicit-member-accessibility": "error",
64
+ "@typescript-eslint/consistent-type-imports": "error",
65
+ "@typescript-eslint/no-import-type-side-effects": "error",
66
+ "@typescript-eslint/consistent-type-exports": "error",
67
+ "@typescript-eslint/strict-boolean-expressions": "error",
68
+ "@typescript-eslint/switch-exhaustiveness-check": "error",
69
+ "@typescript-eslint/array-type": [
70
+ "error",
71
+ {
72
+ default: "array-simple"
73
+ }
74
+ ]
75
+ };
76
+ const importXRules = {
77
+ "import-x/no-deprecated": "error",
78
+ "import-x/no-extraneous-dependencies": "error",
79
+ "import-x/no-absolute-path": "error",
80
+ "import-x/no-cycle": "error",
81
+ "import-x/no-self-import": "error",
82
+ "import-x/no-useless-path-segments": "error",
83
+ "import-x/exports-last": "error",
84
+ "import-x/first": "error",
85
+ "import-x/group-exports": "error",
86
+ "import-x/max-dependencies": "error",
87
+ "import-x/newline-after-import": "error",
88
+ "import-x/no-unassigned-import": "error"
89
+ };
90
+ const jsdocRules = {
91
+ "jsdoc/require-jsdoc": [
92
+ "error",
93
+ {
94
+ require: {
95
+ ArrowFunctionExpression: true,
96
+ ClassDeclaration: true,
97
+ ClassExpression: true,
98
+ FunctionDeclaration: true,
99
+ FunctionExpression: true,
100
+ MethodDefinition: true
101
+ }
102
+ }
103
+ ]
104
+ };
105
+ const eslintConfigNoJSDoc = config(eslint.configs.all, jsdoc.configs["flat/recommended-typescript-error"], eslintConfigPrettier, ...tseslintConfigs.strictTypeChecked, ...tseslintConfigs.stylisticTypeChecked, ...compat.config(importX.configs.recommended), importX.configs.typescript, {
106
+ languageOptions: {
107
+ parserOptions: {
108
+ projectService: true
109
+ }
110
+ },
111
+ plugins: {
112
+ jsdoc
113
+ },
114
+ linterOptions: {
115
+ reportUnusedDisableDirectives: "error"
116
+ },
117
+ settings: {
118
+ "import-x/resolver": {
119
+ typescript: true,
120
+ node: true
121
+ }
122
+ },
123
+ rules: {
124
+ ...eslintRules,
125
+ ...tseslintRules,
126
+ ...importXRules
127
+ }
128
+ });
129
+ const JSDocRule = config({
130
+ rules: {
131
+ ...jsdocRules
132
+ }
133
+ });
134
+ const eslintConfig = config(...eslintConfigNoJSDoc, ...JSDocRule);
135
+ export { eslintConfigNoJSDoc, eslintConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robot-inventor/eslint-config",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "My ESLint config preset",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -19,6 +19,7 @@
19
19
  },
20
20
  "scripts": {
21
21
  "build": "tsc -p . && tsc -p ./tsconfig.cjs.json && tsconfig-to-dual-package",
22
+ "lint": "npx eslint --flag unstable_ts_config ./src/**/*.ts",
22
23
  "ci:version": "changeset version",
23
24
  "ci:publish": "npm run build && changeset publish"
24
25
  },
@@ -46,6 +47,7 @@
46
47
  "@types/eslint-config-prettier": "^6.11.3",
47
48
  "@typescript-eslint/parser": "^8.0.1",
48
49
  "eslint-config-prettier": "^9.1.0",
50
+ "eslint-import-resolver-typescript": "^3.6.1",
49
51
  "eslint-plugin-import-x": "^3.1.0",
50
52
  "eslint-plugin-jsdoc": "^50.0.0",
51
53
  "typescript-eslint": "^8.0.0"
@@ -53,8 +55,15 @@
53
55
  "devDependencies": {
54
56
  "@changesets/changelog-github": "^0.5.0",
55
57
  "@changesets/cli": "^2.27.1",
58
+ "@eslint-types/jsdoc": "^48.2.2",
59
+ "@eslint-types/typescript-eslint": "^7.5.0",
56
60
  "@types/eslint__eslintrc": "^2.1.2",
61
+ "eslint": "^9.9.0",
62
+ "jiti": "^1.21.6",
57
63
  "tsconfig-to-dual-package": "^1.2.0",
58
64
  "typescript": "^5.4.4"
65
+ },
66
+ "overrides": {
67
+ "eslint": "^9.9.0"
59
68
  }
60
69
  }
@@ -1,4 +0,0 @@
1
- import tseslint from "typescript-eslint";
2
- declare const eslintConfigNoJSDoc: ReturnType<typeof tseslint.config>;
3
- declare const eslintConfig: ReturnType<typeof tseslint.config>;
4
- export { eslintConfigNoJSDoc, eslintConfig };
package/dist/cjs/index.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.eslintConfig = exports.eslintConfigNoJSDoc = void 0;
7
- const js_1 = __importDefault(require("@eslint/js"));
8
- const typescript_eslint_1 = __importDefault(require("typescript-eslint"));
9
- const eslint_plugin_jsdoc_1 = __importDefault(require("eslint-plugin-jsdoc"));
10
- const eslint_config_prettier_1 = __importDefault(require("eslint-config-prettier"));
11
- const eslint_plugin_import_x_1 = __importDefault(require("eslint-plugin-import-x"));
12
- const eslintrc_1 = require("@eslint/eslintrc");
13
- const compat = new eslintrc_1.FlatCompat();
14
- const eslintConfigNoJSDoc = typescript_eslint_1.default.config(js_1.default.configs.all, eslint_plugin_jsdoc_1.default.configs["flat/recommended-typescript-error"], eslint_config_prettier_1.default, ...typescript_eslint_1.default.configs.strictTypeChecked, ...typescript_eslint_1.default.configs.stylisticTypeChecked, ...compat.config(eslint_plugin_import_x_1.default.configs.recommended), eslint_plugin_import_x_1.default.configs.typescript, {
15
- languageOptions: {
16
- parserOptions: {
17
- projectService: true
18
- }
19
- },
20
- plugins: {
21
- jsdoc: eslint_plugin_jsdoc_1.default
22
- },
23
- linterOptions: {
24
- reportUnusedDisableDirectives: "error"
25
- },
26
- rules: {
27
- "array-element-newline": ["error", "consistent"],
28
- curly: ["error", "multi-line"],
29
- "function-call-argument-newline": ["error", "consistent"],
30
- "lines-between-class-members": [
31
- "error",
32
- "always",
33
- {
34
- exceptAfterSingleLine: true
35
- }
36
- ],
37
- "max-len": [
38
- "error",
39
- {
40
- code: 120
41
- }
42
- ],
43
- "multiline-ternary": ["error", "always-multiline"],
44
- "no-magic-numbers": [
45
- "error",
46
- {
47
- ignoreArrayIndexes: true
48
- }
49
- ],
50
- "no-ternary": "off",
51
- "no-void": [
52
- "error",
53
- {
54
- allowAsStatement: true
55
- }
56
- ],
57
- "object-curly-spacing": ["error", "always"],
58
- "one-var": ["error", "never"],
59
- "padded-blocks": ["error", "never"],
60
- "quote-props": ["error", "consistent-as-needed"],
61
- "space-before-function-paren": [
62
- "error",
63
- {
64
- anonymous: "always",
65
- asyncArrow: "always",
66
- named: "never"
67
- }
68
- ],
69
- "no-plusplus": "off",
70
- "no-extra-parens": [
71
- "error",
72
- "all",
73
- {
74
- nestedBinaryExpressions: false
75
- }
76
- ],
77
- "no-new": "off",
78
- "@typescript-eslint/explicit-function-return-type": "error",
79
- "@typescript-eslint/explicit-member-accessibility": "error",
80
- "@typescript-eslint/consistent-type-imports": "error",
81
- "@typescript-eslint/no-import-type-side-effects": "error",
82
- "@typescript-eslint/consistent-type-exports": "error",
83
- "@typescript-eslint/strict-boolean-expressions": "error",
84
- "@typescript-eslint/switch-exhaustiveness-check": "error",
85
- "@typescript-eslint/array-type": [
86
- "error",
87
- {
88
- default: "array-simple"
89
- }
90
- ],
91
- "import-x/no-deprecated": "error",
92
- "import-x/no-extraneous-dependencies": "error",
93
- "import-x/no-absolute-path": "error",
94
- "import-x/no-cycle": "error",
95
- "import-x/no-self-import": "error",
96
- "import-x/no-useless-path-segments": "error",
97
- "import-x/exports-last": "error",
98
- "import-x/first": "error",
99
- "import-x/group-exports": "error",
100
- "import-x/max-dependencies": "error",
101
- "import-x/newline-after-import": "error",
102
- "import-x/no-unassigned-import": "error"
103
- }
104
- });
105
- exports.eslintConfigNoJSDoc = eslintConfigNoJSDoc;
106
- const JSDocRule = typescript_eslint_1.default.config({
107
- rules: {
108
- "jsdoc/require-jsdoc": [
109
- "error",
110
- {
111
- require: {
112
- ArrowFunctionExpression: true,
113
- ClassDeclaration: true,
114
- ClassExpression: true,
115
- FunctionDeclaration: true,
116
- FunctionExpression: true,
117
- MethodDefinition: true
118
- }
119
- }
120
- ]
121
- }
122
- });
123
- const eslintConfig = typescript_eslint_1.default.config(...eslintConfigNoJSDoc, ...JSDocRule);
124
- exports.eslintConfig = eslintConfig;
@@ -1,4 +0,0 @@
1
- import tseslint from "typescript-eslint";
2
- declare const eslintConfigNoJSDoc: ReturnType<typeof tseslint.config>;
3
- declare const eslintConfig: ReturnType<typeof tseslint.config>;
4
- export { eslintConfigNoJSDoc, eslintConfig };
package/dist/esm/index.js DELETED
@@ -1,117 +0,0 @@
1
- import eslint from "@eslint/js";
2
- import tseslint from "typescript-eslint";
3
- import jsdoc from "eslint-plugin-jsdoc";
4
- import eslintConfigPrettier from "eslint-config-prettier";
5
- import importX from "eslint-plugin-import-x";
6
- import { FlatCompat } from "@eslint/eslintrc";
7
- const compat = new FlatCompat();
8
- const eslintConfigNoJSDoc = tseslint.config(eslint.configs.all, jsdoc.configs["flat/recommended-typescript-error"], eslintConfigPrettier, ...tseslint.configs.strictTypeChecked, ...tseslint.configs.stylisticTypeChecked, ...compat.config(importX.configs.recommended), importX.configs.typescript, {
9
- languageOptions: {
10
- parserOptions: {
11
- projectService: true
12
- }
13
- },
14
- plugins: {
15
- jsdoc
16
- },
17
- linterOptions: {
18
- reportUnusedDisableDirectives: "error"
19
- },
20
- rules: {
21
- "array-element-newline": ["error", "consistent"],
22
- curly: ["error", "multi-line"],
23
- "function-call-argument-newline": ["error", "consistent"],
24
- "lines-between-class-members": [
25
- "error",
26
- "always",
27
- {
28
- exceptAfterSingleLine: true
29
- }
30
- ],
31
- "max-len": [
32
- "error",
33
- {
34
- code: 120
35
- }
36
- ],
37
- "multiline-ternary": ["error", "always-multiline"],
38
- "no-magic-numbers": [
39
- "error",
40
- {
41
- ignoreArrayIndexes: true
42
- }
43
- ],
44
- "no-ternary": "off",
45
- "no-void": [
46
- "error",
47
- {
48
- allowAsStatement: true
49
- }
50
- ],
51
- "object-curly-spacing": ["error", "always"],
52
- "one-var": ["error", "never"],
53
- "padded-blocks": ["error", "never"],
54
- "quote-props": ["error", "consistent-as-needed"],
55
- "space-before-function-paren": [
56
- "error",
57
- {
58
- anonymous: "always",
59
- asyncArrow: "always",
60
- named: "never"
61
- }
62
- ],
63
- "no-plusplus": "off",
64
- "no-extra-parens": [
65
- "error",
66
- "all",
67
- {
68
- nestedBinaryExpressions: false
69
- }
70
- ],
71
- "no-new": "off",
72
- "@typescript-eslint/explicit-function-return-type": "error",
73
- "@typescript-eslint/explicit-member-accessibility": "error",
74
- "@typescript-eslint/consistent-type-imports": "error",
75
- "@typescript-eslint/no-import-type-side-effects": "error",
76
- "@typescript-eslint/consistent-type-exports": "error",
77
- "@typescript-eslint/strict-boolean-expressions": "error",
78
- "@typescript-eslint/switch-exhaustiveness-check": "error",
79
- "@typescript-eslint/array-type": [
80
- "error",
81
- {
82
- default: "array-simple"
83
- }
84
- ],
85
- "import-x/no-deprecated": "error",
86
- "import-x/no-extraneous-dependencies": "error",
87
- "import-x/no-absolute-path": "error",
88
- "import-x/no-cycle": "error",
89
- "import-x/no-self-import": "error",
90
- "import-x/no-useless-path-segments": "error",
91
- "import-x/exports-last": "error",
92
- "import-x/first": "error",
93
- "import-x/group-exports": "error",
94
- "import-x/max-dependencies": "error",
95
- "import-x/newline-after-import": "error",
96
- "import-x/no-unassigned-import": "error"
97
- }
98
- });
99
- const JSDocRule = tseslint.config({
100
- rules: {
101
- "jsdoc/require-jsdoc": [
102
- "error",
103
- {
104
- require: {
105
- ArrowFunctionExpression: true,
106
- ClassDeclaration: true,
107
- ClassExpression: true,
108
- FunctionDeclaration: true,
109
- FunctionExpression: true,
110
- MethodDefinition: true
111
- }
112
- }
113
- ]
114
- }
115
- });
116
- const eslintConfig = tseslint.config(...eslintConfigNoJSDoc, ...JSDocRule);
117
- export { eslintConfigNoJSDoc, eslintConfig };