eslint-config-complete 4.17.0 → 4.19.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/dist/src/base/base-eslint.js +13 -13
- package/dist/src/base/base-import-x.d.ts.map +1 -1
- package/dist/src/base/base-import-x.js +6 -6
- package/dist/src/base/base-jsdoc.js +1 -1
- package/dist/src/base/base-stylistic.js +2 -2
- package/dist/src/base/base-typescript-eslint.js +19 -19
- package/dist/src/base/base-unicorn.d.ts.map +1 -1
- package/dist/src/base/base-unicorn.js +39 -2
- package/package.json +6 -6
|
@@ -264,7 +264,6 @@ const SUGGESTIONS = {
|
|
|
264
264
|
"no-param-reassign": [
|
|
265
265
|
"error",
|
|
266
266
|
{
|
|
267
|
-
props: true,
|
|
268
267
|
ignorePropertyModificationsFor: [
|
|
269
268
|
"acc", // for reduce accumulators
|
|
270
269
|
"accumulator", // for reduce accumulators
|
|
@@ -278,6 +277,7 @@ const SUGGESTIONS = {
|
|
|
278
277
|
"$scope", // for Angular 1 scopes
|
|
279
278
|
"staticContext", // for ReactRouter context
|
|
280
279
|
],
|
|
280
|
+
props: true,
|
|
281
281
|
},
|
|
282
282
|
],
|
|
283
283
|
/**
|
|
@@ -310,12 +310,12 @@ const SUGGESTIONS = {
|
|
|
310
310
|
"no-restricted-globals": [
|
|
311
311
|
"error",
|
|
312
312
|
{
|
|
313
|
-
name: "isFinite",
|
|
314
313
|
message: "Use Number.isFinite instead: https://github.com/airbnb/javascript#standard-library--isfinite",
|
|
314
|
+
name: "isFinite",
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
|
-
name: "isNaN",
|
|
318
317
|
message: "Use Number.isNaN instead: https://github.com/airbnb/javascript#standard-library--isnan",
|
|
318
|
+
name: "isNaN",
|
|
319
319
|
},
|
|
320
320
|
...confusingBrowserGlobals,
|
|
321
321
|
],
|
|
@@ -328,52 +328,52 @@ const SUGGESTIONS = {
|
|
|
328
328
|
"no-restricted-properties": [
|
|
329
329
|
"error",
|
|
330
330
|
{
|
|
331
|
+
message: "arguments.callee is deprecated",
|
|
331
332
|
object: "arguments",
|
|
332
333
|
property: "callee",
|
|
333
|
-
message: "arguments.callee is deprecated",
|
|
334
334
|
},
|
|
335
335
|
{
|
|
336
|
+
message: "Please use Number.isFinite instead",
|
|
336
337
|
object: "global",
|
|
337
338
|
property: "isFinite",
|
|
338
|
-
message: "Please use Number.isFinite instead",
|
|
339
339
|
},
|
|
340
340
|
{
|
|
341
|
+
message: "Please use Number.isFinite instead",
|
|
341
342
|
object: "self",
|
|
342
343
|
property: "isFinite",
|
|
343
|
-
message: "Please use Number.isFinite instead",
|
|
344
344
|
},
|
|
345
345
|
{
|
|
346
|
+
message: "Please use Number.isFinite instead",
|
|
346
347
|
object: "window",
|
|
347
348
|
property: "isFinite",
|
|
348
|
-
message: "Please use Number.isFinite instead",
|
|
349
349
|
},
|
|
350
350
|
{
|
|
351
|
+
message: "Please use Number.isNaN instead",
|
|
351
352
|
object: "global",
|
|
352
353
|
property: "isNaN",
|
|
353
|
-
message: "Please use Number.isNaN instead",
|
|
354
354
|
},
|
|
355
355
|
{
|
|
356
|
+
message: "Please use Number.isNaN instead",
|
|
356
357
|
object: "self",
|
|
357
358
|
property: "isNaN",
|
|
358
|
-
message: "Please use Number.isNaN instead",
|
|
359
359
|
},
|
|
360
360
|
{
|
|
361
|
+
message: "Please use Number.isNaN instead",
|
|
361
362
|
object: "window",
|
|
362
363
|
property: "isNaN",
|
|
363
|
-
message: "Please use Number.isNaN instead",
|
|
364
364
|
},
|
|
365
365
|
{
|
|
366
|
-
property: "__defineGetter__",
|
|
367
366
|
message: "Please use Object.defineProperty instead.",
|
|
367
|
+
property: "__defineGetter__",
|
|
368
368
|
},
|
|
369
369
|
{
|
|
370
|
-
property: "__defineSetter__",
|
|
371
370
|
message: "Please use Object.defineProperty instead.",
|
|
371
|
+
property: "__defineSetter__",
|
|
372
372
|
},
|
|
373
373
|
{
|
|
374
|
+
message: "Use the exponentiation operator (**) instead.",
|
|
374
375
|
object: "Math",
|
|
375
376
|
property: "pow",
|
|
376
|
-
message: "Use the exponentiation operator (**) instead.",
|
|
377
377
|
},
|
|
378
378
|
],
|
|
379
379
|
/** Disabled because it is intended for disallowing specific language features per-project. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-import-x.d.ts","sourceRoot":"","sources":["../../../src/base/base-import-x.js"],"names":[],"mappings":"AA4NA;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"base-import-x.d.ts","sourceRoot":"","sources":["../../../src/base/base-import-x.js"],"names":[],"mappings":"AA4NA;;;;;;;;;GASG;AACH,2DAqFE"}
|
|
@@ -189,6 +189,12 @@ export const baseImportX = defineConfig({
|
|
|
189
189
|
plugins: {
|
|
190
190
|
"import-x": esLintPluginImportX,
|
|
191
191
|
},
|
|
192
|
+
rules: {
|
|
193
|
+
...HELPFUL_WARNINGS,
|
|
194
|
+
...MODULE_SYSTEMS,
|
|
195
|
+
...STATIC_ANALYSIS,
|
|
196
|
+
...STYLE_GUIDE,
|
|
197
|
+
},
|
|
192
198
|
// Beyond just specifying the plugin, additional configuration is necessary to make the plugin
|
|
193
199
|
// work properly with TypeScript:
|
|
194
200
|
// - First, the "eslint-import-resolver-typescript" package needs to be installed, or else an
|
|
@@ -211,12 +217,6 @@ export const baseImportX = defineConfig({
|
|
|
211
217
|
typescript: true,
|
|
212
218
|
},
|
|
213
219
|
},
|
|
214
|
-
rules: {
|
|
215
|
-
...HELPFUL_WARNINGS,
|
|
216
|
-
...MODULE_SYSTEMS,
|
|
217
|
-
...STATIC_ANALYSIS,
|
|
218
|
-
...STYLE_GUIDE,
|
|
219
|
-
},
|
|
220
220
|
},
|
|
221
221
|
// Disable some TypeScript-specific rules in JavaScript files.
|
|
222
222
|
{
|
|
@@ -20,8 +20,8 @@ export const baseStylistic = defineConfig({
|
|
|
20
20
|
"error",
|
|
21
21
|
{
|
|
22
22
|
blankLine: "always",
|
|
23
|
-
prev: "function",
|
|
24
23
|
next: "function",
|
|
24
|
+
prev: "function",
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
27
|
/**
|
|
@@ -33,8 +33,8 @@ export const baseStylistic = defineConfig({
|
|
|
33
33
|
"error",
|
|
34
34
|
"double",
|
|
35
35
|
{
|
|
36
|
-
avoidEscape: true,
|
|
37
36
|
allowTemplateLiterals: "never",
|
|
37
|
+
avoidEscape: true,
|
|
38
38
|
},
|
|
39
39
|
],
|
|
40
40
|
/**
|
|
@@ -5,9 +5,10 @@ import tseslint from "typescript-eslint";
|
|
|
5
5
|
* https://typescript-eslint.io/rules/
|
|
6
6
|
*/
|
|
7
7
|
export const baseTypeScriptESLint = defineConfig({
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
// Rules that require type information will throw an error on ".json" files. (This is needed
|
|
9
|
+
// when using `eslint-plugin-package-json`. Even though this config does not currently use the
|
|
10
|
+
// plugin, we include it here defensively.)
|
|
11
|
+
ignores: ["**/*.json", "**/*.jsonc", "**/*.code-workspace"],
|
|
11
12
|
// We need to provide some special configuration to ESLint in order for it to parse TypeScript
|
|
12
13
|
// files. From:
|
|
13
14
|
// https://typescript-eslint.io/packages/typescript-eslint/#advanced-usage
|
|
@@ -34,6 +35,9 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
34
35
|
},
|
|
35
36
|
},
|
|
36
37
|
},
|
|
38
|
+
plugins: {
|
|
39
|
+
"@typescript-eslint": tseslint.plugin,
|
|
40
|
+
},
|
|
37
41
|
rules: {
|
|
38
42
|
"@typescript-eslint/adjacent-overload-signatures": "error",
|
|
39
43
|
/**
|
|
@@ -99,23 +103,23 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
99
103
|
// Allow camelCase variables (23.2), PascalCase variables (23.8), and UPPER_CASE variables
|
|
100
104
|
// (23.10).
|
|
101
105
|
{
|
|
102
|
-
selector: "variable",
|
|
103
106
|
format: ["camelCase", "PascalCase", "UPPER_CASE"],
|
|
104
107
|
leadingUnderscore: "allow",
|
|
108
|
+
selector: "variable",
|
|
105
109
|
},
|
|
106
110
|
// Allow camelCase functions (23.2), and PascalCase functions (23.8).
|
|
107
111
|
{
|
|
108
|
-
selector: "function",
|
|
109
112
|
format: ["camelCase", "PascalCase"],
|
|
110
113
|
leadingUnderscore: "allow",
|
|
114
|
+
selector: "function",
|
|
111
115
|
},
|
|
112
116
|
// Airbnb recommends PascalCase for classes (23.3), and although Airbnb does not make
|
|
113
117
|
// TypeScript recommendations, we are assuming this rule would similarly apply to anything
|
|
114
118
|
// "type like", including interfaces, type aliases, and enums.
|
|
115
119
|
{
|
|
116
|
-
selector: "typeLike",
|
|
117
120
|
format: ["PascalCase"],
|
|
118
121
|
leadingUnderscore: "allow",
|
|
122
|
+
selector: "typeLike",
|
|
119
123
|
},
|
|
120
124
|
],
|
|
121
125
|
"@typescript-eslint/no-array-constructor": "error",
|
|
@@ -299,11 +303,11 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
299
303
|
"@typescript-eslint/prefer-destructuring": [
|
|
300
304
|
"error",
|
|
301
305
|
{
|
|
302
|
-
|
|
306
|
+
AssignmentExpression: {
|
|
303
307
|
array: false,
|
|
304
308
|
object: true,
|
|
305
309
|
},
|
|
306
|
-
|
|
310
|
+
VariableDeclarator: {
|
|
307
311
|
array: false,
|
|
308
312
|
object: true,
|
|
309
313
|
},
|
|
@@ -374,15 +378,15 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
374
378
|
"@typescript-eslint/strict-boolean-expressions": [
|
|
375
379
|
"error",
|
|
376
380
|
{
|
|
377
|
-
|
|
378
|
-
allowNumber: false,
|
|
379
|
-
allowNullableObject: true,
|
|
381
|
+
allowAny: false,
|
|
380
382
|
allowNullableBoolean: false,
|
|
381
|
-
allowNullableString: false,
|
|
382
|
-
allowNullableNumber: false,
|
|
383
383
|
allowNullableEnum: false,
|
|
384
|
-
|
|
384
|
+
allowNullableNumber: false,
|
|
385
|
+
allowNullableObject: true,
|
|
386
|
+
allowNullableString: false,
|
|
387
|
+
allowNumber: false,
|
|
385
388
|
allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
|
|
389
|
+
allowString: false,
|
|
386
390
|
},
|
|
387
391
|
],
|
|
388
392
|
"@typescript-eslint/strict-void-return": "error",
|
|
@@ -396,8 +400,8 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
396
400
|
"error",
|
|
397
401
|
{
|
|
398
402
|
allowDefaultCaseForExhaustiveSwitch: false,
|
|
399
|
-
requireDefaultForNonUnion: true,
|
|
400
403
|
considerDefaultExhaustiveForUnions: true,
|
|
404
|
+
requireDefaultForNonUnion: true,
|
|
401
405
|
},
|
|
402
406
|
],
|
|
403
407
|
"@typescript-eslint/triple-slash-reference": "error",
|
|
@@ -411,10 +415,6 @@ export const baseTypeScriptESLint = defineConfig({
|
|
|
411
415
|
"@typescript-eslint/unified-signatures": "error",
|
|
412
416
|
"@typescript-eslint/use-unknown-in-catch-callback-variable": "error",
|
|
413
417
|
},
|
|
414
|
-
// Rules that require type information will throw an error on ".json" files. (This is needed
|
|
415
|
-
// when using `eslint-plugin-package-json`. Even though this config does not currently use the
|
|
416
|
-
// plugin, we include it here defensively.)
|
|
417
|
-
ignores: ["**/*.json", "**/*.jsonc", "**/*.code-workspace"],
|
|
418
418
|
},
|
|
419
419
|
// Enable linting on TypeScript file extensions.
|
|
420
420
|
{ files: ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-unicorn.d.ts","sourceRoot":"","sources":["../../../src/base/base-unicorn.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"base-unicorn.d.ts","sourceRoot":"","sources":["../../../src/base/base-unicorn.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,2DAsYG"}
|
|
@@ -18,6 +18,7 @@ export const baseUnicorn = defineConfig({
|
|
|
18
18
|
"unicorn/consistent-boolean-name": "off",
|
|
19
19
|
"unicorn/consistent-class-member-order": "error",
|
|
20
20
|
"unicorn/consistent-compound-words": "error",
|
|
21
|
+
"unicorn/consistent-conditional-object-spread": "error",
|
|
21
22
|
"unicorn/consistent-date-clone": "error",
|
|
22
23
|
"unicorn/consistent-destructuring": "error",
|
|
23
24
|
"unicorn/consistent-empty-array-spread": "error",
|
|
@@ -29,6 +30,7 @@ export const baseUnicorn = defineConfig({
|
|
|
29
30
|
"unicorn/consistent-optional-chaining": "error",
|
|
30
31
|
"unicorn/consistent-template-literal-escape": "error",
|
|
31
32
|
"unicorn/custom-error-definition": "error",
|
|
33
|
+
"unicorn/default-export-style": "error",
|
|
32
34
|
"unicorn/dom-node-dataset": "error",
|
|
33
35
|
"unicorn/empty-brace-spaces": "off", // eslint-config-prettier
|
|
34
36
|
"unicorn/error-message": "error",
|
|
@@ -43,6 +45,8 @@ export const baseUnicorn = defineConfig({
|
|
|
43
45
|
"unicorn/isolated-functions": "error",
|
|
44
46
|
"unicorn/logical-assignment-operators": "error",
|
|
45
47
|
"unicorn/max-nested-calls": "error",
|
|
48
|
+
/** Disabled since it is common to use the variable name of "i". */
|
|
49
|
+
"unicorn/name-replacements": "off",
|
|
46
50
|
"unicorn/new-for-builtins": "error",
|
|
47
51
|
/**
|
|
48
52
|
* Disabled because if a line breaks three or more ESLint rules, then it is useful to use a
|
|
@@ -50,31 +54,42 @@ export const baseUnicorn = defineConfig({
|
|
|
50
54
|
*/
|
|
51
55
|
"unicorn/no-abusive-eslint-disable": "off",
|
|
52
56
|
"unicorn/no-accessor-recursion": "error",
|
|
57
|
+
"unicorn/no-accidental-bitwise-operator": "error",
|
|
53
58
|
"unicorn/no-anonymous-default-export": "error",
|
|
54
59
|
/** Disabled since it is not helpful when using TypeScript. */
|
|
55
60
|
"unicorn/no-array-callback-reference": "off",
|
|
61
|
+
"unicorn/no-array-concat-in-loop": "error",
|
|
56
62
|
"unicorn/no-array-fill-with-reference-type": "error",
|
|
57
63
|
"unicorn/no-array-from-fill": "error",
|
|
64
|
+
"unicorn/no-array-front-mutation": "error",
|
|
58
65
|
"unicorn/no-array-method-this-argument": "error",
|
|
59
66
|
"unicorn/no-array-reduce": "error",
|
|
60
67
|
"unicorn/no-array-reverse": "error",
|
|
61
68
|
"unicorn/no-array-sort": "error",
|
|
69
|
+
"unicorn/no-array-sort-for-min-max": "error",
|
|
62
70
|
"unicorn/no-array-splice": "error",
|
|
63
71
|
/** Disabled because this goes against the standard JSDoc format. */
|
|
64
72
|
"unicorn/no-asterisk-prefix-in-documentation-comments": "off",
|
|
65
73
|
"unicorn/no-await-expression-member": "error",
|
|
66
74
|
"unicorn/no-await-in-promise-methods": "error",
|
|
67
75
|
"unicorn/no-blob-to-file": "error",
|
|
76
|
+
"unicorn/no-boolean-sort-comparator": "error",
|
|
68
77
|
/** Disabled since simple double nested loops are common. */
|
|
69
78
|
"unicorn/no-break-in-nested-loop": "off",
|
|
70
79
|
"unicorn/no-canvas-to-image": "error",
|
|
80
|
+
"unicorn/no-chained-comparison": "error",
|
|
81
|
+
"unicorn/no-collection-bracket-access": "error",
|
|
71
82
|
/** Disabled since it is unnecessary with TypeScript objects that are properly typed. */
|
|
72
83
|
"unicorn/no-computed-property-existence-check": "off",
|
|
73
84
|
"unicorn/no-confusing-array-splice": "error",
|
|
74
85
|
"unicorn/no-confusing-array-with": "error",
|
|
75
86
|
"unicorn/no-console-spaces": "error",
|
|
87
|
+
"unicorn/no-constant-zero-expression": "error",
|
|
76
88
|
"unicorn/no-declarations-before-early-exit": "error",
|
|
77
89
|
"unicorn/no-document-cookie": "error",
|
|
90
|
+
"unicorn/no-double-comparison": "error",
|
|
91
|
+
"unicorn/no-duplicate-if-branches": "error",
|
|
92
|
+
"unicorn/no-duplicate-logical-operands": "error",
|
|
78
93
|
"unicorn/no-duplicate-loops": "error",
|
|
79
94
|
"unicorn/no-duplicate-set-values": "error",
|
|
80
95
|
"unicorn/no-empty-file": "error",
|
|
@@ -84,10 +99,12 @@ export const baseUnicorn = defineConfig({
|
|
|
84
99
|
"unicorn/no-for-loop": "error",
|
|
85
100
|
"unicorn/no-global-object-property-assignment": "error",
|
|
86
101
|
"unicorn/no-immediate-mutation": "error",
|
|
102
|
+
"unicorn/no-impossible-length-comparison": "error",
|
|
87
103
|
"unicorn/no-incorrect-query-selector": "error",
|
|
88
104
|
"unicorn/no-incorrect-template-string-interpolation": "error",
|
|
89
105
|
"unicorn/no-instanceof-builtins": "error",
|
|
90
106
|
"unicorn/no-invalid-argument-count": "error",
|
|
107
|
+
"unicorn/no-invalid-character-comparison": "error",
|
|
91
108
|
"unicorn/no-invalid-fetch-options": "error",
|
|
92
109
|
"unicorn/no-invalid-file-input-accept": "error",
|
|
93
110
|
"unicorn/no-invalid-remove-event-listener": "error",
|
|
@@ -95,10 +112,12 @@ export const baseUnicorn = defineConfig({
|
|
|
95
112
|
"unicorn/no-keyword-prefix": "off",
|
|
96
113
|
"unicorn/no-late-current-target-access": "error",
|
|
97
114
|
"unicorn/no-lonely-if": "error",
|
|
115
|
+
"unicorn/no-loop-iterable-mutation": "error",
|
|
98
116
|
"unicorn/no-magic-array-flat-depth": "error",
|
|
99
117
|
/** Superseded by the `complete/format-line-comments` rule. */
|
|
100
118
|
"unicorn/no-manually-wrapped-comments": "off",
|
|
101
119
|
"unicorn/no-mismatched-map-key": "error",
|
|
120
|
+
"unicorn/no-misrefactored-assignment": "error",
|
|
102
121
|
"unicorn/no-named-default": "error",
|
|
103
122
|
"unicorn/no-negated-array-predicate": "error",
|
|
104
123
|
"unicorn/no-negated-comparison": "error",
|
|
@@ -108,6 +127,7 @@ export const baseUnicorn = defineConfig({
|
|
|
108
127
|
"unicorn/no-new-array": "error",
|
|
109
128
|
"unicorn/no-new-buffer": "error",
|
|
110
129
|
"unicorn/no-non-function-verb-prefix": "error",
|
|
130
|
+
"unicorn/no-nonstandard-builtin-properties": "error",
|
|
111
131
|
"unicorn/no-null": "error",
|
|
112
132
|
"unicorn/no-object-as-default-parameter": "error",
|
|
113
133
|
"unicorn/no-object-methods-with-collections": "error",
|
|
@@ -119,6 +139,7 @@ export const baseUnicorn = defineConfig({
|
|
|
119
139
|
"unicorn/no-process-exit": "off",
|
|
120
140
|
"unicorn/no-redundant-comparison": "error",
|
|
121
141
|
"unicorn/no-return-array-push": "error",
|
|
142
|
+
"unicorn/no-selector-as-dom-name": "error",
|
|
122
143
|
"unicorn/no-single-promise-in-promise-methods": "error",
|
|
123
144
|
"unicorn/no-static-only-class": "error",
|
|
124
145
|
"unicorn/no-subtraction-comparison": "error",
|
|
@@ -134,6 +155,7 @@ export const baseUnicorn = defineConfig({
|
|
|
134
155
|
"unicorn/no-unnecessary-array-flat-depth": "error",
|
|
135
156
|
"unicorn/no-unnecessary-array-splice-count": "error",
|
|
136
157
|
"unicorn/no-unnecessary-await": "error",
|
|
158
|
+
"unicorn/no-unnecessary-boolean-comparison": "error",
|
|
137
159
|
"unicorn/no-unnecessary-global-this": "error",
|
|
138
160
|
"unicorn/no-unnecessary-nested-ternary": "error",
|
|
139
161
|
"unicorn/no-unnecessary-polyfills": "error",
|
|
@@ -154,13 +176,16 @@ export const baseUnicorn = defineConfig({
|
|
|
154
176
|
"unicorn/no-useless-boolean-cast": "error",
|
|
155
177
|
"unicorn/no-useless-coercion": "error",
|
|
156
178
|
"unicorn/no-useless-collection-argument": "error",
|
|
179
|
+
"unicorn/no-useless-compound-assignment": "error",
|
|
157
180
|
"unicorn/no-useless-concat": "error",
|
|
158
181
|
"unicorn/no-useless-continue": "error",
|
|
182
|
+
"unicorn/no-useless-delete-check": "error",
|
|
159
183
|
"unicorn/no-useless-else": "error",
|
|
160
184
|
"unicorn/no-useless-error-capture-stack-trace": "error",
|
|
161
185
|
"unicorn/no-useless-fallback-in-spread": "error",
|
|
162
186
|
"unicorn/no-useless-iterator-to-array": "error",
|
|
163
187
|
"unicorn/no-useless-length-check": "error",
|
|
188
|
+
"unicorn/no-useless-logical-operand": "error",
|
|
164
189
|
"unicorn/no-useless-override": "error",
|
|
165
190
|
"unicorn/no-useless-promise-resolve-reject": "error",
|
|
166
191
|
"unicorn/no-useless-recursion": "error",
|
|
@@ -169,6 +194,7 @@ export const baseUnicorn = defineConfig({
|
|
|
169
194
|
"unicorn/no-useless-template-literals": "error",
|
|
170
195
|
/** Disabled since it does not work properly with TypeScript. */
|
|
171
196
|
"unicorn/no-useless-undefined": "off",
|
|
197
|
+
"unicorn/no-xor-as-exponentiation": "error",
|
|
172
198
|
"unicorn/no-zero-fractions": "error",
|
|
173
199
|
"unicorn/number-literal-case": "off", // eslint-config-prettier
|
|
174
200
|
"unicorn/numeric-separators-style": "error",
|
|
@@ -178,8 +204,10 @@ export const baseUnicorn = defineConfig({
|
|
|
178
204
|
"unicorn/prefer-array-find": "error",
|
|
179
205
|
"unicorn/prefer-array-flat": "error",
|
|
180
206
|
"unicorn/prefer-array-flat-map": "error",
|
|
207
|
+
"unicorn/prefer-array-from-async": "error",
|
|
181
208
|
"unicorn/prefer-array-from-map": "error",
|
|
182
209
|
"unicorn/prefer-array-index-of": "error",
|
|
210
|
+
"unicorn/prefer-array-iterable-methods": "error",
|
|
183
211
|
"unicorn/prefer-array-last-methods": "error",
|
|
184
212
|
"unicorn/prefer-array-slice": "error",
|
|
185
213
|
"unicorn/prefer-array-some": "error",
|
|
@@ -187,9 +215,11 @@ export const baseUnicorn = defineConfig({
|
|
|
187
215
|
"unicorn/prefer-await": "error",
|
|
188
216
|
"unicorn/prefer-bigint-literals": "error",
|
|
189
217
|
"unicorn/prefer-blob-reading-methods": "error",
|
|
218
|
+
"unicorn/prefer-boolean-return": "error",
|
|
190
219
|
"unicorn/prefer-class-fields": "error",
|
|
191
220
|
"unicorn/prefer-classlist-toggle": "error",
|
|
192
221
|
"unicorn/prefer-code-point": "error",
|
|
222
|
+
"unicorn/prefer-continue": "error",
|
|
193
223
|
"unicorn/prefer-date-now": "error",
|
|
194
224
|
"unicorn/prefer-default-parameters": "error",
|
|
195
225
|
"unicorn/prefer-direct-iteration": "error",
|
|
@@ -202,10 +232,12 @@ export const baseUnicorn = defineConfig({
|
|
|
202
232
|
"unicorn/prefer-else-if": "error",
|
|
203
233
|
"unicorn/prefer-event-target": "error",
|
|
204
234
|
"unicorn/prefer-export-from": "error",
|
|
235
|
+
"unicorn/prefer-flat-math-min-max": "error",
|
|
205
236
|
"unicorn/prefer-get-or-insert-computed": "error",
|
|
206
237
|
"unicorn/prefer-global-number-constants": "error",
|
|
207
238
|
"unicorn/prefer-global-this": "error",
|
|
208
239
|
"unicorn/prefer-has-check": "error",
|
|
240
|
+
"unicorn/prefer-hoisting-branch-code": "error",
|
|
209
241
|
"unicorn/prefer-https": "error",
|
|
210
242
|
"unicorn/prefer-identifier-import-export-specifiers": "error",
|
|
211
243
|
"unicorn/prefer-import-meta-properties": "error",
|
|
@@ -225,6 +257,7 @@ export const baseUnicorn = defineConfig({
|
|
|
225
257
|
"unicorn/prefer-logical-operator-over-ternary": "error",
|
|
226
258
|
"unicorn/prefer-map-from-entries": "error",
|
|
227
259
|
"unicorn/prefer-math-abs": "error",
|
|
260
|
+
"unicorn/prefer-math-constants": "error",
|
|
228
261
|
"unicorn/prefer-math-min-max": "error",
|
|
229
262
|
"unicorn/prefer-math-trunc": "error",
|
|
230
263
|
"unicorn/prefer-minimal-ternary": "error",
|
|
@@ -244,10 +277,12 @@ export const baseUnicorn = defineConfig({
|
|
|
244
277
|
"unicorn/prefer-optional-catch-binding": "error",
|
|
245
278
|
"unicorn/prefer-path2d": "error",
|
|
246
279
|
"unicorn/prefer-private-class-fields": "error",
|
|
280
|
+
"unicorn/prefer-promise-with-resolvers": "error",
|
|
247
281
|
"unicorn/prefer-prototype-methods": "error",
|
|
248
282
|
"unicorn/prefer-query-selector": "error",
|
|
249
283
|
"unicorn/prefer-queue-microtask": "error",
|
|
250
284
|
"unicorn/prefer-reflect-apply": "error",
|
|
285
|
+
"unicorn/prefer-regexp-escape": "error",
|
|
251
286
|
"unicorn/prefer-regexp-test": "error",
|
|
252
287
|
"unicorn/prefer-response-static-json": "error",
|
|
253
288
|
"unicorn/prefer-scoped-selector": "error",
|
|
@@ -259,6 +294,7 @@ export const baseUnicorn = defineConfig({
|
|
|
259
294
|
"unicorn/prefer-single-array-predicate": "error",
|
|
260
295
|
"unicorn/prefer-single-call": "error",
|
|
261
296
|
"unicorn/prefer-single-object-destructuring": "error",
|
|
297
|
+
"unicorn/prefer-single-replace": "error",
|
|
262
298
|
"unicorn/prefer-smaller-scope": "error",
|
|
263
299
|
"unicorn/prefer-split-limit": "error",
|
|
264
300
|
"unicorn/prefer-spread": "error",
|
|
@@ -283,10 +319,11 @@ export const baseUnicorn = defineConfig({
|
|
|
283
319
|
"unicorn/prefer-type-error": "error",
|
|
284
320
|
"unicorn/prefer-type-literal-last": "error",
|
|
285
321
|
"unicorn/prefer-uint8array-base64": "error",
|
|
322
|
+
"unicorn/prefer-unary-minus": "error",
|
|
286
323
|
"unicorn/prefer-unicode-code-point-escapes": "error",
|
|
324
|
+
"unicorn/prefer-url-can-parse": "error",
|
|
287
325
|
"unicorn/prefer-url-href": "error",
|
|
288
|
-
|
|
289
|
-
"unicorn/prevent-abbreviations": "off",
|
|
326
|
+
"unicorn/prefer-while-loop-condition": "error",
|
|
290
327
|
"unicorn/relative-url-style": "error",
|
|
291
328
|
"unicorn/require-array-join-separator": "error",
|
|
292
329
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-config-complete",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.19.0",
|
|
4
4
|
"description": "A sharable ESLint config for TypeScript projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -35,24 +35,24 @@
|
|
|
35
35
|
"@stylistic/eslint-plugin": "5.10.0",
|
|
36
36
|
"confusing-browser-globals": "1.0.11",
|
|
37
37
|
"eslint-import-resolver-typescript": "4.4.5",
|
|
38
|
-
"eslint-plugin-complete": "1.
|
|
38
|
+
"eslint-plugin-complete": "1.11.0",
|
|
39
39
|
"eslint-plugin-eslint-plugin": "7.4.0",
|
|
40
40
|
"eslint-plugin-import-x": "4.16.2",
|
|
41
|
-
"eslint-plugin-jsdoc": "63.0.
|
|
41
|
+
"eslint-plugin-jsdoc": "63.0.7",
|
|
42
42
|
"eslint-plugin-n": "18.1.0",
|
|
43
43
|
"eslint-plugin-perfectionist": "5.9.1",
|
|
44
44
|
"eslint-plugin-regexp": "3.1.0",
|
|
45
|
-
"eslint-plugin-unicorn": "
|
|
45
|
+
"eslint-plugin-unicorn": "68.0.0",
|
|
46
46
|
"typescript-eslint": "8.61.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@eslint/js": "10.0.1",
|
|
50
50
|
"@types/confusing-browser-globals": "1.0.3",
|
|
51
|
-
"@types/node": "
|
|
51
|
+
"@types/node": "26.0.0",
|
|
52
52
|
"@typescript-eslint/typescript-estree": "8.61.1",
|
|
53
53
|
"@typescript-eslint/utils": "8.61.1",
|
|
54
54
|
"complete-common": "2.29.0",
|
|
55
|
-
"complete-node": "
|
|
55
|
+
"complete-node": "18.0.0",
|
|
56
56
|
"eslint-config-prettier": "10.1.8",
|
|
57
57
|
"typescript": "6.0.3"
|
|
58
58
|
},
|