@pumpn/eslint-config 10.4.2 → 11.0.2

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,203 @@
1
+ const minIdentifierLength = 2;
2
+ const maxIdentifierLength = 30;
3
+ const maxClassesPerFile = 1;
4
+ const maxDepth = 8;
5
+ const maxLinesPerFile = 500;
6
+ const maxLinesPerFunction = 100;
7
+ const maxNestedCallbacks = 4;
8
+ const maxParameters = 3;
9
+ const maxStatements = 20;
10
+ const minKeysToSort = 10;
11
+
12
+ export default {
13
+ "accessor-pairs": ["error"],
14
+ "arrow-body-style": ["error"],
15
+ "block-scoped-var": ["error"],
16
+ camelcase: ["error"],
17
+ "class-methods-use-this": ["error"],
18
+ complexity: ["error"],
19
+ "consistent-return": ["error"],
20
+ curly: ["error"],
21
+ "default-case": ["error"],
22
+ "default-case-last": ["error"],
23
+ "default-param-last": ["error"],
24
+ "dot-notation": ["error"],
25
+ eqeqeq: ["error"],
26
+ "func-name-matching": ["error"],
27
+ "func-style": ["error"],
28
+ "grouped-accessor-pairs": ["error"],
29
+ "id-denylist": ["error"],
30
+ "id-length": [
31
+ "error",
32
+ {
33
+ min: minIdentifierLength,
34
+ max: maxIdentifierLength,
35
+ properties: "never",
36
+ exceptions: [
37
+ "x",
38
+ "y",
39
+ "z"
40
+ ]
41
+ }
42
+ ],
43
+ "init-declarations": ["warn"],
44
+ "logical-assignment-operators": ["error"],
45
+ "max-classes-per-file": ["error", maxClassesPerFile],
46
+ "max-depth": ["error", maxDepth],
47
+ "max-lines": [
48
+ "error",
49
+ {
50
+ max: maxLinesPerFile,
51
+ skipBlankLines: true,
52
+ skipComments: true
53
+ }
54
+ ],
55
+ "max-lines-per-function": [
56
+ "error",
57
+ {
58
+ max: maxLinesPerFunction,
59
+ skipBlankLines: true,
60
+ skipComments: true
61
+ }
62
+ ],
63
+ "max-nested-callbacks": ["error", maxNestedCallbacks],
64
+ "max-params": ["error", maxParameters],
65
+ "max-statements": ["error", { max: maxStatements }],
66
+ "multiline-comment-style": ["off"],
67
+ "new-cap": ["error"],
68
+ "no-alert": ["error"],
69
+ "no-array-constructor": ["error"],
70
+ "no-bitwise": ["error"],
71
+ "no-caller": ["error"],
72
+ "no-confusing-arrow": ["error"],
73
+ "no-console": [
74
+ "error",
75
+ {
76
+ allow: [
77
+ "warn",
78
+ "error",
79
+ "info"
80
+ ]
81
+ }
82
+ ],
83
+ "no-continue": ["off"],
84
+ "no-div-regex": ["error"],
85
+ "no-else-return": ["error"],
86
+ "no-empty": ["error"],
87
+ "no-empty-function": ["error"],
88
+ "no-empty-static-block": ["error"],
89
+ "no-eq-null": ["error"],
90
+ "no-eval": ["error"],
91
+ "no-extend-native": ["error"],
92
+ "no-extra-bind": ["error"],
93
+ "no-extra-label": ["error"],
94
+ "no-floating-decimal": ["error"],
95
+ "no-implicit-coercion": ["error"],
96
+ "no-implicit-globals": ["error"],
97
+ "no-implied-eval": ["error"],
98
+ "no-inline-comments": ["error"],
99
+ "no-invalid-this": ["error"],
100
+ "no-iterator": ["error"],
101
+ "no-label-var": ["error"],
102
+ "no-labels": ["off"],
103
+ "no-lone-blocks": ["error"],
104
+ "no-lonely-if": ["error"],
105
+ "no-loop-func": ["error"],
106
+ "no-magic-numbers": [
107
+ "error",
108
+ {
109
+ ignore: [
110
+ -1,
111
+ 0,
112
+ 1
113
+ ],
114
+ ignoreArrayIndexes: false,
115
+ ignoreDefaultValues: true,
116
+ ignoreClassFieldInitialValues: true,
117
+ enforceConst: false,
118
+ detectObjects: true
119
+ }
120
+ ],
121
+ "no-mixed-operators": ["error"],
122
+ "no-multi-assign": ["error"],
123
+ "no-multi-str": ["error"],
124
+ "no-negated-condition": ["error"],
125
+ "no-nested-ternary": ["error"],
126
+ "no-new": ["error"],
127
+ "no-new-func": ["error"],
128
+ "no-new-object": ["error"],
129
+ "no-new-wrappers": ["error"],
130
+ "no-octal-escape": ["error"],
131
+ "no-param-reassign": ["error"],
132
+ "no-plusplus": ["error", { allowForLoopAfterthoughts: true }],
133
+ "no-proto": ["error"],
134
+ "no-restricted-exports": [
135
+ "error",
136
+ {
137
+ restrictDefaultExports: {
138
+ named: true
139
+ }
140
+ }
141
+ ],
142
+ "no-restricted-globals": ["error"],
143
+ "no-restricted-imports": ["error"],
144
+ "no-restricted-properties": ["error"],
145
+ "no-restricted-syntax": ["error"],
146
+ "no-return-assign": ["error"],
147
+ "no-return-await": ["error"],
148
+ "no-script-url": ["error"],
149
+ "no-sequences": ["error"],
150
+ "no-shadow": ["error"],
151
+ "no-ternary": ["off"],
152
+ "no-throw-literal": ["error"],
153
+ "no-undef-init": ["error"],
154
+ "no-undefined": ["error"],
155
+ "no-underscore-dangle": ["error"],
156
+ "no-unneeded-ternary": ["error"],
157
+ "no-unused-expressions": ["error"],
158
+ "no-useless-call": ["error"],
159
+ "no-useless-computed-key": ["error"],
160
+ "no-useless-concat": ["error"],
161
+ "no-useless-constructor": ["error"],
162
+ "no-useless-rename": ["error"],
163
+ "no-useless-return": ["error"],
164
+ "no-var": ["error"],
165
+ "no-void": ["error"],
166
+ "no-warning-comments": ["error"],
167
+ "object-shorthand": ["error", "properties"],
168
+ "one-var": ["error", "never"],
169
+ "one-var-declaration-per-line": ["error", "always"],
170
+ "operator-assignment": ["error", "always"],
171
+ "prefer-arrow-callback": ["error"],
172
+ "prefer-const": ["error"],
173
+ "prefer-destructuring": ["error"],
174
+ "prefer-exponentiation-operator": ["error"],
175
+ "prefer-named-capture-group": ["error"],
176
+ "prefer-numeric-literals": ["error"],
177
+ "prefer-object-has-own": ["error"],
178
+ "prefer-object-spread": ["error"],
179
+ "prefer-promise-reject-errors": ["error"],
180
+ "prefer-regex-literals": ["error"],
181
+ "prefer-rest-params": ["error"],
182
+ "prefer-spread": ["error"],
183
+ "prefer-template": ["error"],
184
+ "quote-props": ["error", "as-needed"],
185
+ radix: ["error", "as-needed"],
186
+ "require-await": ["error"],
187
+ "require-unicode-regexp": ["error"],
188
+ "sort-keys-plus/sort-keys": [
189
+ "error",
190
+ "asc",
191
+ {
192
+ minKeys: minKeysToSort,
193
+ natural: true,
194
+ allowLineSeparatedGroups: true
195
+ }
196
+ ],
197
+ "sort-vars": ["error"],
198
+ "spaced-comment": ["error", "always"],
199
+ strict: ["error", "never"],
200
+ "symbol-description": ["error"],
201
+ "vars-on-top": ["error"],
202
+ yoda: ["error", "never"]
203
+ };
package/rules.js ADDED
@@ -0,0 +1,15 @@
1
+ import imports from "./rules/imports.js";
2
+ import jsdoc from "./rules/jsdoc.js";
3
+ import layoutAndFormatting from "./rules/layout-and-formatting.js";
4
+ import possibleProblems from "./rules/possible-problems.js";
5
+ import react from "./rules/react.js";
6
+ import suggestions from "./rules/suggestions.js";
7
+
8
+ export default {
9
+ ...layoutAndFormatting,
10
+ ...possibleProblems,
11
+ ...suggestions,
12
+ ...jsdoc,
13
+ ...imports,
14
+ ...react
15
+ };
package/.eslintrc.cjs DELETED
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- extends: ["./index.cjs"]
3
- };
package/babel.config.cjs DELETED
@@ -1,3 +0,0 @@
1
- module.exports = {
2
- presets: ["@pumpn"]
3
- };
package/index.cjs DELETED
@@ -1,19 +0,0 @@
1
- module.exports = {
2
- env: {
3
- browser: true,
4
- es2020: true
5
- },
6
- extends: [
7
- "./rules/best-practices.cjs",
8
- "./rules/compat.cjs",
9
- "./rules/errors.cjs",
10
- "./rules/es6.cjs",
11
- "./rules/imports.cjs",
12
- "./rules/jsdoc.cjs",
13
- "./rules/node.cjs",
14
- "./rules/strict.cjs",
15
- "./rules/style.cjs",
16
- "./rules/variables.cjs"
17
- ],
18
- ignorePatterns: ["dist/**", "node_modules/**"]
19
- };
@@ -1,206 +0,0 @@
1
- const maxComplexity = 15;
2
-
3
- module.exports = {
4
- rules: {
5
- "accessor-pairs": "error",
6
- "array-callback-return": [
7
- "error",
8
- {
9
- allowImplicit: true
10
- }
11
- ],
12
- "block-scoped-var": "error",
13
- "class-methods-use-this": "error",
14
- complexity: ["error", maxComplexity],
15
- "consistent-return": "error",
16
- curly: ["error", "all"],
17
- "default-case": [
18
- "error",
19
- {
20
- commentPattern: "^no default$"
21
- }
22
- ],
23
- "default-case-last": "error",
24
- "default-param-last": "error",
25
- "dot-location": ["error", "property"],
26
- "dot-notation": [
27
- "error",
28
- {
29
- allowKeywords: true
30
- }
31
- ],
32
- eqeqeq: [
33
- "error",
34
- "always",
35
- {
36
- null: "ignore"
37
- }
38
- ],
39
- "grouped-accessor-pairs": ["error", "getBeforeSet"],
40
- "guard-for-in": "off",
41
- "max-classes-per-file": ["error", 1],
42
- "no-alert": "warn",
43
- "no-caller": "error",
44
- "no-case-declarations": "error",
45
- "no-constructor-return": "error",
46
- "no-div-regex": "error",
47
- "no-else-return": [
48
- "error",
49
- {
50
- allowElseIf: false
51
- }
52
- ],
53
- "no-empty-function": [
54
- "error",
55
- {
56
- allow: [
57
- "arrowFunctions",
58
- "functions",
59
- "methods"
60
- ]
61
- }
62
- ],
63
- "no-empty-pattern": "error",
64
- "no-eq-null": "error",
65
- "no-eval": "error",
66
- "no-extend-native": "error",
67
- "no-extra-bind": "error",
68
- "no-extra-label": "error",
69
- "no-fallthrough": "error",
70
- "no-floating-decimal": "error",
71
- "no-global-assign": [
72
- "error",
73
- {
74
- exceptions: []
75
- }
76
- ],
77
- "no-implicit-coercion": [
78
- "error",
79
- {
80
- boolean: false,
81
- number: true,
82
- string: true
83
- }
84
- ],
85
- "no-implicit-globals": "error",
86
- "no-implied-eval": "error",
87
- "no-invalid-this": "error",
88
- "no-iterator": "error",
89
- "no-labels": [
90
- "error",
91
- {
92
- allowLoop: false,
93
- allowSwitch: false
94
- }
95
- ],
96
- "no-lone-blocks": "error",
97
- "no-loop-func": "error",
98
- "no-magic-numbers": [
99
- "error",
100
- {
101
- detectObjects: false,
102
- enforceConst: true,
103
- ignore: [
104
- -1,
105
- 0,
106
- 1,
107
- 2
108
- ],
109
- ignoreArrayIndexes: false
110
- }
111
- ],
112
- "no-multi-spaces": [
113
- "error",
114
- {
115
- ignoreEOLComments: false
116
- }
117
- ],
118
- "no-multi-str": "error",
119
- "no-new": "error",
120
- "no-new-func": "error",
121
- "no-new-wrappers": "error",
122
- "no-octal": "error",
123
- "no-octal-escape": "error",
124
- "no-param-reassign": [
125
- "error",
126
- {
127
- ignorePropertyModificationsFor: [
128
- "acc",
129
- "accumulator",
130
- "e",
131
- "ctx",
132
- "req",
133
- "request",
134
- "res",
135
- "response",
136
- "$scope",
137
- "staticContext"
138
- ],
139
- props: true
140
- }
141
- ],
142
- "no-proto": "error",
143
- "no-redeclare": "error",
144
- "no-restricted-properties": [
145
- "error",
146
- {
147
- message: "arguments.callee is deprecated",
148
- object: "arguments",
149
- property: "callee"
150
- },
151
- {
152
- message: "Please use Number.isFinite instead",
153
- object: "global",
154
- property: "isFinite"
155
- },
156
- {
157
- message: "Please use Number.isFinite instead",
158
- object: "self",
159
- property: "isFinite"
160
- },
161
- {
162
- message: "Please use Number.isFinite instead",
163
- object: "window",
164
- property: "isFinite"
165
- },
166
- {
167
- message: "Please use Number.isNaN instead",
168
- object: "global",
169
- property: "isNaN"
170
- },
171
- {
172
- message: "Please use Number.isNaN instead",
173
- object: "self",
174
- property: "isNaN"
175
- },
176
- {
177
- message: "Please use Number.isNaN instead",
178
- object: "window",
179
- property: "isNaN"
180
- },
181
- {
182
- message: "Please use Object.defineProperty instead.",
183
- property: "__defineGetter__"
184
- },
185
- {
186
- message: "Please use Object.defineProperty instead.",
187
- property: "__defineSetter__"
188
- },
189
- {
190
- message: "Use the exponentiation operator (**) instead.",
191
- object: "Math",
192
- property: "pow"
193
- }
194
- ],
195
- "no-return-assign": ["error", "always"],
196
- "no-return-await": "error",
197
- "no-script-url": "error",
198
- "no-self-assign": [
199
- "error",
200
- {
201
- props: true
202
- }
203
- ]
204
-
205
- }
206
- };
package/rules/compat.cjs DELETED
@@ -1,16 +0,0 @@
1
- module.exports = {
2
- plugins: ["compat"],
3
- rules: {
4
- "compat/compat": "error"
5
- },
6
- settings: {
7
- polyfills: [
8
- "Array",
9
- "Number",
10
- "Object",
11
- "Promise",
12
- "Set",
13
- "fetch"
14
- ]
15
- }
16
- };
package/rules/errors.cjs DELETED
@@ -1,75 +0,0 @@
1
- module.exports = {
2
- rules: {
3
- "for-direction": "error",
4
- "getter-return": [
5
- "error",
6
- {
7
- allowImplicit: true
8
- }
9
- ],
10
- "no-async-promise-executor": "error",
11
- "no-await-in-loop": "off",
12
- "no-compare-neg-zero": "error",
13
- "no-cond-assign": "error",
14
- "no-console": [
15
- "error",
16
- {
17
- allow: [
18
- "warn",
19
- "error",
20
- "info"
21
- ]
22
- }
23
- ],
24
- "no-constant-condition": "warn",
25
- "no-control-regex": "error",
26
- "no-debugger": "error",
27
- "no-dupe-args": "error",
28
- "no-dupe-else-if": "error",
29
- "no-dupe-keys": "error",
30
- "no-duplicate-case": "error",
31
- "no-empty": "error",
32
- "no-empty-character-class": "error",
33
- "no-ex-assign": "error",
34
- "no-extra-boolean-cast": "error",
35
- "no-extra-parens": [
36
- "error",
37
- "all",
38
- {
39
- conditionalAssign: false,
40
- enforceForArrowConditionals: false,
41
- enforceForNewInMemberExpressions: false,
42
- ignoreJSX: "all",
43
- nestedBinaryExpressions: false,
44
- returnAssign: false
45
- }
46
- ],
47
- "no-extra-semi": "error",
48
- "no-func-assign": "error",
49
- "no-import-assign": "error",
50
- "no-inner-declarations": "error",
51
- "no-invalid-regexp": "error",
52
- "no-irregular-whitespace": "error",
53
- "no-misleading-character-class": "error",
54
- "no-obj-calls": "error",
55
- "no-prototype-builtins": "error",
56
- "no-regex-spaces": "error",
57
- "no-setter-return": "error",
58
- "no-sparse-arrays": "error",
59
- "no-template-curly-in-string": "error",
60
- "no-unexpected-multiline": "error",
61
- "no-unreachable": "error",
62
- "no-unsafe-finally": "error",
63
- "no-unsafe-negation": "error",
64
- "no-useless-backreference": "error",
65
- "require-atomic-updates": "error",
66
- "use-isnan": "error",
67
- "valid-jsdoc": "off",
68
- "valid-typeof": [
69
- "error",
70
- {
71
- requireStringLiterals: true
72
- }
73
- ]
74
- }
75
- };
package/rules/es6.cjs DELETED
@@ -1,127 +0,0 @@
1
- module.exports = {
2
- env: {
3
- es6: true
4
- },
5
- parser: "@babel/eslint-parser",
6
- parserOptions: {
7
- allowAwaitOutsideFunction: true,
8
- sourceType: "module"
9
- },
10
- rules: {
11
- "arrow-body-style": [
12
- "error",
13
- "as-needed",
14
- {
15
- requireReturnForObjectLiteral: false
16
- }
17
- ],
18
- "arrow-parens": ["error", "always"],
19
- "arrow-spacing": [
20
- "error",
21
- {
22
- after: true,
23
- before: true
24
- }
25
- ],
26
- "constructor-super": "error",
27
- "generator-star-spacing": [
28
- "error",
29
- {
30
- after: true,
31
- before: false
32
- }
33
- ],
34
- "no-class-assign": "error",
35
- "no-confusing-arrow": [
36
- "error",
37
- {
38
- allowParens: true
39
- }
40
- ],
41
- "no-const-assign": "error",
42
- "no-dupe-class-members": "error",
43
- "no-duplicate-imports": "off",
44
- "no-new-symbol": "error",
45
- "no-restricted-exports": "off",
46
- "no-restricted-imports": [
47
- "off",
48
- {
49
- paths: [],
50
- patterns: []
51
- }
52
- ],
53
- "no-this-before-super": "error",
54
- "no-useless-computed-key": "error",
55
- "no-useless-constructor": "error",
56
- "no-useless-rename": [
57
- "error",
58
- {
59
- ignoreDestructuring: false,
60
- ignoreExport: false,
61
- ignoreImport: false
62
- }
63
- ],
64
- "no-var": "error",
65
- "object-shorthand": [
66
- "error",
67
- "always",
68
- {
69
- avoidQuotes: true,
70
- ignoreConstructors: false
71
- }
72
- ],
73
- "prefer-arrow-callback": [
74
- "error",
75
- {
76
- allowNamedFunctions: false,
77
- allowUnboundThis: true
78
- }
79
- ],
80
- "prefer-const": [
81
- "error",
82
- {
83
- destructuring: "any",
84
- ignoreReadBeforeAssign: true
85
- }
86
- ],
87
- "prefer-destructuring": [
88
- "error",
89
- {
90
- AssignmentExpression: {
91
- array: true,
92
- object: true
93
- },
94
- VariableDeclarator: {
95
- array: false,
96
- object: true
97
- }
98
- },
99
- {
100
- enforceForRenamedProperties: false
101
- }
102
- ],
103
- "prefer-numeric-literals": "error",
104
- "prefer-rest-params": "error",
105
- "prefer-spread": "error",
106
- "prefer-template": "error",
107
- "require-yield": "error",
108
- "rest-spread-spacing": ["error", "never"],
109
- "sort-imports": [
110
- "error",
111
- {
112
- ignoreCase: true,
113
- ignoreDeclarationSort: true,
114
- ignoreMemberSort: true,
115
- memberSyntaxSortOrder: [
116
- "none",
117
- "all",
118
- "multiple",
119
- "single"
120
- ]
121
- }
122
- ],
123
- "symbol-description": "error",
124
- "template-curly-spacing": "error",
125
- "yield-star-spacing": ["error", "after"]
126
- }
127
- };