eslint-plugin-unicorn 66.0.0 → 68.0.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/configs/core-rule-replacements.js +9 -0
- package/index.js +11 -7
- package/package.json +6 -3
- package/readme.md +426 -270
- package/rules/ast/index.js +3 -0
- package/rules/ast/is-empty-node.js +1 -5
- package/rules/ast/is-loop.js +5 -0
- package/rules/ast/literal.js +5 -0
- package/rules/ast/loop-types.js +9 -0
- package/rules/better-dom-traversing.js +17 -8
- package/rules/class-reference-in-static-methods.js +14 -2
- package/rules/comment-content.js +654 -81
- package/rules/consistent-assert.js +1 -1
- package/rules/consistent-boolean-name.js +505 -0
- package/rules/consistent-class-member-order.js +41 -14
- package/rules/consistent-compound-words.js +7 -5
- package/rules/consistent-conditional-object-spread.js +354 -0
- package/rules/consistent-destructuring.js +5 -0
- package/rules/consistent-existence-index-check.js +1 -1
- package/rules/consistent-json-file-read.js +4 -16
- package/rules/consistent-optional-chaining.js +3 -20
- package/rules/default-export-style.js +569 -0
- package/rules/dom-node-dataset.js +167 -29
- package/rules/expiring-todo-comments.js +1 -2
- package/rules/explicit-length-check.js +15 -40
- package/rules/fix/index.js +2 -1
- package/rules/fix/{remove-expression-statement.js → remove-statement.js} +20 -7
- package/rules/fix/replace-node-with-expression.js +47 -0
- package/rules/fix/replace-reference-identifier.js +4 -1
- package/rules/import-style.js +7 -7
- package/rules/index.js +53 -1
- package/rules/logical-assignment-operators.js +125 -0
- package/rules/{prevent-abbreviations.js → name-replacements.js} +11 -9
- package/rules/new-for-builtins.js +42 -10
- package/rules/no-accessor-recursion.js +7 -0
- package/rules/no-accidental-bitwise-operator.js +97 -0
- package/rules/no-anonymous-default-export.js +2 -2
- package/rules/no-array-callback-reference.js +68 -8
- package/rules/no-array-concat-in-loop.js +45 -0
- package/rules/no-array-front-mutation.js +64 -0
- package/rules/no-array-reduce.js +66 -1
- package/rules/no-array-sort-for-min-max.js +225 -0
- package/rules/no-array-splice.js +246 -0
- package/rules/no-blob-to-file.js +1 -34
- package/rules/no-boolean-sort-comparator.js +215 -0
- package/rules/no-break-in-nested-loop.js +38 -14
- package/rules/no-chained-comparison.js +116 -0
- package/rules/no-collection-bracket-access.js +165 -0
- package/rules/no-computed-property-existence-check.js +3 -3
- package/rules/no-confusing-array-splice.js +2 -21
- package/rules/no-confusing-array-with.js +2 -20
- package/rules/no-constant-zero-expression.js +91 -0
- package/rules/no-declarations-before-early-exit.js +85 -33
- package/rules/no-double-comparison.js +117 -0
- package/rules/no-duplicate-if-branches.js +143 -0
- package/rules/no-duplicate-logical-operands.js +151 -0
- package/rules/no-duplicate-loops.js +3 -83
- package/rules/no-empty-file.js +9 -0
- package/rules/no-for-each.js +12 -13
- package/rules/no-for-loop.js +3 -15
- package/rules/no-global-object-property-assignment.js +1 -6
- package/rules/no-immediate-mutation.js +2 -2
- package/rules/no-impossible-length-comparison.js +166 -0
- package/rules/no-incorrect-query-selector.js +8 -22
- package/rules/no-incorrect-template-string-interpolation.js +22 -11
- package/rules/no-instanceof-builtins.js +14 -1
- package/rules/no-invalid-argument-count.js +1240 -14
- package/rules/no-invalid-character-comparison.js +121 -0
- package/rules/no-invalid-fetch-options.js +3 -1
- package/rules/no-keyword-prefix.js +14 -4
- package/rules/no-late-current-target-access.js +7 -39
- package/rules/no-loop-iterable-mutation.js +541 -0
- package/rules/no-manually-wrapped-comments.js +10 -2
- package/rules/no-misrefactored-assignment.js +102 -0
- package/rules/no-named-default.js +35 -2
- package/rules/no-non-function-verb-prefix.js +324 -0
- package/rules/no-nonstandard-builtin-properties.js +1381 -0
- package/rules/no-process-exit.js +16 -12
- package/rules/no-redundant-comparison.js +5 -12
- package/rules/no-return-array-push.js +25 -21
- package/rules/no-selector-as-dom-name.js +150 -0
- package/rules/no-thenable.js +27 -11
- package/rules/no-top-level-assignment-in-function.js +76 -0
- package/rules/no-uncalled-method.js +302 -0
- package/rules/no-undeclared-class-members.js +8 -6
- package/rules/no-unnecessary-boolean-comparison.js +131 -0
- package/rules/no-unnecessary-global-this.js +1 -6
- package/rules/no-unnecessary-splice.js +26 -158
- package/rules/no-unreadable-array-destructuring.js +61 -3
- package/rules/no-unreadable-for-of-expression.js +131 -0
- package/rules/no-unreadable-new-expression.js +1 -1
- package/rules/no-unreadable-object-destructuring.js +26 -1
- package/rules/no-unsafe-property-key.js +26 -0
- package/rules/no-unused-properties.js +4 -3
- package/rules/no-useless-boolean-cast.js +2 -11
- package/rules/no-useless-coercion.js +147 -0
- package/rules/no-useless-compound-assignment.js +110 -0
- package/rules/no-useless-continue.js +81 -0
- package/rules/no-useless-delete-check.js +353 -0
- package/rules/no-useless-else.js +16 -65
- package/rules/no-useless-error-capture-stack-trace.js +1 -1
- package/rules/no-useless-fallback-in-spread.js +7 -99
- package/rules/no-useless-logical-operand.js +248 -0
- package/rules/no-useless-override.js +217 -0
- package/rules/no-useless-undefined.js +11 -28
- package/rules/no-xor-as-exponentiation.js +59 -0
- package/rules/operator-assignment.js +111 -0
- package/rules/prefer-add-event-listener-options.js +1 -5
- package/rules/prefer-array-find.js +95 -5
- package/rules/prefer-array-flat-map.js +9 -21
- package/rules/prefer-array-flat.js +2 -25
- package/rules/prefer-array-from-async.js +273 -0
- package/rules/prefer-array-iterable-methods.js +157 -0
- package/rules/prefer-array-slice.js +97 -0
- package/rules/prefer-array-some.js +58 -33
- package/rules/prefer-at.js +2 -25
- package/rules/prefer-await.js +23 -20
- package/rules/prefer-boolean-return.js +224 -0
- package/rules/prefer-classlist-toggle.js +1 -1
- package/rules/prefer-continue.js +361 -0
- package/rules/prefer-default-parameters.js +10 -6
- package/rules/prefer-dispose.js +1 -5
- package/rules/prefer-early-return.js +160 -30
- package/rules/prefer-else-if.js +521 -0
- package/rules/prefer-event-target.js +3 -13
- package/rules/prefer-flat-math-min-max.js +103 -0
- package/rules/prefer-global-this.js +1 -1
- package/rules/prefer-has-check.js +946 -0
- package/rules/prefer-hoisting-branch-code.js +422 -0
- package/rules/prefer-identifier-import-export-specifiers.js +6 -11
- package/rules/prefer-includes-over-repeated-comparisons.js +5 -1
- package/rules/prefer-includes.js +6 -0
- package/rules/prefer-iterable-in-constructor.js +2 -2
- package/rules/prefer-logical-operator-over-ternary.js +122 -38
- package/rules/prefer-map-from-entries.js +482 -0
- package/rules/prefer-math-constants.js +103 -0
- package/rules/prefer-math-min-max.js +1 -5
- package/rules/prefer-minimal-ternary.js +49 -10
- package/rules/prefer-node-protocol.js +1 -0
- package/rules/prefer-number-properties.js +2 -5
- package/rules/prefer-object-from-entries.js +8 -3
- package/rules/prefer-object-iterable-methods.js +36 -11
- package/rules/prefer-optional-catch-binding.js +30 -24
- package/rules/prefer-private-class-fields.js +2 -8
- package/rules/prefer-promise-with-resolvers.js +248 -0
- package/rules/prefer-query-selector.js +110 -46
- package/rules/prefer-queue-microtask.js +7 -9
- package/rules/prefer-regexp-escape.js +263 -0
- package/rules/prefer-regexp-test.js +11 -16
- package/rules/prefer-scoped-selector.js +93 -4
- package/rules/prefer-set-has.js +1 -6
- package/rules/prefer-set-size.js +10 -2
- package/rules/prefer-short-arrow-method.js +3 -3
- package/rules/prefer-single-replace.js +218 -0
- package/rules/prefer-smaller-scope.js +2 -2
- package/rules/prefer-spread.js +15 -22
- package/rules/prefer-string-replace-all.js +5 -0
- package/rules/prefer-structured-clone.js +2 -2
- package/rules/prefer-switch.js +1 -0
- package/rules/prefer-ternary.js +4 -2
- package/rules/prefer-type-literal-last.js +32 -55
- package/rules/prefer-unary-minus.js +103 -0
- package/rules/prefer-url-can-parse.js +308 -0
- package/rules/prefer-while-loop-condition.js +252 -0
- package/rules/require-passive-events.js +12 -9
- package/rules/require-proxy-trap-boolean-return.js +40 -126
- package/rules/rule/to-eslint-listener.js +5 -3
- package/rules/shared/array-concat-in-loop.js +151 -0
- package/rules/shared/identifier-checks.js +4 -16
- package/rules/shared/iterator-helpers.js +104 -0
- package/rules/shared/{abbreviations.js → name-replacements.js} +57 -0
- package/rules/shared/no-array-mutate-rule.js +19 -2
- package/rules/shared/regexp-escape.js +81 -0
- package/rules/shared/splice-replacements.js +132 -0
- package/rules/string-content.js +11 -4
- package/rules/template-indent.js +2 -8
- package/rules/throw-new-error.js +7 -0
- package/rules/utils/block-scope.js +42 -0
- package/rules/utils/boolean.js +27 -11
- package/rules/utils/builtins.js +50 -1
- package/rules/utils/comments.js +16 -0
- package/rules/utils/comparison.js +17 -0
- package/rules/utils/contains-suspension-point.js +35 -0
- package/rules/utils/get-const-variable-initializer.js +31 -0
- package/rules/utils/global-reference-tracker.js +14 -1
- package/rules/utils/has-optional-chain-element.js +36 -4
- package/rules/utils/index.js +41 -3
- package/rules/utils/is-array.js +55 -377
- package/rules/utils/is-bigint.js +86 -0
- package/rules/utils/is-boolean.js +587 -0
- package/rules/utils/is-function-self-used-inside.js +1 -5
- package/rules/utils/is-left-hand-side.js +1 -0
- package/rules/utils/is-number.js +18 -2
- package/rules/utils/is-promise-type.js +28 -0
- package/rules/utils/is-same-reference.js +2 -1
- package/rules/utils/is-strong-precedence-node.js +32 -0
- package/rules/utils/is-weak-map.js +21 -0
- package/rules/utils/is-weak-set.js +21 -0
- package/rules/utils/length-or-size.js +53 -0
- package/rules/utils/member-expression.js +18 -0
- package/rules/utils/needs-semicolon.js +1 -5
- package/rules/utils/numeric.js +20 -0
- package/rules/utils/should-add-parentheses-to-logical-expression-child.js +8 -14
- package/rules/utils/should-add-parentheses-to-member-expression-object.js +1 -5
- package/rules/utils/should-add-parentheses-to-unary-expression.js +8 -2
- package/rules/utils/track-branch-exits.js +79 -0
- package/rules/utils/type-helpers.js +204 -25
- package/rules/utils/types.js +22 -0
package/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import createDeprecatedRules from './rules/utils/create-deprecated-rules.js';
|
|
2
2
|
import flatConfigBase from './configs/flat-config-base.js';
|
|
3
|
+
import coreRuleReplacements from './configs/core-rule-replacements.js';
|
|
3
4
|
import * as rawRules from './rules/index.js';
|
|
4
5
|
import {toEslintRules} from './rules/rule/index.js';
|
|
5
6
|
import packageJson from './package.json' with {type: 'json'};
|
|
@@ -27,6 +28,10 @@ const deprecatedRules = createDeprecatedRules({
|
|
|
27
28
|
message: 'Replaced by `unicorn/prefer-single-call` which covers more cases.',
|
|
28
29
|
replacedBy: ['unicorn/prefer-single-call'],
|
|
29
30
|
},
|
|
31
|
+
'prevent-abbreviations': {
|
|
32
|
+
message: 'Renamed to `unicorn/name-replacements`.',
|
|
33
|
+
replacedBy: ['unicorn/name-replacements'],
|
|
34
|
+
},
|
|
30
35
|
'prefer-json-parse-buffer': {
|
|
31
36
|
message: 'Renamed to `unicorn/consistent-json-file-read`.',
|
|
32
37
|
replacedBy: ['unicorn/consistent-json-file-read'],
|
|
@@ -37,12 +42,11 @@ const deprecatedRules = createDeprecatedRules({
|
|
|
37
42
|
},
|
|
38
43
|
});
|
|
39
44
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
};
|
|
45
|
+
const getExternalRules = rules => Object.fromEntries(
|
|
46
|
+
coreRuleReplacements
|
|
47
|
+
.filter(ruleName => rules[`unicorn/${ruleName}`] === 'error')
|
|
48
|
+
.map(ruleName => [ruleName, 'off']),
|
|
49
|
+
);
|
|
46
50
|
|
|
47
51
|
const recommendedRules = Object.fromEntries(Object.entries(rules).map(([id, rule]) => [
|
|
48
52
|
`unicorn/${id}`,
|
|
@@ -68,7 +72,7 @@ const createConfig = (rules, flatConfigName) => ({
|
|
|
68
72
|
unicorn,
|
|
69
73
|
},
|
|
70
74
|
rules: {
|
|
71
|
-
...
|
|
75
|
+
...getExternalRules(rules),
|
|
72
76
|
...rules,
|
|
73
77
|
},
|
|
74
78
|
});
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-unicorn",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "More than
|
|
3
|
+
"version": "68.0.0",
|
|
4
|
+
"description": "More than 300 powerful ESLint rules",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"repository":
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/sindresorhus/eslint-plugin-unicorn.git"
|
|
9
|
+
},
|
|
7
10
|
"funding": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1",
|
|
8
11
|
"author": {
|
|
9
12
|
"name": "Sindre Sorhus",
|