@perfective/eslint-config 0.23.4 → 0.25.0
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.
- package/README.adoc +4 -2
- package/README.md +4 -2
- package/index.js +13 -0
- package/package.json +18 -16
- package/rules/cypress/index.js +1 -0
- package/rules/eslint/layout-formatting.js +60 -162
- package/rules/eslint/suggestions.js +8 -27
- package/rules/jest/index.js +2 -1
- package/rules/jsdoc/index.js +1 -0
- package/rules/n/index.js +59 -0
- package/rules/node/best-practices.js +1 -1
- package/rules/node/possible-errors.js +12 -12
- package/rules/node/stylistic-issues.js +17 -17
- package/rules/simple-import-sort/rules/imports.js +4 -4
- package/rules/stylistic/js/index.js +199 -0
- package/rules/stylistic/jsx/index.js +84 -0
- package/rules/stylistic/plus/index.js +11 -0
- package/rules/stylistic/ts/index.js +124 -0
- package/rules/typescript-eslint/extension-rules.js +24 -81
- package/rules/typescript-eslint/supported-rules.js +18 -17
- package/rules/unicorn/index.js +9 -0
package/README.adoc
CHANGED
|
@@ -5,8 +5,9 @@ a https://eslint.org/docs/latest/developer-guide/shareable-configs[shareable ESL
|
|
|
5
5
|
that is used for the development of the `@perfective` packages.
|
|
6
6
|
These rules are primarily configured for TypeScript projects.
|
|
7
7
|
|
|
8
|
-
In addition to the core https://eslint.org/docs/latest/rules/[ESLint
|
|
9
|
-
|
|
8
|
+
In addition to the core https://eslint.org/docs/latest/rules/[ESLint],
|
|
9
|
+
`link:https://typescript-eslint.io/rules/[@typescript-eslint]`,
|
|
10
|
+
and https://eslint.style[ESLint Stylistic] plugin rules,
|
|
10
11
|
`@perfective/eslint-config` includes configurations for the ESLint plugins:
|
|
11
12
|
|
|
12
13
|
* `link:https://github.com/freaktechnik/eslint-plugin-array-func[eslint-plugin-array-func]`;
|
|
@@ -43,6 +44,7 @@ from issues that will be fixed automatically.
|
|
|
43
44
|
npm install --save-dev \
|
|
44
45
|
@perfective/eslint-config \
|
|
45
46
|
@babel/eslint-parser \
|
|
47
|
+
@stylistic/eslint-plugin \
|
|
46
48
|
@typescript-eslint/eslint-plugin \
|
|
47
49
|
@typescript-eslint/eslint-plugin-tslint \
|
|
48
50
|
@typescript-eslint/parser \
|
package/README.md
CHANGED
|
@@ -5,8 +5,9 @@ a [shareable ESLint configuration](https://eslint.org/docs/latest/developer-guid
|
|
|
5
5
|
that is used for the development of the `@perfective` packages.
|
|
6
6
|
These rules are primarily configured for TypeScript projects.
|
|
7
7
|
|
|
8
|
-
In addition to the core [ESLint rules](https://eslint.org/docs/latest/rules/)
|
|
9
|
-
|
|
8
|
+
In addition to the core [ESLint rules](https://eslint.org/docs/latest/rules/),
|
|
9
|
+
[`@typescript-eslint`](https://typescript-eslint.io/rules/),
|
|
10
|
+
and [ESlint Stylistic](https://eslint.style) plugin rules,
|
|
10
11
|
`@perfective/eslint-config` includes configurations for the ESLint plugins:
|
|
11
12
|
|
|
12
13
|
- [`eslint-plugin-array-func`](https://github.com/freaktechnik/eslint-plugin-array-func);
|
|
@@ -41,6 +42,7 @@ from issues that will be fixed automatically.
|
|
|
41
42
|
npm install --save-dev \
|
|
42
43
|
@perfective/eslint-config \
|
|
43
44
|
@babel/eslint-parser \
|
|
45
|
+
@stylistic/eslint-plugin \
|
|
44
46
|
@typescript-eslint/eslint-plugin \
|
|
45
47
|
@typescript-eslint/eslint-plugin-tslint \
|
|
46
48
|
@typescript-eslint/parser \
|
package/index.js
CHANGED
|
@@ -15,11 +15,14 @@ module.exports = {
|
|
|
15
15
|
'./rules/eslint-comments',
|
|
16
16
|
'./rules/import',
|
|
17
17
|
'./rules/jsdoc',
|
|
18
|
+
'./rules/n',
|
|
18
19
|
'./rules/node',
|
|
19
20
|
'./rules/prefer-arrow',
|
|
20
21
|
'./rules/promise',
|
|
21
22
|
'./rules/simple-import-sort',
|
|
22
23
|
'./rules/sonarjs',
|
|
24
|
+
'./rules/stylistic/js',
|
|
25
|
+
'./rules/stylistic/plus',
|
|
23
26
|
'./rules/unicorn',
|
|
24
27
|
],
|
|
25
28
|
},
|
|
@@ -67,6 +70,7 @@ module.exports = {
|
|
|
67
70
|
'./rules/typescript-eslint',
|
|
68
71
|
'./rules/typescript-eslint/tslint',
|
|
69
72
|
'./rules/deprecation',
|
|
73
|
+
'./rules/stylistic/ts',
|
|
70
74
|
(0, plugin_1.optionalRules)('rxjs'),
|
|
71
75
|
].filter(Boolean),
|
|
72
76
|
settings: {
|
|
@@ -84,6 +88,12 @@ module.exports = {
|
|
|
84
88
|
},
|
|
85
89
|
},
|
|
86
90
|
},
|
|
91
|
+
{
|
|
92
|
+
files: ['*.jsx', '*.tsx'],
|
|
93
|
+
extends: [
|
|
94
|
+
'./rules/stylistic/jsx',
|
|
95
|
+
],
|
|
96
|
+
},
|
|
87
97
|
(0, plugin_1.optionalOverrides)('jest', {
|
|
88
98
|
files: ['*.@(spec|test).[jt]s?(x)'],
|
|
89
99
|
env: {
|
|
@@ -113,6 +123,9 @@ module.exports = {
|
|
|
113
123
|
],
|
|
114
124
|
}],
|
|
115
125
|
'max-nested-callbacks': ['error', 6],
|
|
126
|
+
'n/no-unpublished-import': ['error', {
|
|
127
|
+
allowModules: ['@jest/globals'],
|
|
128
|
+
}],
|
|
116
129
|
'prefer-arrow/prefer-arrow-functions': 'off',
|
|
117
130
|
'promise/always-return': 'off',
|
|
118
131
|
'rxjs/no-topromise': 'off',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@perfective/eslint-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "ESLint shareable rules configuration",
|
|
5
5
|
"keywords": ["code quality", "code standard", "code style", "eslint", "eslint config", "lint", "perfective", "tslint", "tslint config", "typescript"],
|
|
6
6
|
"author": "Andrey Mikheychik <a.mikheychik@gmail.com>",
|
|
@@ -11,29 +11,31 @@
|
|
|
11
11
|
},
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@babel/eslint-parser": "^7.
|
|
15
|
-
"@
|
|
16
|
-
"@typescript-eslint/eslint-plugin
|
|
17
|
-
"@typescript-eslint/
|
|
18
|
-
"eslint": "^
|
|
14
|
+
"@babel/eslint-parser": "^7.24.7",
|
|
15
|
+
"@stylistic/eslint-plugin": "^2.1.0",
|
|
16
|
+
"@typescript-eslint/eslint-plugin": "^7.12.0",
|
|
17
|
+
"@typescript-eslint/eslint-plugin-tslint": "^7.0.2",
|
|
18
|
+
"@typescript-eslint/parser": "^7.12.0",
|
|
19
|
+
"eslint": "^8.57.0",
|
|
19
20
|
"eslint-import-resolver-typescript": "^3.6.1",
|
|
20
21
|
"eslint-plugin-array-func": "^4.0.0",
|
|
21
|
-
"eslint-plugin-cypress": "^
|
|
22
|
-
"eslint-plugin-deprecation": "^
|
|
22
|
+
"eslint-plugin-cypress": "^3.3.0",
|
|
23
|
+
"eslint-plugin-deprecation": "^3.0.0",
|
|
23
24
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
|
24
25
|
"eslint-plugin-import": "^2.29.1",
|
|
25
|
-
"eslint-plugin-jest": "^
|
|
26
|
-
"eslint-plugin-jest-dom": "^5.
|
|
26
|
+
"eslint-plugin-jest": "^28.6.0",
|
|
27
|
+
"eslint-plugin-jest-dom": "^5.4.0",
|
|
27
28
|
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
28
|
-
"eslint-plugin-jsdoc": "^
|
|
29
|
+
"eslint-plugin-jsdoc": "^48.2.9",
|
|
30
|
+
"eslint-plugin-n": "^17.8.1",
|
|
29
31
|
"eslint-plugin-node": "^11.1.0",
|
|
30
32
|
"eslint-plugin-prefer-arrow": "^1.2.3",
|
|
31
|
-
"eslint-plugin-promise": "^6.
|
|
33
|
+
"eslint-plugin-promise": "^6.2.0",
|
|
32
34
|
"eslint-plugin-rxjs": "^5.0.3",
|
|
33
|
-
"eslint-plugin-simple-import-sort": "^
|
|
34
|
-
"eslint-plugin-sonarjs": "^0.
|
|
35
|
-
"eslint-plugin-testing-library": "^6.2.
|
|
36
|
-
"eslint-plugin-unicorn": "^
|
|
35
|
+
"eslint-plugin-simple-import-sort": "^12.1.0",
|
|
36
|
+
"eslint-plugin-sonarjs": "^1.0.3",
|
|
37
|
+
"eslint-plugin-testing-library": "^6.2.2",
|
|
38
|
+
"eslint-plugin-unicorn": "^53.0.0",
|
|
37
39
|
"tslint": "^6.1.3"
|
|
38
40
|
},
|
|
39
41
|
"peerDependenciesMeta": {
|
package/rules/cypress/index.js
CHANGED
|
@@ -3,6 +3,7 @@ const plugin_1 = require("../../config/plugin");
|
|
|
3
3
|
module.exports = (0, plugin_1.optionalConfig)('cypress', {
|
|
4
4
|
'cypress/assertion-before-screenshot': 'error',
|
|
5
5
|
'cypress/no-assigning-return-values': 'error',
|
|
6
|
+
'cypress/no-async-before': 'error',
|
|
6
7
|
'cypress/no-async-tests': 'error',
|
|
7
8
|
'cypress/no-force': 'error',
|
|
8
9
|
'cypress/no-pause': 'error',
|
|
@@ -1,169 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
module.exports = {
|
|
3
3
|
rules: {
|
|
4
|
-
'array-bracket-newline':
|
|
5
|
-
'array-bracket-spacing':
|
|
6
|
-
'array-element-newline':
|
|
7
|
-
'arrow-parens':
|
|
8
|
-
'arrow-spacing':
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'
|
|
13
|
-
'
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
'
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
'
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
'
|
|
31
|
-
'
|
|
32
|
-
'
|
|
33
|
-
'
|
|
34
|
-
'
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
'
|
|
39
|
-
'
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
'
|
|
43
|
-
'
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
'keyword-spacing': ['warn', {
|
|
49
|
-
before: true,
|
|
50
|
-
after: true,
|
|
51
|
-
}],
|
|
52
|
-
'line-comment-position': ['error', {
|
|
53
|
-
position: 'above',
|
|
54
|
-
ignorePattern: '^ == .+',
|
|
55
|
-
}],
|
|
56
|
-
'linebreak-style': ['warn', 'unix'],
|
|
57
|
-
'lines-around-comment': ['warn', {
|
|
58
|
-
beforeBlockComment: true,
|
|
59
|
-
afterBlockComment: false,
|
|
60
|
-
beforeLineComment: false,
|
|
61
|
-
afterLineComment: false,
|
|
62
|
-
allowBlockStart: false,
|
|
63
|
-
allowBlockEnd: false,
|
|
64
|
-
allowObjectStart: false,
|
|
65
|
-
allowObjectEnd: false,
|
|
66
|
-
allowArrayStart: false,
|
|
67
|
-
allowArrayEnd: false,
|
|
68
|
-
allowClassStart: true,
|
|
69
|
-
allowClassEnd: false,
|
|
70
|
-
afterHashbangComment: true,
|
|
71
|
-
}],
|
|
72
|
-
'lines-between-class-members': ['warn', 'always', {
|
|
73
|
-
exceptAfterSingleLine: true,
|
|
74
|
-
}],
|
|
75
|
-
'max-len': ['error', {
|
|
76
|
-
code: 120,
|
|
77
|
-
tabWidth: 4,
|
|
78
|
-
ignoreRegExpLiterals: true,
|
|
79
|
-
ignoreUrls: true,
|
|
80
|
-
}],
|
|
81
|
-
'max-statements-per-line': ['error', {
|
|
82
|
-
max: 1,
|
|
83
|
-
}],
|
|
84
|
-
'multiline-ternary': ['warn', 'always-multiline'],
|
|
85
|
-
'new-parens': 'warn',
|
|
86
|
-
'newline-per-chained-call': ['off', {
|
|
87
|
-
ignoreChainWithDepth: 3,
|
|
88
|
-
}],
|
|
89
|
-
'no-extra-parens': ['warn', 'all', {
|
|
90
|
-
ignoreJSX: 'all',
|
|
91
|
-
nestedBinaryExpressions: false,
|
|
92
|
-
enforceForArrowConditionals: false,
|
|
93
|
-
ternaryOperandBinaryExpressions: false,
|
|
94
|
-
}],
|
|
95
|
-
'no-mixed-spaces-and-tabs': 'error',
|
|
96
|
-
'no-multi-spaces': 'warn',
|
|
97
|
-
'no-multiple-empty-lines': ['warn', {
|
|
98
|
-
max: 1,
|
|
99
|
-
maxEOF: 0,
|
|
100
|
-
maxBOF: 0,
|
|
101
|
-
}],
|
|
102
|
-
'no-tabs': 'error',
|
|
103
|
-
'no-trailing-spaces': 'warn',
|
|
104
|
-
'no-whitespace-before-property': 'warn',
|
|
105
|
-
'nonblock-statement-body-position': ['warn', 'below'],
|
|
106
|
-
'object-curly-newline': ['warn', {
|
|
107
|
-
ImportDeclaration: { multiline: true },
|
|
108
|
-
ExportDeclaration: { multiline: true },
|
|
109
|
-
}],
|
|
110
|
-
'object-curly-spacing': ['warn', 'always', {
|
|
111
|
-
arraysInObjects: true,
|
|
112
|
-
objectsInObjects: true,
|
|
113
|
-
}],
|
|
114
|
-
'object-property-newline': ['warn', {
|
|
115
|
-
allowAllPropertiesOnSameLine: true,
|
|
116
|
-
}],
|
|
117
|
-
'operator-linebreak': ['warn', 'before', {
|
|
118
|
-
overrides: {
|
|
119
|
-
'=': 'none',
|
|
120
|
-
'==': 'none',
|
|
121
|
-
'!=': 'none',
|
|
122
|
-
'>=': 'none',
|
|
123
|
-
'<=': 'none',
|
|
124
|
-
'===': 'none',
|
|
125
|
-
'+=': 'none',
|
|
126
|
-
},
|
|
127
|
-
}],
|
|
128
|
-
'padded-blocks': ['warn', 'never'],
|
|
4
|
+
'array-bracket-newline': 'off',
|
|
5
|
+
'array-bracket-spacing': 'off',
|
|
6
|
+
'array-element-newline': 'off',
|
|
7
|
+
'arrow-parens': 'off',
|
|
8
|
+
'arrow-spacing': 'off',
|
|
9
|
+
'block-spacing': 'off',
|
|
10
|
+
'brace-style': 'off',
|
|
11
|
+
'comma-dangle': 'off',
|
|
12
|
+
'comma-spacing': 'off',
|
|
13
|
+
'comma-style': 'off',
|
|
14
|
+
'computed-property-spacing': 'off',
|
|
15
|
+
'dot-location': 'off',
|
|
16
|
+
'eol-last': 'off',
|
|
17
|
+
'func-call-spacing': 'off',
|
|
18
|
+
'function-call-argument-newline': 'off',
|
|
19
|
+
'function-paren-newline': 'off',
|
|
20
|
+
'generator-star-spacing': 'off',
|
|
21
|
+
'implicit-arrow-linebreak': 'off',
|
|
22
|
+
'indent': 'off',
|
|
23
|
+
'jsx-quotes': 'off',
|
|
24
|
+
'key-spacing': 'off',
|
|
25
|
+
'keyword-spacing': 'off',
|
|
26
|
+
'line-comment-position': 'off',
|
|
27
|
+
'linebreak-style': 'off',
|
|
28
|
+
'lines-around-comment': 'off',
|
|
29
|
+
'lines-between-class-members': 'off',
|
|
30
|
+
'max-len': 'off',
|
|
31
|
+
'max-statements-per-line': 'off',
|
|
32
|
+
'multiline-ternary': 'off',
|
|
33
|
+
'new-parens': 'off',
|
|
34
|
+
'newline-per-chained-call': 'off',
|
|
35
|
+
'no-extra-parens': 'off',
|
|
36
|
+
'no-mixed-spaces-and-tabs': 'off',
|
|
37
|
+
'no-multi-spaces': 'off',
|
|
38
|
+
'no-multiple-empty-lines': 'off',
|
|
39
|
+
'no-tabs': 'off',
|
|
40
|
+
'no-trailing-spaces': 'off',
|
|
41
|
+
'no-whitespace-before-property': 'off',
|
|
42
|
+
'nonblock-statement-body-position': 'off',
|
|
43
|
+
'object-curly-newline': 'off',
|
|
44
|
+
'object-curly-spacing': 'off',
|
|
45
|
+
'object-property-newline': 'off',
|
|
46
|
+
'operator-linebreak': 'off',
|
|
47
|
+
'padded-blocks': 'off',
|
|
129
48
|
'padding-line-between-statements': 'off',
|
|
130
|
-
'quotes':
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
'
|
|
135
|
-
'
|
|
136
|
-
'
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
'
|
|
141
|
-
'
|
|
142
|
-
'
|
|
143
|
-
anonymous: 'always',
|
|
144
|
-
named: 'never',
|
|
145
|
-
asyncArrow: 'always',
|
|
146
|
-
}],
|
|
147
|
-
'space-in-parens': ['warn', 'never'],
|
|
148
|
-
'space-infix-ops': ['warn', {
|
|
149
|
-
int32Hint: false,
|
|
150
|
-
}],
|
|
151
|
-
'space-unary-ops': ['warn', {
|
|
152
|
-
words: true,
|
|
153
|
-
nonwords: false,
|
|
154
|
-
}],
|
|
155
|
-
'switch-colon-spacing': ['warn', {
|
|
156
|
-
after: true,
|
|
157
|
-
before: false,
|
|
158
|
-
}],
|
|
159
|
-
'template-curly-spacing': ['warn', 'never'],
|
|
160
|
-
'template-tag-spacing': ['warn', 'never'],
|
|
49
|
+
'quotes': 'off',
|
|
50
|
+
'rest-spread-spacing': 'off',
|
|
51
|
+
'semi': 'off',
|
|
52
|
+
'semi-spacing': 'off',
|
|
53
|
+
'semi-style': 'off',
|
|
54
|
+
'space-before-blocks': 'off',
|
|
55
|
+
'space-before-function-paren': 'off',
|
|
56
|
+
'space-in-parens': 'off',
|
|
57
|
+
'space-infix-ops': 'off',
|
|
58
|
+
'space-unary-ops': 'off',
|
|
59
|
+
'switch-colon-spacing': 'off',
|
|
60
|
+
'template-curly-spacing': 'off',
|
|
61
|
+
'template-tag-spacing': 'off',
|
|
161
62
|
'unicode-bom': ['warn', 'never'],
|
|
162
|
-
'wrap-iife':
|
|
163
|
-
'wrap-regex': '
|
|
164
|
-
'yield-star-spacing':
|
|
165
|
-
before: true,
|
|
166
|
-
after: false,
|
|
167
|
-
}],
|
|
63
|
+
'wrap-iife': 'off',
|
|
64
|
+
'wrap-regex': 'off',
|
|
65
|
+
'yield-star-spacing': 'off',
|
|
168
66
|
},
|
|
169
67
|
};
|
|
@@ -44,9 +44,7 @@ module.exports = {
|
|
|
44
44
|
'max-statements': ['off', {
|
|
45
45
|
max: 10,
|
|
46
46
|
}],
|
|
47
|
-
'multiline-comment-style':
|
|
48
|
-
checkJSDoc: false,
|
|
49
|
-
}],
|
|
47
|
+
'multiline-comment-style': 'off',
|
|
50
48
|
'new-cap': ['error', {
|
|
51
49
|
newIsCap: true,
|
|
52
50
|
capIsNew: true,
|
|
@@ -57,10 +55,7 @@ module.exports = {
|
|
|
57
55
|
'no-bitwise': 'error',
|
|
58
56
|
'no-caller': 'error',
|
|
59
57
|
'no-case-declarations': 'error',
|
|
60
|
-
'no-confusing-arrow':
|
|
61
|
-
allowParens: true,
|
|
62
|
-
onlyOneSimpleParam: false,
|
|
63
|
-
}],
|
|
58
|
+
'no-confusing-arrow': 'off',
|
|
64
59
|
'no-console': 'error',
|
|
65
60
|
'no-continue': 'error',
|
|
66
61
|
'no-delete-var': 'error',
|
|
@@ -77,8 +72,8 @@ module.exports = {
|
|
|
77
72
|
'no-extra-bind': 'warn',
|
|
78
73
|
'no-extra-boolean-cast': 'warn',
|
|
79
74
|
'no-extra-label': 'warn',
|
|
80
|
-
'no-extra-semi': '
|
|
81
|
-
'no-floating-decimal': '
|
|
75
|
+
'no-extra-semi': 'off',
|
|
76
|
+
'no-floating-decimal': 'off',
|
|
82
77
|
'no-global-assign': 'error',
|
|
83
78
|
'no-implicit-coercion': 'warn',
|
|
84
79
|
'no-implicit-globals': 'error',
|
|
@@ -94,17 +89,7 @@ module.exports = {
|
|
|
94
89
|
'no-lonely-if': 'warn',
|
|
95
90
|
'no-loop-func': 'error',
|
|
96
91
|
'no-magic-numbers': 'off',
|
|
97
|
-
'no-mixed-operators':
|
|
98
|
-
groups: [
|
|
99
|
-
['+', '-'],
|
|
100
|
-
['*', '/', '%', '**'],
|
|
101
|
-
['&', '|', '^', '~', '<<', '>>', '>>>'],
|
|
102
|
-
['==', '!=', '===', '!==', '>', '>=', '<', '<='],
|
|
103
|
-
['&&', '||', '?:', '??'],
|
|
104
|
-
['in', 'instanceof'],
|
|
105
|
-
],
|
|
106
|
-
allowSamePrecedence: true,
|
|
107
|
-
}],
|
|
92
|
+
'no-mixed-operators': 'off',
|
|
108
93
|
'no-multi-assign': 'error',
|
|
109
94
|
'no-multi-str': 'error',
|
|
110
95
|
'no-negated-condition': 'off',
|
|
@@ -163,7 +148,7 @@ module.exports = {
|
|
|
163
148
|
'no-with': 'error',
|
|
164
149
|
'object-shorthand': ['warn', 'always'],
|
|
165
150
|
'one-var': ['warn', 'never'],
|
|
166
|
-
'one-var-declaration-per-line':
|
|
151
|
+
'one-var-declaration-per-line': 'off',
|
|
167
152
|
'operator-assignment': ['warn', 'always'],
|
|
168
153
|
'prefer-arrow-callback': 'warn',
|
|
169
154
|
'prefer-const': 'warn',
|
|
@@ -178,7 +163,7 @@ module.exports = {
|
|
|
178
163
|
'prefer-rest-params': 'error',
|
|
179
164
|
'prefer-spread': 'error',
|
|
180
165
|
'prefer-template': 'warn',
|
|
181
|
-
'quote-props':
|
|
166
|
+
'quote-props': 'off',
|
|
182
167
|
'radix': 'error',
|
|
183
168
|
'require-await': 'error',
|
|
184
169
|
'require-unicode-regexp': 'error',
|
|
@@ -186,11 +171,7 @@ module.exports = {
|
|
|
186
171
|
'sort-imports': 'off',
|
|
187
172
|
'sort-keys': 'off',
|
|
188
173
|
'sort-vars': 'off',
|
|
189
|
-
'spaced-comment':
|
|
190
|
-
line: {
|
|
191
|
-
markers: ['/ <reference'],
|
|
192
|
-
},
|
|
193
|
-
}],
|
|
174
|
+
'spaced-comment': 'off',
|
|
194
175
|
'strict': 'warn',
|
|
195
176
|
'symbol-description': 'error',
|
|
196
177
|
'vars-on-top': 'error',
|
package/rules/jest/index.js
CHANGED
|
@@ -34,7 +34,6 @@ module.exports = {
|
|
|
34
34
|
'jest/no-focused-tests': 'warn',
|
|
35
35
|
'jest/no-hooks': 'off',
|
|
36
36
|
'jest/no-identical-title': 'error',
|
|
37
|
-
'jest/no-if': 'off',
|
|
38
37
|
'jest/no-interpolation-in-snapshots': 'error',
|
|
39
38
|
'jest/no-jasmine-globals': 'warn',
|
|
40
39
|
'jest/no-large-snapshots': 'error',
|
|
@@ -58,6 +57,8 @@ module.exports = {
|
|
|
58
57
|
'jest/prefer-expect-resolves': 'warn',
|
|
59
58
|
'jest/prefer-hooks-in-order': 'error',
|
|
60
59
|
'jest/prefer-hooks-on-top': 'error',
|
|
60
|
+
'jest/prefer-importing-jest-globals': 'warn',
|
|
61
|
+
'jest/prefer-jest-mocked': 'warn',
|
|
61
62
|
'jest/prefer-lowercase-title': ['error', {
|
|
62
63
|
allowedPrefixes: [],
|
|
63
64
|
ignore: [],
|
package/rules/jsdoc/index.js
CHANGED
package/rules/n/index.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
module.exports = {
|
|
3
|
+
plugins: [
|
|
4
|
+
'n',
|
|
5
|
+
],
|
|
6
|
+
rules: {
|
|
7
|
+
'n/callback-return': ['error', ['callback', 'cb', 'next']],
|
|
8
|
+
'n/exports-style': ['warn', 'module.exports', { allowBatchAssign: false }],
|
|
9
|
+
'n/file-extension-in-import': 'off',
|
|
10
|
+
'n/global-require': 'error',
|
|
11
|
+
'n/handle-callback-err': 'error',
|
|
12
|
+
'n/hashbang': 'warn',
|
|
13
|
+
'n/no-callback-literal': 'error',
|
|
14
|
+
'n/no-deprecated-api': 'error',
|
|
15
|
+
'n/no-exports-assign': 'error',
|
|
16
|
+
'n/no-extraneous-import': 'off',
|
|
17
|
+
'n/no-extraneous-require': 'off',
|
|
18
|
+
'n/no-hide-core-modules': 'off',
|
|
19
|
+
'n/no-missing-import': 'off',
|
|
20
|
+
'n/no-missing-require': 'off',
|
|
21
|
+
'n/no-mixed-requires': 'error',
|
|
22
|
+
'n/no-new-require': 'error',
|
|
23
|
+
'n/no-path-concat': 'error',
|
|
24
|
+
'n/no-process-env': 'error',
|
|
25
|
+
'n/no-process-exit': 'off',
|
|
26
|
+
'n/no-restricted-import': 'error',
|
|
27
|
+
'n/no-restricted-require': 'error',
|
|
28
|
+
'n/no-sync': ['error', {
|
|
29
|
+
allowAtRootLevel: false,
|
|
30
|
+
}],
|
|
31
|
+
'n/no-unpublished-bin': 'error',
|
|
32
|
+
'n/no-unpublished-import': 'error',
|
|
33
|
+
'n/no-unpublished-require': ['error', {
|
|
34
|
+
allowModules: [],
|
|
35
|
+
tryExtensions: ['.js', '.json', '.node'],
|
|
36
|
+
}],
|
|
37
|
+
'n/no-unsupported-features/es-builtins': ['error', {
|
|
38
|
+
version: '>=18.0.0',
|
|
39
|
+
ignores: [],
|
|
40
|
+
}],
|
|
41
|
+
'n/no-unsupported-features/es-syntax': 'off',
|
|
42
|
+
'n/no-unsupported-features/node-builtins': ['error', {
|
|
43
|
+
version: '>=18.0.0',
|
|
44
|
+
ignores: [],
|
|
45
|
+
}],
|
|
46
|
+
'n/prefer-global/buffer': ['error', 'always'],
|
|
47
|
+
'n/prefer-global/console': ['error', 'always'],
|
|
48
|
+
'n/prefer-global/process': ['error', 'always'],
|
|
49
|
+
'n/prefer-global/text-decoder': ['error', 'always'],
|
|
50
|
+
'n/prefer-global/text-encoder': ['error', 'always'],
|
|
51
|
+
'n/prefer-global/url': ['error', 'always'],
|
|
52
|
+
'n/prefer-global/url-search-params': ['error', 'always'],
|
|
53
|
+
'n/prefer-node-protocol': 'off',
|
|
54
|
+
'n/prefer-promises/dns': 'error',
|
|
55
|
+
'n/prefer-promises/fs': 'error',
|
|
56
|
+
'n/process-exit-as-throw': 'error',
|
|
57
|
+
'n/shebang': 'off',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
module.exports = {
|
|
3
3
|
rules: {
|
|
4
|
-
'node/handle-callback-err': '
|
|
5
|
-
'node/no-callback-literal': '
|
|
6
|
-
'node/no-exports-assign': '
|
|
4
|
+
'node/handle-callback-err': 'off',
|
|
5
|
+
'node/no-callback-literal': 'off',
|
|
6
|
+
'node/no-exports-assign': 'off',
|
|
7
7
|
'node/no-extraneous-import': 'off',
|
|
8
8
|
'node/no-extraneous-require': 'off',
|
|
9
9
|
'node/no-missing-import': 'off',
|
|
10
10
|
'node/no-missing-require': 'off',
|
|
11
|
-
'node/no-new-require': '
|
|
12
|
-
'node/no-path-concat': '
|
|
11
|
+
'node/no-new-require': 'off',
|
|
12
|
+
'node/no-path-concat': 'off',
|
|
13
13
|
'node/no-process-exit': 'off',
|
|
14
|
-
'node/no-unpublished-bin': '
|
|
15
|
-
'node/no-unpublished-import': '
|
|
16
|
-
'node/no-unpublished-require': '
|
|
17
|
-
'node/no-unsupported-features/es-builtins': '
|
|
14
|
+
'node/no-unpublished-bin': 'off',
|
|
15
|
+
'node/no-unpublished-import': 'off',
|
|
16
|
+
'node/no-unpublished-require': 'off',
|
|
17
|
+
'node/no-unsupported-features/es-builtins': 'off',
|
|
18
18
|
'node/no-unsupported-features/es-syntax': 'off',
|
|
19
|
-
'node/no-unsupported-features/node-builtins': '
|
|
20
|
-
'node/process-exit-as-throw': '
|
|
21
|
-
'node/shebang': '
|
|
19
|
+
'node/no-unsupported-features/node-builtins': 'off',
|
|
20
|
+
'node/process-exit-as-throw': 'off',
|
|
21
|
+
'node/shebang': 'off',
|
|
22
22
|
},
|
|
23
23
|
};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
module.exports = {
|
|
3
3
|
rules: {
|
|
4
|
-
'node/callback-return': '
|
|
5
|
-
'node/exports-style': ['
|
|
4
|
+
'node/callback-return': 'off',
|
|
5
|
+
'node/exports-style': ['off', 'module.exports', { allowBatchAssign: false }],
|
|
6
6
|
'node/file-extension-in-import': 'off',
|
|
7
|
-
'node/global-require': '
|
|
8
|
-
'node/no-mixed-requires': '
|
|
9
|
-
'node/no-process-env': '
|
|
10
|
-
'node/no-restricted-import': '
|
|
11
|
-
'node/no-restricted-require': '
|
|
12
|
-
'node/no-sync': '
|
|
13
|
-
'node/prefer-global/buffer': ['
|
|
14
|
-
'node/prefer-global/console': ['
|
|
15
|
-
'node/prefer-global/process': ['
|
|
16
|
-
'node/prefer-global/text-decoder': ['
|
|
17
|
-
'node/prefer-global/text-encoder': ['
|
|
18
|
-
'node/prefer-global/url-search-params': ['
|
|
19
|
-
'node/prefer-global/url': ['
|
|
20
|
-
'node/prefer-promises/dns': '
|
|
21
|
-
'node/prefer-promises/fs': '
|
|
7
|
+
'node/global-require': 'off',
|
|
8
|
+
'node/no-mixed-requires': 'off',
|
|
9
|
+
'node/no-process-env': 'off',
|
|
10
|
+
'node/no-restricted-import': 'off',
|
|
11
|
+
'node/no-restricted-require': 'off',
|
|
12
|
+
'node/no-sync': 'off',
|
|
13
|
+
'node/prefer-global/buffer': ['off', 'always'],
|
|
14
|
+
'node/prefer-global/console': ['off', 'always'],
|
|
15
|
+
'node/prefer-global/process': ['off', 'always'],
|
|
16
|
+
'node/prefer-global/text-decoder': ['off', 'always'],
|
|
17
|
+
'node/prefer-global/text-encoder': ['off', 'always'],
|
|
18
|
+
'node/prefer-global/url-search-params': ['off', 'always'],
|
|
19
|
+
'node/prefer-global/url': ['off', 'always'],
|
|
20
|
+
'node/prefer-promises/dns': 'off',
|
|
21
|
+
'node/prefer-promises/fs': 'off',
|
|
22
22
|
},
|
|
23
23
|
};
|