@typescript-eslint/eslint-plugin 7.0.0-alpha.0 → 7.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.
- package/dist/configs/all.js +12 -40
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/base.js +0 -6
- package/dist/configs/base.js.map +1 -1
- package/dist/configs/disable-type-checked.js +7 -1
- package/dist/configs/disable-type-checked.js.map +1 -1
- package/dist/configs/eslint-recommended-raw.js +40 -0
- package/dist/configs/eslint-recommended-raw.js.map +1 -0
- package/dist/configs/eslint-recommended.js +10 -27
- package/dist/configs/eslint-recommended.js.map +1 -1
- package/dist/configs/recommended-type-checked.js.map +1 -1
- package/dist/configs/recommended.js.map +1 -1
- package/dist/configs/strict-type-checked.js +4 -0
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs/stylistic-type-checked.js.map +1 -1
- package/dist/configs/stylistic.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/rules/adjacent-overload-signatures.js +31 -60
- package/dist/rules/adjacent-overload-signatures.js.map +1 -1
- package/dist/rules/array-type.js +7 -32
- package/dist/rules/array-type.js.map +1 -1
- package/dist/rules/await-thenable.js +15 -4
- package/dist/rules/await-thenable.js.map +1 -1
- package/dist/rules/ban-ts-comment.js +32 -34
- package/dist/rules/ban-ts-comment.js.map +1 -1
- package/dist/rules/ban-tslint-comment.js +5 -29
- package/dist/rules/ban-tslint-comment.js.map +1 -1
- package/dist/rules/ban-types.js +4 -27
- package/dist/rules/ban-types.js.map +1 -1
- package/dist/rules/block-spacing.js +11 -34
- package/dist/rules/block-spacing.js.map +1 -1
- package/dist/rules/brace-style.js +10 -9
- package/dist/rules/brace-style.js.map +1 -1
- package/dist/rules/class-literal-property-style.js +20 -31
- package/dist/rules/class-literal-property-style.js.map +1 -1
- package/dist/rules/class-methods-use-this.js +209 -0
- package/dist/rules/class-methods-use-this.js.map +1 -0
- package/dist/rules/comma-dangle.js +11 -31
- package/dist/rules/comma-dangle.js.map +1 -1
- package/dist/rules/comma-spacing.js +11 -12
- package/dist/rules/comma-spacing.js.map +1 -1
- package/dist/rules/consistent-generic-constructors.js +23 -25
- package/dist/rules/consistent-generic-constructors.js.map +1 -1
- package/dist/rules/consistent-indexed-object-style.js +10 -14
- package/dist/rules/consistent-indexed-object-style.js.map +1 -1
- package/dist/rules/consistent-type-assertions.js +36 -21
- package/dist/rules/consistent-type-assertions.js.map +1 -1
- package/dist/rules/consistent-type-definitions.js +14 -40
- package/dist/rules/consistent-type-definitions.js.map +1 -1
- package/dist/rules/consistent-type-exports.js +19 -39
- package/dist/rules/consistent-type-exports.js.map +1 -1
- package/dist/rules/consistent-type-imports.js +88 -101
- package/dist/rules/consistent-type-imports.js.map +1 -1
- package/dist/rules/default-param-last.js +1 -1
- package/dist/rules/default-param-last.js.map +1 -1
- package/dist/rules/dot-notation.js.map +1 -1
- package/dist/rules/enum-utils/shared.js +57 -6
- package/dist/rules/enum-utils/shared.js.map +1 -1
- package/dist/rules/explicit-function-return-type.js +6 -31
- package/dist/rules/explicit-function-return-type.js.map +1 -1
- package/dist/rules/explicit-member-accessibility.js +8 -32
- package/dist/rules/explicit-member-accessibility.js.map +1 -1
- package/dist/rules/explicit-module-boundary-types.js +11 -35
- package/dist/rules/explicit-module-boundary-types.js.map +1 -1
- package/dist/rules/func-call-spacing.js +12 -35
- package/dist/rules/func-call-spacing.js.map +1 -1
- package/dist/rules/indent.js +18 -42
- package/dist/rules/indent.js.map +1 -1
- package/dist/rules/index.js +16 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/init-declarations.js.map +1 -1
- package/dist/rules/key-spacing.js +27 -59
- package/dist/rules/key-spacing.js.map +1 -1
- package/dist/rules/keyword-spacing.js +9 -31
- package/dist/rules/keyword-spacing.js.map +1 -1
- package/dist/rules/lines-around-comment.js +24 -48
- package/dist/rules/lines-around-comment.js.map +1 -1
- package/dist/rules/lines-between-class-members.js +5 -26
- package/dist/rules/lines-between-class-members.js.map +1 -1
- package/dist/rules/max-params.js +67 -0
- package/dist/rules/max-params.js.map +1 -0
- package/dist/rules/member-delimiter-style.js +12 -34
- package/dist/rules/member-delimiter-style.js.map +1 -1
- package/dist/rules/member-ordering.js +48 -40
- package/dist/rules/member-ordering.js.map +1 -1
- package/dist/rules/method-signature-style.js +14 -38
- package/dist/rules/method-signature-style.js.map +1 -1
- package/dist/rules/naming-convention-utils/enums.js +13 -5
- package/dist/rules/naming-convention-utils/enums.js.map +1 -1
- package/dist/rules/naming-convention-utils/format.js.map +1 -1
- package/dist/rules/naming-convention-utils/parse-options.js +3 -25
- package/dist/rules/naming-convention-utils/parse-options.js.map +1 -1
- package/dist/rules/naming-convention-utils/schema.js +8 -33
- package/dist/rules/naming-convention-utils/schema.js.map +1 -1
- package/dist/rules/naming-convention-utils/validator.js +3 -26
- package/dist/rules/naming-convention-utils/validator.js.map +1 -1
- package/dist/rules/naming-convention.js +59 -60
- package/dist/rules/naming-convention.js.map +1 -1
- package/dist/rules/no-array-constructor.js +4 -27
- package/dist/rules/no-array-constructor.js.map +1 -1
- package/dist/rules/no-array-delete.js +81 -0
- package/dist/rules/no-array-delete.js.map +1 -0
- package/dist/rules/no-base-to-string.js +7 -7
- package/dist/rules/no-base-to-string.js.map +1 -1
- package/dist/rules/no-confusing-non-null-assertion.js +5 -30
- package/dist/rules/no-confusing-non-null-assertion.js.map +1 -1
- package/dist/rules/no-confusing-void-expression.js +33 -20
- package/dist/rules/no-confusing-void-expression.js.map +1 -1
- package/dist/rules/no-dupe-class-members.js +3 -37
- package/dist/rules/no-dupe-class-members.js.map +1 -1
- package/dist/rules/no-duplicate-enum-values.js +2 -25
- package/dist/rules/no-duplicate-enum-values.js.map +1 -1
- package/dist/rules/no-duplicate-type-constituents.js +7 -31
- package/dist/rules/no-duplicate-type-constituents.js.map +1 -1
- package/dist/rules/no-dynamic-delete.js +4 -5
- package/dist/rules/no-dynamic-delete.js.map +1 -1
- package/dist/rules/no-empty-function.js +9 -32
- package/dist/rules/no-empty-function.js.map +1 -1
- package/dist/rules/no-empty-interface.js +8 -33
- package/dist/rules/no-empty-interface.js.map +1 -1
- package/dist/rules/no-explicit-any.js +12 -36
- package/dist/rules/no-explicit-any.js.map +1 -1
- package/dist/rules/no-extra-non-null-assertion.js +2 -25
- package/dist/rules/no-extra-non-null-assertion.js.map +1 -1
- package/dist/rules/no-extra-parens.js +47 -86
- package/dist/rules/no-extra-parens.js.map +1 -1
- package/dist/rules/no-extra-semi.js +5 -37
- package/dist/rules/no-extra-semi.js.map +1 -1
- package/dist/rules/no-extraneous-class.js +2 -25
- package/dist/rules/no-extraneous-class.js.map +1 -1
- package/dist/rules/no-floating-promises.js +137 -54
- package/dist/rules/no-floating-promises.js.map +1 -1
- package/dist/rules/no-for-in-array.js +6 -6
- package/dist/rules/no-for-in-array.js.map +1 -1
- package/dist/rules/no-implied-eval.js +7 -7
- package/dist/rules/no-implied-eval.js.map +1 -1
- package/dist/rules/no-import-type-side-effects.js +4 -28
- package/dist/rules/no-import-type-side-effects.js.map +1 -1
- package/dist/rules/no-inferrable-types.js +12 -36
- package/dist/rules/no-inferrable-types.js.map +1 -1
- package/dist/rules/no-invalid-this.js +2 -10
- package/dist/rules/no-invalid-this.js.map +1 -1
- package/dist/rules/no-invalid-void-type.js +6 -30
- package/dist/rules/no-invalid-void-type.js.map +1 -1
- package/dist/rules/no-loop-func.js +4 -28
- package/dist/rules/no-loop-func.js.map +1 -1
- package/dist/rules/no-loss-of-precision.js +5 -32
- package/dist/rules/no-loss-of-precision.js.map +1 -1
- package/dist/rules/no-magic-numbers.js +5 -28
- package/dist/rules/no-magic-numbers.js.map +1 -1
- package/dist/rules/no-meaningless-void-operator.js +4 -5
- package/dist/rules/no-meaningless-void-operator.js.map +1 -1
- package/dist/rules/no-misused-new.js +2 -25
- package/dist/rules/no-misused-new.js.map +1 -1
- package/dist/rules/no-misused-promises.js +5 -5
- package/dist/rules/no-misused-promises.js.map +1 -1
- package/dist/rules/no-mixed-enums.js +6 -7
- package/dist/rules/no-mixed-enums.js.map +1 -1
- package/dist/rules/no-namespace.js +4 -29
- package/dist/rules/no-namespace.js.map +1 -1
- package/dist/rules/no-non-null-asserted-nullish-coalescing.js +5 -29
- package/dist/rules/no-non-null-asserted-nullish-coalescing.js.map +1 -1
- package/dist/rules/no-non-null-asserted-optional-chain.js +2 -25
- package/dist/rules/no-non-null-asserted-optional-chain.js.map +1 -1
- package/dist/rules/no-non-null-assertion.js +20 -46
- package/dist/rules/no-non-null-assertion.js.map +1 -1
- package/dist/rules/no-redeclare.js +7 -31
- package/dist/rules/no-redeclare.js.map +1 -1
- package/dist/rules/no-redundant-type-constituents.js +12 -13
- package/dist/rules/no-redundant-type-constituents.js.map +1 -1
- package/dist/rules/no-require-imports.js +30 -4
- package/dist/rules/no-require-imports.js.map +1 -1
- package/dist/rules/no-restricted-imports.js +100 -77
- package/dist/rules/no-restricted-imports.js.map +1 -1
- package/dist/rules/no-shadow.js +30 -56
- package/dist/rules/no-shadow.js.map +1 -1
- package/dist/rules/no-this-alias.js +2 -25
- package/dist/rules/no-this-alias.js.map +1 -1
- package/dist/rules/no-throw-literal.js +6 -36
- package/dist/rules/no-throw-literal.js.map +1 -1
- package/dist/rules/no-type-alias.js +2 -25
- package/dist/rules/no-type-alias.js.map +1 -1
- package/dist/rules/no-unnecessary-boolean-literal-compare.js +6 -7
- package/dist/rules/no-unnecessary-boolean-literal-compare.js.map +1 -1
- package/dist/rules/no-unnecessary-condition.js +62 -22
- package/dist/rules/no-unnecessary-condition.js.map +1 -1
- package/dist/rules/no-unnecessary-qualifier.js +8 -7
- package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
- package/dist/rules/no-unnecessary-type-arguments.js +5 -6
- package/dist/rules/no-unnecessary-type-arguments.js.map +1 -1
- package/dist/rules/no-unnecessary-type-assertion.js +37 -32
- package/dist/rules/no-unnecessary-type-assertion.js.map +1 -1
- package/dist/rules/no-unnecessary-type-constraint.js +18 -6
- package/dist/rules/no-unnecessary-type-constraint.js.map +1 -1
- package/dist/rules/no-unsafe-argument.js +11 -11
- package/dist/rules/no-unsafe-argument.js.map +1 -1
- package/dist/rules/no-unsafe-assignment.js +15 -17
- package/dist/rules/no-unsafe-assignment.js.map +1 -1
- package/dist/rules/no-unsafe-call.js +5 -6
- package/dist/rules/no-unsafe-call.js.map +1 -1
- package/dist/rules/no-unsafe-declaration-merging.js +4 -27
- package/dist/rules/no-unsafe-declaration-merging.js.map +1 -1
- package/dist/rules/no-unsafe-enum-comparison.js +94 -45
- package/dist/rules/no-unsafe-enum-comparison.js.map +1 -1
- package/dist/rules/no-unsafe-member-access.js +8 -10
- package/dist/rules/no-unsafe-member-access.js.map +1 -1
- package/dist/rules/no-unsafe-return.js +15 -15
- package/dist/rules/no-unsafe-return.js.map +1 -1
- package/dist/rules/no-unsafe-unary-minus.js +68 -0
- package/dist/rules/no-unsafe-unary-minus.js.map +1 -0
- package/dist/rules/no-unused-expressions.js +10 -25
- package/dist/rules/no-unused-expressions.js.map +1 -1
- package/dist/rules/no-unused-vars.js +37 -79
- package/dist/rules/no-unused-vars.js.map +1 -1
- package/dist/rules/no-use-before-define.js +8 -35
- package/dist/rules/no-use-before-define.js.map +1 -1
- package/dist/rules/no-useless-constructor.js +3 -27
- package/dist/rules/no-useless-constructor.js.map +1 -1
- package/dist/rules/no-useless-empty-export.js +18 -36
- package/dist/rules/no-useless-empty-export.js.map +1 -1
- package/dist/rules/no-useless-template-literals.js +138 -0
- package/dist/rules/no-useless-template-literals.js.map +1 -0
- package/dist/rules/no-var-requires.js +36 -39
- package/dist/rules/no-var-requires.js.map +1 -1
- package/dist/rules/non-nullable-type-assertion-style.js +9 -8
- package/dist/rules/non-nullable-type-assertion-style.js.map +1 -1
- package/dist/rules/object-curly-spacing.js +20 -19
- package/dist/rules/object-curly-spacing.js.map +1 -1
- package/dist/rules/padding-line-between-statements.js +28 -54
- package/dist/rules/padding-line-between-statements.js.map +1 -1
- package/dist/rules/parameter-properties.js +4 -29
- package/dist/rules/parameter-properties.js.map +1 -1
- package/dist/rules/prefer-as-const.js +2 -25
- package/dist/rules/prefer-as-const.js.map +1 -1
- package/dist/rules/prefer-destructuring.js +200 -0
- package/dist/rules/prefer-destructuring.js.map +1 -0
- package/dist/rules/prefer-enum-initializers.js +3 -27
- package/dist/rules/prefer-enum-initializers.js.map +1 -1
- package/dist/rules/prefer-find.js +237 -0
- package/dist/rules/prefer-find.js.map +1 -0
- package/dist/rules/prefer-for-of.js +7 -32
- package/dist/rules/prefer-for-of.js.map +1 -1
- package/dist/rules/prefer-function-type.js +9 -32
- package/dist/rules/prefer-function-type.js.map +1 -1
- package/dist/rules/prefer-includes.js +2 -2
- package/dist/rules/prefer-includes.js.map +1 -1
- package/dist/rules/prefer-literal-enum-member.js.map +1 -1
- package/dist/rules/prefer-namespace-keyword.js +4 -28
- package/dist/rules/prefer-namespace-keyword.js.map +1 -1
- package/dist/rules/prefer-nullish-coalescing.js +42 -30
- package/dist/rules/prefer-nullish-coalescing.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.js +20 -22
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/compareNodes.js.map +1 -1
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +8 -10
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js.map +1 -1
- package/dist/rules/prefer-optional-chain.js +9 -11
- package/dist/rules/prefer-optional-chain.js.map +1 -1
- package/dist/rules/prefer-promise-reject-errors.js +108 -0
- package/dist/rules/prefer-promise-reject-errors.js.map +1 -0
- package/dist/rules/prefer-readonly-parameter-types.js +8 -31
- package/dist/rules/prefer-readonly-parameter-types.js.map +1 -1
- package/dist/rules/prefer-readonly.js +61 -17
- package/dist/rules/prefer-readonly.js.map +1 -1
- package/dist/rules/prefer-reduce-type-parameter.js +6 -32
- package/dist/rules/prefer-reduce-type-parameter.js.map +1 -1
- package/dist/rules/prefer-regexp-exec.js +8 -10
- package/dist/rules/prefer-regexp-exec.js.map +1 -1
- package/dist/rules/prefer-return-this-type.js +2 -4
- package/dist/rules/prefer-return-this-type.js.map +1 -1
- package/dist/rules/prefer-string-starts-ends-with.js +44 -26
- package/dist/rules/prefer-string-starts-ends-with.js.map +1 -1
- package/dist/rules/prefer-ts-expect-error.js +3 -27
- package/dist/rules/prefer-ts-expect-error.js.map +1 -1
- package/dist/rules/promise-function-async.js +11 -12
- package/dist/rules/promise-function-async.js.map +1 -1
- package/dist/rules/quotes.js +5 -26
- package/dist/rules/quotes.js.map +1 -1
- package/dist/rules/require-array-sort-compare.js +17 -39
- package/dist/rules/require-array-sort-compare.js.map +1 -1
- package/dist/rules/require-await.js +22 -50
- package/dist/rules/require-await.js.map +1 -1
- package/dist/rules/restrict-plus-operands.js +7 -7
- package/dist/rules/restrict-plus-operands.js.map +1 -1
- package/dist/rules/restrict-template-expressions.js +11 -11
- package/dist/rules/restrict-template-expressions.js.map +1 -1
- package/dist/rules/return-await.js +12 -15
- package/dist/rules/return-await.js.map +1 -1
- package/dist/rules/semi.js +4 -25
- package/dist/rules/semi.js.map +1 -1
- package/dist/rules/sort-type-constituents.js +5 -30
- package/dist/rules/sort-type-constituents.js.map +1 -1
- package/dist/rules/space-before-blocks.js +8 -31
- package/dist/rules/space-before-blocks.js.map +1 -1
- package/dist/rules/space-before-function-paren.js +14 -39
- package/dist/rules/space-before-function-paren.js.map +1 -1
- package/dist/rules/space-infix-ops.js +18 -40
- package/dist/rules/space-infix-ops.js.map +1 -1
- package/dist/rules/strict-boolean-expressions.js +94 -85
- package/dist/rules/strict-boolean-expressions.js.map +1 -1
- package/dist/rules/switch-exhaustiveness-check.js +153 -50
- package/dist/rules/switch-exhaustiveness-check.js.map +1 -1
- package/dist/rules/triple-slash-reference.js +3 -27
- package/dist/rules/triple-slash-reference.js.map +1 -1
- package/dist/rules/type-annotation-spacing.js +17 -46
- package/dist/rules/type-annotation-spacing.js.map +1 -1
- package/dist/rules/typedef.js +6 -30
- package/dist/rules/typedef.js.map +1 -1
- package/dist/rules/unbound-method.js +21 -61
- package/dist/rules/unbound-method.js.map +1 -1
- package/dist/rules/unified-signatures.js +12 -37
- package/dist/rules/unified-signatures.js.map +1 -1
- package/dist/util/astUtils.js +4 -4
- package/dist/util/astUtils.js.map +1 -1
- package/dist/util/collectUnusedVariables.js +8 -9
- package/dist/util/collectUnusedVariables.js.map +1 -1
- package/dist/util/explicitReturnTypeUtils.js +43 -34
- package/dist/util/explicitReturnTypeUtils.js.map +1 -1
- package/dist/util/getESLintCoreRule.js +3 -31
- package/dist/util/getESLintCoreRule.js.map +1 -1
- package/dist/util/getFunctionHeadLoc.js +146 -36
- package/dist/util/getFunctionHeadLoc.js.map +1 -1
- package/dist/util/getOperatorPrecedence.js +1 -0
- package/dist/util/getOperatorPrecedence.js.map +1 -1
- package/dist/util/getStaticStringValue.js +46 -0
- package/dist/util/getStaticStringValue.js.map +1 -0
- package/dist/util/getStringLength.js.map +1 -1
- package/dist/util/getThisExpression.js +1 -1
- package/dist/util/getThisExpression.js.map +1 -1
- package/dist/util/getWrappedCode.js +8 -0
- package/dist/util/getWrappedCode.js.map +1 -0
- package/dist/util/getWrappingFixer.js +19 -5
- package/dist/util/getWrappingFixer.js.map +1 -1
- package/dist/util/index.js +1 -0
- package/dist/util/index.js.map +1 -1
- package/dist/util/isNodeEqual.js.map +1 -1
- package/dist/util/misc.js +5 -7
- package/dist/util/misc.js.map +1 -1
- package/dist/util/objectIterators.js.map +1 -1
- package/docs/rules/README.md +44 -7
- package/docs/rules/TEMPLATE.md +5 -1
- package/docs/rules/adjacent-overload-signatures.md +7 -1
- package/docs/rules/array-type.md +14 -6
- package/docs/rules/await-thenable.md +3 -1
- package/docs/rules/ban-ts-comment.md +12 -9
- package/docs/rules/ban-tslint-comment.md +3 -3
- package/docs/rules/ban-types.md +11 -62
- package/docs/rules/block-spacing.md +0 -2
- package/docs/rules/brace-style.md +0 -2
- package/docs/rules/camelcase.md +5 -2
- package/docs/rules/class-literal-property-style.md +5 -14
- package/docs/rules/class-methods-use-this.md +96 -0
- package/docs/rules/comma-dangle.md +0 -2
- package/docs/rules/comma-spacing.md +0 -2
- package/docs/rules/consistent-generic-constructors.md +7 -4
- package/docs/rules/consistent-indexed-object-style.md +12 -12
- package/docs/rules/consistent-type-assertions.md +27 -22
- package/docs/rules/consistent-type-definitions.md +12 -13
- package/docs/rules/consistent-type-exports.md +9 -4
- package/docs/rules/consistent-type-imports.md +9 -6
- package/docs/rules/default-param-last.md +16 -6
- package/docs/rules/dot-notation.md +10 -5
- package/docs/rules/explicit-function-return-type.md +31 -30
- package/docs/rules/explicit-member-accessibility.md +49 -36
- package/docs/rules/explicit-module-boundary-types.md +30 -31
- package/docs/rules/func-call-spacing.md +0 -2
- package/docs/rules/indent.md +0 -2
- package/docs/rules/init-declarations.md +0 -2
- package/docs/rules/key-spacing.md +1 -3
- package/docs/rules/keyword-spacing.md +1 -3
- package/docs/rules/lines-around-comment.md +0 -2
- package/docs/rules/lines-between-class-members.md +2 -10
- package/docs/rules/max-params.md +10 -0
- package/docs/rules/member-delimiter-style.md +4 -1
- package/docs/rules/member-ordering.md +278 -200
- package/docs/rules/method-signature-style.md +7 -4
- package/docs/rules/naming-convention.md +31 -16
- package/docs/rules/no-array-constructor.md +0 -6
- package/docs/rules/no-array-delete.md +40 -0
- package/docs/rules/no-base-to-string.md +2 -2
- package/docs/rules/no-confusing-void-expression.md +3 -3
- package/docs/rules/no-dupe-class-members.md +3 -1
- package/docs/rules/no-duplicate-enum-values.md +8 -0
- package/docs/rules/no-duplicate-imports.md +5 -2
- package/docs/rules/no-duplicate-type-constituents.md +7 -2
- package/docs/rules/no-dynamic-delete.md +1 -1
- package/docs/rules/no-empty-function.md +13 -9
- package/docs/rules/no-empty-interface.md +2 -13
- package/docs/rules/no-explicit-any.md +28 -34
- package/docs/rules/no-extra-non-null-assertion.md +2 -0
- package/docs/rules/no-extra-parens.md +0 -2
- package/docs/rules/no-extra-semi.md +2 -2
- package/docs/rules/no-extraneous-class.md +10 -9
- package/docs/rules/no-floating-promises.md +24 -6
- package/docs/rules/no-for-in-array.md +13 -8
- package/docs/rules/no-implied-eval.md +2 -1
- package/docs/rules/no-import-type-side-effects.md +1 -2
- package/docs/rules/no-inferrable-types.md +4 -4
- package/docs/rules/no-invalid-this.md +3 -1
- package/docs/rules/no-invalid-void-type.md +5 -6
- package/docs/rules/no-loop-func.md +0 -2
- package/docs/rules/no-loss-of-precision.md +0 -2
- package/docs/rules/no-magic-numbers.md +14 -26
- package/docs/rules/no-meaningless-void-operator.md +6 -0
- package/docs/rules/no-misused-new.md +2 -1
- package/docs/rules/no-misused-promises.md +14 -13
- package/docs/rules/no-namespace.md +9 -7
- package/docs/rules/no-non-null-asserted-nullish-coalescing.md +5 -0
- package/docs/rules/no-non-null-asserted-optional-chain.md +5 -0
- package/docs/rules/no-non-null-assertion.md +2 -2
- package/docs/rules/no-parameter-properties.md +12 -0
- package/docs/rules/no-redeclare.md +5 -3
- package/docs/rules/no-redundant-type-constituents.md +14 -0
- package/docs/rules/no-require-imports.md +24 -1
- package/docs/rules/no-restricted-imports.md +24 -16
- package/docs/rules/no-shadow.md +15 -11
- package/docs/rules/no-this-alias.md +73 -3
- package/docs/rules/no-throw-literal.md +9 -11
- package/docs/rules/no-type-alias.md +55 -48
- package/docs/rules/no-unnecessary-boolean-literal-compare.md +5 -5
- package/docs/rules/no-unnecessary-condition.md +18 -2
- package/docs/rules/no-unnecessary-qualifier.md +1 -1
- package/docs/rules/no-unnecessary-type-arguments.md +7 -1
- package/docs/rules/no-unnecessary-type-assertion.md +2 -2
- package/docs/rules/no-unnecessary-type-constraint.md +1 -1
- package/docs/rules/no-unsafe-argument.md +12 -2
- package/docs/rules/no-unsafe-assignment.md +11 -1
- package/docs/rules/no-unsafe-call.md +10 -0
- package/docs/rules/no-unsafe-declaration-merging.md +5 -0
- package/docs/rules/no-unsafe-enum-comparison.md +15 -10
- package/docs/rules/no-unsafe-member-access.md +11 -1
- package/docs/rules/no-unsafe-return.md +11 -1
- package/docs/rules/no-unsafe-unary-minus.md +52 -0
- package/docs/rules/no-unused-expressions.md +0 -2
- package/docs/rules/no-unused-vars.md +17 -2
- package/docs/rules/no-use-before-define.md +4 -14
- package/docs/rules/no-useless-constructor.md +0 -2
- package/docs/rules/no-useless-empty-export.md +4 -0
- package/docs/rules/no-useless-template-literals.md +57 -0
- package/docs/rules/no-var-requires.md +24 -1
- package/docs/rules/non-nullable-type-assertion-style.md +1 -1
- package/docs/rules/object-curly-spacing.md +0 -2
- package/docs/rules/padding-line-between-statements.md +3 -5
- package/docs/rules/parameter-properties.md +22 -19
- package/docs/rules/prefer-as-const.md +4 -1
- package/docs/rules/prefer-destructuring.md +91 -0
- package/docs/rules/prefer-enum-initializers.md +1 -1
- package/docs/rules/prefer-find.md +39 -0
- package/docs/rules/prefer-for-of.md +3 -5
- package/docs/rules/prefer-function-type.md +1 -1
- package/docs/rules/prefer-includes.md +1 -3
- package/docs/rules/prefer-literal-enum-member.md +6 -4
- package/docs/rules/prefer-namespace-keyword.md +1 -1
- package/docs/rules/prefer-nullish-coalescing.md +27 -15
- package/docs/rules/prefer-optional-chain.md +18 -17
- package/docs/rules/prefer-promise-reject-errors.md +50 -0
- package/docs/rules/prefer-readonly-parameter-types.md +58 -32
- package/docs/rules/prefer-readonly.md +19 -4
- package/docs/rules/prefer-reduce-type-parameter.md +3 -1
- package/docs/rules/prefer-string-starts-ends-with.md +2 -1
- package/docs/rules/prefer-ts-expect-error.md +1 -0
- package/docs/rules/promise-function-async.md +73 -0
- package/docs/rules/quotes.md +0 -2
- package/docs/rules/require-array-sort-compare.md +7 -7
- package/docs/rules/require-await.md +2 -2
- package/docs/rules/restrict-plus-operands.md +16 -16
- package/docs/rules/restrict-template-expressions.md +11 -7
- package/docs/rules/return-await.md +8 -8
- package/docs/rules/semi.md +0 -4
- package/docs/rules/sort-type-constituents.md +62 -0
- package/docs/rules/space-before-blocks.md +5 -4
- package/docs/rules/space-before-function-paren.md +0 -2
- package/docs/rules/strict-boolean-expressions.md +7 -0
- package/docs/rules/switch-exhaustiveness-check.md +127 -8
- package/docs/rules/triple-slash-reference.md +76 -25
- package/docs/rules/type-annotation-spacing.md +8 -8
- package/docs/rules/typedef.md +19 -19
- package/docs/rules/unbound-method.md +4 -2
- package/docs/rules/unified-signatures.md +11 -2
- package/index.d.ts +6 -2
- package/package.json +32 -24
- package/rules.d.ts +46 -0
|
@@ -31,53 +31,131 @@ exports.default = (0, util_1.createRule)({
|
|
|
31
31
|
meta: {
|
|
32
32
|
type: 'suggestion',
|
|
33
33
|
docs: {
|
|
34
|
-
description: 'Require switch-case statements to be exhaustive
|
|
34
|
+
description: 'Require switch-case statements to be exhaustive',
|
|
35
35
|
requiresTypeChecking: true,
|
|
36
36
|
},
|
|
37
37
|
hasSuggestions: true,
|
|
38
|
-
schema: [
|
|
38
|
+
schema: [
|
|
39
|
+
{
|
|
40
|
+
type: 'object',
|
|
41
|
+
properties: {
|
|
42
|
+
allowDefaultCaseForExhaustiveSwitch: {
|
|
43
|
+
description: `If 'true', allow 'default' cases on switch statements with exhaustive cases.`,
|
|
44
|
+
type: 'boolean',
|
|
45
|
+
},
|
|
46
|
+
requireDefaultForNonUnion: {
|
|
47
|
+
description: `If 'true', require a 'default' clause for switches on non-union types.`,
|
|
48
|
+
type: 'boolean',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
additionalProperties: false,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
39
54
|
messages: {
|
|
40
55
|
switchIsNotExhaustive: 'Switch is not exhaustive. Cases not matched: {{missingBranches}}',
|
|
56
|
+
dangerousDefaultCase: 'The switch statement is exhaustive, so the default case is unnecessary.',
|
|
41
57
|
addMissingCases: 'Add branches for missing cases.',
|
|
42
58
|
},
|
|
43
59
|
},
|
|
44
|
-
defaultOptions: [
|
|
45
|
-
|
|
46
|
-
|
|
60
|
+
defaultOptions: [
|
|
61
|
+
{
|
|
62
|
+
allowDefaultCaseForExhaustiveSwitch: true,
|
|
63
|
+
requireDefaultForNonUnion: false,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
create(context, [{ allowDefaultCaseForExhaustiveSwitch, requireDefaultForNonUnion }]) {
|
|
47
67
|
const services = (0, util_1.getParserServices)(context);
|
|
48
68
|
const checker = services.program.getTypeChecker();
|
|
49
69
|
const compilerOptions = services.program.getCompilerOptions();
|
|
50
|
-
function
|
|
70
|
+
function getSwitchMetadata(node) {
|
|
71
|
+
const defaultCase = node.cases.find(switchCase => switchCase.test == null);
|
|
72
|
+
const discriminantType = (0, util_1.getConstrainedTypeAtLocation)(services, node.discriminant);
|
|
73
|
+
const symbolName = discriminantType.getSymbol()?.escapedName;
|
|
74
|
+
const containsNonLiteralType = doesTypeContainNonLiteralType(discriminantType);
|
|
75
|
+
const caseTypes = new Set();
|
|
76
|
+
for (const switchCase of node.cases) {
|
|
77
|
+
// If the `test` property of the switch case is `null`, then we are on a
|
|
78
|
+
// `default` case.
|
|
79
|
+
if (switchCase.test == null) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const caseType = (0, util_1.getConstrainedTypeAtLocation)(services, switchCase.test);
|
|
83
|
+
caseTypes.add(caseType);
|
|
84
|
+
}
|
|
85
|
+
const missingLiteralBranchTypes = [];
|
|
86
|
+
for (const unionPart of tsutils.unionTypeParts(discriminantType)) {
|
|
87
|
+
for (const intersectionPart of tsutils.intersectionTypeParts(unionPart)) {
|
|
88
|
+
if (caseTypes.has(intersectionPart) ||
|
|
89
|
+
!isTypeLiteralLikeType(intersectionPart)) {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
missingLiteralBranchTypes.push(intersectionPart);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
symbolName,
|
|
97
|
+
missingLiteralBranchTypes,
|
|
98
|
+
defaultCase,
|
|
99
|
+
containsNonLiteralType,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function checkSwitchExhaustive(node, switchMetadata) {
|
|
103
|
+
const { missingLiteralBranchTypes, symbolName, defaultCase } = switchMetadata;
|
|
104
|
+
// We only trigger the rule if a `default` case does not exist, since that
|
|
105
|
+
// would disqualify the switch statement from having cases that exactly
|
|
106
|
+
// match the members of a union.
|
|
107
|
+
if (missingLiteralBranchTypes.length > 0 && defaultCase === undefined) {
|
|
108
|
+
context.report({
|
|
109
|
+
node: node.discriminant,
|
|
110
|
+
messageId: 'switchIsNotExhaustive',
|
|
111
|
+
data: {
|
|
112
|
+
missingBranches: missingLiteralBranchTypes
|
|
113
|
+
.map(missingType => tsutils.isTypeFlagSet(missingType, ts.TypeFlags.ESSymbolLike)
|
|
114
|
+
? `typeof ${missingType.getSymbol()?.escapedName}`
|
|
115
|
+
: checker.typeToString(missingType))
|
|
116
|
+
.join(' | '),
|
|
117
|
+
},
|
|
118
|
+
suggest: [
|
|
119
|
+
{
|
|
120
|
+
messageId: 'addMissingCases',
|
|
121
|
+
fix(fixer) {
|
|
122
|
+
return fixSwitch(fixer, node, missingLiteralBranchTypes, symbolName?.toString());
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function fixSwitch(fixer, node, missingBranchTypes, // null means default branch
|
|
130
|
+
symbolName) {
|
|
51
131
|
const lastCase = node.cases.length > 0 ? node.cases[node.cases.length - 1] : null;
|
|
52
132
|
const caseIndent = lastCase
|
|
53
133
|
? ' '.repeat(lastCase.loc.start.column)
|
|
54
|
-
: //
|
|
55
|
-
//
|
|
134
|
+
: // If there are no cases, use indentation of the switch statement and
|
|
135
|
+
// leave it to the user to format it correctly.
|
|
56
136
|
' '.repeat(node.loc.start.column);
|
|
57
137
|
const missingCases = [];
|
|
58
138
|
for (const missingBranchType of missingBranchTypes) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
//
|
|
62
|
-
// type __String = (string & {
|
|
63
|
-
// __escapedIdentifier: void;
|
|
64
|
-
// }) | (void & {
|
|
65
|
-
// __escapedIdentifier: void;
|
|
66
|
-
// }) | InternalSymbolName;
|
|
67
|
-
//
|
|
68
|
-
// The following check fixes it.
|
|
69
|
-
if (missingBranchType.isIntersection()) {
|
|
139
|
+
if (missingBranchType == null) {
|
|
140
|
+
missingCases.push(`default: { throw new Error('default case') }`);
|
|
70
141
|
continue;
|
|
71
142
|
}
|
|
72
143
|
const missingBranchName = missingBranchType.getSymbol()?.escapedName;
|
|
73
|
-
let caseTest =
|
|
144
|
+
let caseTest = tsutils.isTypeFlagSet(missingBranchType, ts.TypeFlags.ESSymbolLike)
|
|
145
|
+
? missingBranchName
|
|
146
|
+
: checker.typeToString(missingBranchType);
|
|
74
147
|
if (symbolName &&
|
|
75
148
|
(missingBranchName || missingBranchName === '') &&
|
|
76
149
|
(0, util_1.requiresQuoting)(missingBranchName.toString(), compilerOptions.target)) {
|
|
77
|
-
|
|
150
|
+
const escapedBranchName = missingBranchName
|
|
151
|
+
.replace(/'/g, "\\'")
|
|
152
|
+
.replace(/\n/g, '\\n')
|
|
153
|
+
.replace(/\r/g, '\\r');
|
|
154
|
+
caseTest = `${symbolName}['${escapedBranchName}']`;
|
|
78
155
|
}
|
|
79
156
|
const errorMessage = `Not implemented yet: ${caseTest} case`;
|
|
80
|
-
|
|
157
|
+
const escapedErrorMessage = errorMessage.replace(/'/g, "\\'");
|
|
158
|
+
missingCases.push(`case ${caseTest}: { throw new Error('${escapedErrorMessage}') }`);
|
|
81
159
|
}
|
|
82
160
|
const fixString = missingCases
|
|
83
161
|
.map(code => `${caseIndent}${code}`)
|
|
@@ -85,44 +163,42 @@ exports.default = (0, util_1.createRule)({
|
|
|
85
163
|
if (lastCase) {
|
|
86
164
|
return fixer.insertTextAfter(lastCase, `\n${fixString}`);
|
|
87
165
|
}
|
|
88
|
-
//
|
|
89
|
-
const openingBrace = sourceCode.getTokenAfter(node.discriminant, util_1.isOpeningBraceToken);
|
|
90
|
-
const closingBrace = sourceCode.getTokenAfter(node.discriminant, util_1.isClosingBraceToken);
|
|
166
|
+
// There were no existing cases.
|
|
167
|
+
const openingBrace = context.sourceCode.getTokenAfter(node.discriminant, util_1.isOpeningBraceToken);
|
|
168
|
+
const closingBrace = context.sourceCode.getTokenAfter(node.discriminant, util_1.isClosingBraceToken);
|
|
91
169
|
return fixer.replaceTextRange([openingBrace.range[0], closingBrace.range[1]], ['{', fixString, `${caseIndent}}`].join('\n'));
|
|
92
170
|
}
|
|
93
|
-
function
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
171
|
+
function checkSwitchUnnecessaryDefaultCase(switchMetadata) {
|
|
172
|
+
if (allowDefaultCaseForExhaustiveSwitch) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const { missingLiteralBranchTypes, defaultCase, containsNonLiteralType } = switchMetadata;
|
|
176
|
+
if (missingLiteralBranchTypes.length === 0 &&
|
|
177
|
+
defaultCase !== undefined &&
|
|
178
|
+
!containsNonLiteralType) {
|
|
179
|
+
context.report({
|
|
180
|
+
node: defaultCase,
|
|
181
|
+
messageId: 'dangerousDefaultCase',
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function checkSwitchNoUnionDefaultCase(node, switchMetadata) {
|
|
186
|
+
if (!requireDefaultForNonUnion) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const { defaultCase, containsNonLiteralType } = switchMetadata;
|
|
190
|
+
if (containsNonLiteralType && defaultCase === undefined) {
|
|
111
191
|
context.report({
|
|
112
192
|
node: node.discriminant,
|
|
113
193
|
messageId: 'switchIsNotExhaustive',
|
|
114
194
|
data: {
|
|
115
|
-
missingBranches:
|
|
116
|
-
.map(missingType => tsutils.isTypeFlagSet(missingType, ts.TypeFlags.ESSymbolLike)
|
|
117
|
-
? `typeof ${missingType.getSymbol()?.escapedName}`
|
|
118
|
-
: checker.typeToString(missingType))
|
|
119
|
-
.join(' | '),
|
|
195
|
+
missingBranches: 'default',
|
|
120
196
|
},
|
|
121
197
|
suggest: [
|
|
122
198
|
{
|
|
123
199
|
messageId: 'addMissingCases',
|
|
124
200
|
fix(fixer) {
|
|
125
|
-
return fixSwitch(fixer, node,
|
|
201
|
+
return fixSwitch(fixer, node, [null]);
|
|
126
202
|
},
|
|
127
203
|
},
|
|
128
204
|
],
|
|
@@ -130,8 +206,35 @@ exports.default = (0, util_1.createRule)({
|
|
|
130
206
|
}
|
|
131
207
|
}
|
|
132
208
|
return {
|
|
133
|
-
SwitchStatement
|
|
209
|
+
SwitchStatement(node) {
|
|
210
|
+
const switchMetadata = getSwitchMetadata(node);
|
|
211
|
+
checkSwitchExhaustive(node, switchMetadata);
|
|
212
|
+
checkSwitchUnnecessaryDefaultCase(switchMetadata);
|
|
213
|
+
checkSwitchNoUnionDefaultCase(node, switchMetadata);
|
|
214
|
+
},
|
|
134
215
|
};
|
|
135
216
|
},
|
|
136
217
|
});
|
|
218
|
+
function isTypeLiteralLikeType(type) {
|
|
219
|
+
return tsutils.isTypeFlagSet(type, ts.TypeFlags.Literal |
|
|
220
|
+
ts.TypeFlags.Undefined |
|
|
221
|
+
ts.TypeFlags.Null |
|
|
222
|
+
ts.TypeFlags.UniqueESSymbol);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* For example:
|
|
226
|
+
*
|
|
227
|
+
* - `"foo" | "bar"` is a type with all literal types.
|
|
228
|
+
* - `"foo" | number` is a type that contains non-literal types.
|
|
229
|
+
* - `"foo" & { bar: 1 }` is a type that contains non-literal types.
|
|
230
|
+
*
|
|
231
|
+
* Default cases are never superfluous in switches with non-literal types.
|
|
232
|
+
*/
|
|
233
|
+
function doesTypeContainNonLiteralType(type) {
|
|
234
|
+
return tsutils
|
|
235
|
+
.unionTypeParts(type)
|
|
236
|
+
.some(type => tsutils
|
|
237
|
+
.intersectionTypeParts(type)
|
|
238
|
+
.every(subType => !isTypeLiteralLikeType(subType)));
|
|
239
|
+
}
|
|
137
240
|
//# sourceMappingURL=switch-exhaustiveness-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAwC;AACxC,+CAAiC;AAEjC,kCAOiB;
|
|
1
|
+
{"version":3,"file":"switch-exhaustiveness-check.js","sourceRoot":"","sources":["../../src/rules/switch-exhaustiveness-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
const utils_1 = require("@typescript-eslint/utils");
|
|
27
|
-
const
|
|
28
|
-
exports.default =
|
|
4
|
+
const util_1 = require("../util");
|
|
5
|
+
exports.default = (0, util_1.createRule)({
|
|
29
6
|
name: 'triple-slash-reference',
|
|
30
7
|
meta: {
|
|
31
8
|
type: 'suggestion',
|
|
@@ -66,7 +43,6 @@ exports.default = util.createRule({
|
|
|
66
43
|
],
|
|
67
44
|
create(context, [{ lib, path, types }]) {
|
|
68
45
|
let programNode;
|
|
69
|
-
const sourceCode = context.getSourceCode();
|
|
70
46
|
const references = [];
|
|
71
47
|
function hasMatchingReference(source) {
|
|
72
48
|
references.forEach(reference => {
|
|
@@ -101,7 +77,7 @@ exports.default = util.createRule({
|
|
|
101
77
|
}
|
|
102
78
|
programNode = node;
|
|
103
79
|
const referenceRegExp = /^\/\s*<reference\s*(types|path|lib)\s*=\s*["|'](.*)["|']/;
|
|
104
|
-
const commentsBefore = sourceCode.getCommentsBefore(programNode);
|
|
80
|
+
const commentsBefore = context.sourceCode.getCommentsBefore(programNode);
|
|
105
81
|
commentsBefore.forEach(comment => {
|
|
106
82
|
if (comment.type !== utils_1.AST_TOKEN_TYPES.Line) {
|
|
107
83
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"triple-slash-reference.js","sourceRoot":"","sources":["../../src/rules/triple-slash-reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const util = __importStar(require("../util"));
|
|
27
3
|
const util_1 = require("../util");
|
|
28
4
|
function createRules(options) {
|
|
29
5
|
const globals = {
|
|
@@ -34,20 +10,20 @@ function createRules(options) {
|
|
|
34
10
|
const colon = {
|
|
35
11
|
...{ before: false, after: true },
|
|
36
12
|
...globals,
|
|
37
|
-
...override
|
|
13
|
+
...override.colon,
|
|
38
14
|
};
|
|
39
15
|
const arrow = {
|
|
40
16
|
...{ before: true, after: true },
|
|
41
17
|
...globals,
|
|
42
|
-
...override
|
|
18
|
+
...override.arrow,
|
|
43
19
|
};
|
|
44
20
|
return {
|
|
45
21
|
colon: colon,
|
|
46
22
|
arrow: arrow,
|
|
47
|
-
variable: { ...colon, ...override
|
|
48
|
-
property: { ...colon, ...override
|
|
49
|
-
parameter: { ...colon, ...override
|
|
50
|
-
returnType: { ...colon, ...override
|
|
23
|
+
variable: { ...colon, ...override.variable },
|
|
24
|
+
property: { ...colon, ...override.property },
|
|
25
|
+
parameter: { ...colon, ...override.parameter },
|
|
26
|
+
returnType: { ...colon, ...override.returnType },
|
|
51
27
|
};
|
|
52
28
|
}
|
|
53
29
|
function getIdentifierRules(rules, node) {
|
|
@@ -58,12 +34,10 @@ function getIdentifierRules(rules, node) {
|
|
|
58
34
|
else if ((0, util_1.isFunctionOrFunctionType)(scope)) {
|
|
59
35
|
return rules.parameter;
|
|
60
36
|
}
|
|
61
|
-
|
|
62
|
-
return rules.colon;
|
|
63
|
-
}
|
|
37
|
+
return rules.colon;
|
|
64
38
|
}
|
|
65
39
|
function getRules(rules, node) {
|
|
66
|
-
const scope = node
|
|
40
|
+
const scope = node.parent.parent;
|
|
67
41
|
if ((0, util_1.isTSFunctionType)(scope) || (0, util_1.isTSConstructorType)(scope)) {
|
|
68
42
|
return rules.arrow;
|
|
69
43
|
}
|
|
@@ -76,13 +50,13 @@ function getRules(rules, node) {
|
|
|
76
50
|
else if ((0, util_1.isFunction)(scope)) {
|
|
77
51
|
return rules.returnType;
|
|
78
52
|
}
|
|
79
|
-
|
|
80
|
-
return rules.colon;
|
|
81
|
-
}
|
|
53
|
+
return rules.colon;
|
|
82
54
|
}
|
|
83
|
-
exports.default =
|
|
55
|
+
exports.default = (0, util_1.createRule)({
|
|
84
56
|
name: 'type-annotation-spacing',
|
|
85
57
|
meta: {
|
|
58
|
+
deprecated: true,
|
|
59
|
+
replacedBy: ['@stylistic/ts/type-annotation-spacing'],
|
|
86
60
|
type: 'layout',
|
|
87
61
|
docs: {
|
|
88
62
|
description: 'Require consistent spacing around type annotations',
|
|
@@ -135,7 +109,6 @@ exports.default = util.createRule({
|
|
|
135
109
|
],
|
|
136
110
|
create(context, [options]) {
|
|
137
111
|
const punctuators = [':', '=>'];
|
|
138
|
-
const sourceCode = context.getSourceCode();
|
|
139
112
|
const ruleSet = createRules(options);
|
|
140
113
|
/**
|
|
141
114
|
* Checks if there's proper spacing around type annotations (no space
|
|
@@ -143,18 +116,16 @@ exports.default = util.createRule({
|
|
|
143
116
|
*/
|
|
144
117
|
function checkTypeAnnotationSpacing(typeAnnotation) {
|
|
145
118
|
const nextToken = typeAnnotation;
|
|
146
|
-
const punctuatorTokenEnd = sourceCode.getTokenBefore(nextToken);
|
|
119
|
+
const punctuatorTokenEnd = context.sourceCode.getTokenBefore(nextToken);
|
|
147
120
|
let punctuatorTokenStart = punctuatorTokenEnd;
|
|
148
|
-
let previousToken = sourceCode.getTokenBefore(punctuatorTokenEnd);
|
|
121
|
+
let previousToken = context.sourceCode.getTokenBefore(punctuatorTokenEnd);
|
|
149
122
|
let type = punctuatorTokenEnd.value;
|
|
150
123
|
if (!punctuators.includes(type)) {
|
|
151
124
|
return;
|
|
152
125
|
}
|
|
153
126
|
const { before, after } = getRules(ruleSet, typeAnnotation);
|
|
154
127
|
if (type === ':' && previousToken.value === '?') {
|
|
155
|
-
if (
|
|
156
|
-
// eslint-disable-next-line deprecation/deprecation -- TODO - switch once our min ESLint version is 6.7.0
|
|
157
|
-
sourceCode.isSpaceBetweenTokens(previousToken, punctuatorTokenStart)) {
|
|
128
|
+
if (context.sourceCode.isSpaceBetween(previousToken, punctuatorTokenStart)) {
|
|
158
129
|
context.report({
|
|
159
130
|
node: punctuatorTokenStart,
|
|
160
131
|
messageId: 'unexpectedSpaceBetween',
|
|
@@ -173,12 +144,12 @@ exports.default = util.createRule({
|
|
|
173
144
|
// shift the start to the ?
|
|
174
145
|
type = '?:';
|
|
175
146
|
punctuatorTokenStart = previousToken;
|
|
176
|
-
previousToken = sourceCode.getTokenBefore(previousToken);
|
|
147
|
+
previousToken = context.sourceCode.getTokenBefore(previousToken);
|
|
177
148
|
// handle the +/- modifiers for optional modification operators
|
|
178
149
|
if (previousToken.value === '+' || previousToken.value === '-') {
|
|
179
150
|
type = `${previousToken.value}?:`;
|
|
180
151
|
punctuatorTokenStart = previousToken;
|
|
181
|
-
previousToken = sourceCode.getTokenBefore(previousToken);
|
|
152
|
+
previousToken = context.sourceCode.getTokenBefore(previousToken);
|
|
182
153
|
}
|
|
183
154
|
}
|
|
184
155
|
const previousDelta = punctuatorTokenStart.range[0] - previousToken.range[1];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-annotation-spacing.js","sourceRoot":"","sources":["../../src/rules/type-annotation-spacing.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/typedef.js
CHANGED
|
@@ -1,31 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
const utils_1 = require("@typescript-eslint/utils");
|
|
27
|
-
const
|
|
28
|
-
exports.default =
|
|
4
|
+
const util_1 = require("../util");
|
|
5
|
+
exports.default = (0, util_1.createRule)({
|
|
29
6
|
name: 'typedef',
|
|
30
7
|
meta: {
|
|
31
8
|
docs: {
|
|
@@ -105,8 +82,7 @@ exports.default = util.createRule({
|
|
|
105
82
|
case utils_1.AST_NODE_TYPES.TSParameterProperty:
|
|
106
83
|
annotationNode = param.parameter;
|
|
107
84
|
// Check TS parameter property with default value like `constructor(private param: string = 'something') {}`
|
|
108
|
-
if (annotationNode
|
|
109
|
-
annotationNode.type === utils_1.AST_NODE_TYPES.AssignmentPattern) {
|
|
85
|
+
if (annotationNode.type === utils_1.AST_NODE_TYPES.AssignmentPattern) {
|
|
110
86
|
annotationNode = annotationNode.left;
|
|
111
87
|
}
|
|
112
88
|
break;
|
|
@@ -114,7 +90,7 @@ exports.default = util.createRule({
|
|
|
114
90
|
annotationNode = param;
|
|
115
91
|
break;
|
|
116
92
|
}
|
|
117
|
-
if (
|
|
93
|
+
if (!annotationNode.typeAnnotation) {
|
|
118
94
|
report(param, getNodeName(param));
|
|
119
95
|
}
|
|
120
96
|
}
|
|
@@ -139,14 +115,14 @@ exports.default = util.createRule({
|
|
|
139
115
|
return {
|
|
140
116
|
...(arrayDestructuring && {
|
|
141
117
|
ArrayPattern(node) {
|
|
142
|
-
if (node.parent
|
|
118
|
+
if (node.parent.type === utils_1.AST_NODE_TYPES.RestElement &&
|
|
143
119
|
node.parent.typeAnnotation) {
|
|
144
120
|
return;
|
|
145
121
|
}
|
|
146
122
|
if (!node.typeAnnotation &&
|
|
147
123
|
!isForOfStatementContext(node) &&
|
|
148
124
|
!isAncestorHasTypeAnnotation(node) &&
|
|
149
|
-
node.parent
|
|
125
|
+
node.parent.type !== utils_1.AST_NODE_TYPES.AssignmentExpression) {
|
|
150
126
|
report(node);
|
|
151
127
|
}
|
|
152
128
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typedef.js","sourceRoot":"","sources":["../../src/rules/typedef.ts"],"names":[],"mappings":"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"}
|