@depup/typescript-eslint__eslint-plugin 8.57.1-depup.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/LICENSE +21 -0
- package/README.md +25 -0
- package/changes.json +5 -0
- package/dist/configs/eslint-recommended-raw.d.ts +10 -0
- package/dist/configs/eslint-recommended-raw.js +46 -0
- package/dist/configs/eslintrc/all.d.ts +159 -0
- package/dist/configs/eslintrc/all.js +165 -0
- package/dist/configs/eslintrc/base.d.ts +8 -0
- package/dist/configs/eslintrc/base.js +6 -0
- package/dist/configs/eslintrc/disable-type-checked.d.ts +71 -0
- package/dist/configs/eslintrc/disable-type-checked.js +73 -0
- package/dist/configs/eslintrc/eslint-recommended.d.ts +12 -0
- package/dist/configs/eslintrc/eslint-recommended.js +13 -0
- package/dist/configs/eslintrc/recommended-type-checked-only.d.ts +33 -0
- package/dist/configs/eslintrc/recommended-type-checked-only.js +39 -0
- package/dist/configs/eslintrc/recommended-type-checked.d.ts +56 -0
- package/dist/configs/eslintrc/recommended-type-checked.js +62 -0
- package/dist/configs/eslintrc/recommended.d.ts +29 -0
- package/dist/configs/eslintrc/recommended.js +35 -0
- package/dist/configs/eslintrc/strict-type-checked-only.d.ts +64 -0
- package/dist/configs/eslintrc/strict-type-checked-only.js +79 -0
- package/dist/configs/eslintrc/strict-type-checked.d.ts +98 -0
- package/dist/configs/eslintrc/strict-type-checked.js +114 -0
- package/dist/configs/eslintrc/strict.d.ts +40 -0
- package/dist/configs/eslintrc/strict.js +47 -0
- package/dist/configs/eslintrc/stylistic-type-checked-only.d.ts +15 -0
- package/dist/configs/eslintrc/stylistic-type-checked-only.js +21 -0
- package/dist/configs/eslintrc/stylistic-type-checked.d.ts +29 -0
- package/dist/configs/eslintrc/stylistic-type-checked.js +35 -0
- package/dist/configs/eslintrc/stylistic.d.ts +20 -0
- package/dist/configs/eslintrc/stylistic.js +26 -0
- package/dist/configs/flat/all.d.ts +7 -0
- package/dist/configs/flat/all.js +179 -0
- package/dist/configs/flat/base.d.ts +8 -0
- package/dist/configs/flat/base.js +17 -0
- package/dist/configs/flat/disable-type-checked.d.ts +7 -0
- package/dist/configs/flat/disable-type-checked.js +81 -0
- package/dist/configs/flat/eslint-recommended.d.ts +9 -0
- package/dist/configs/flat/eslint-recommended.js +16 -0
- package/dist/configs/flat/recommended-type-checked-only.d.ts +7 -0
- package/dist/configs/flat/recommended-type-checked-only.js +53 -0
- package/dist/configs/flat/recommended-type-checked.d.ts +7 -0
- package/dist/configs/flat/recommended-type-checked.js +76 -0
- package/dist/configs/flat/recommended.d.ts +7 -0
- package/dist/configs/flat/recommended.js +49 -0
- package/dist/configs/flat/strict-type-checked-only.d.ts +7 -0
- package/dist/configs/flat/strict-type-checked-only.js +93 -0
- package/dist/configs/flat/strict-type-checked.d.ts +7 -0
- package/dist/configs/flat/strict-type-checked.js +128 -0
- package/dist/configs/flat/strict.d.ts +7 -0
- package/dist/configs/flat/strict.js +61 -0
- package/dist/configs/flat/stylistic-type-checked-only.d.ts +7 -0
- package/dist/configs/flat/stylistic-type-checked-only.js +35 -0
- package/dist/configs/flat/stylistic-type-checked.d.ts +7 -0
- package/dist/configs/flat/stylistic-type-checked.js +49 -0
- package/dist/configs/flat/stylistic.d.ts +7 -0
- package/dist/configs/flat/stylistic.js +40 -0
- package/dist/index.d.ts +1128 -0
- package/dist/index.js +6 -0
- package/dist/raw-plugin.d.ts +1152 -0
- package/dist/raw-plugin.js +122 -0
- package/dist/rules/adjacent-overload-signatures.d.ts +4 -0
- package/dist/rules/adjacent-overload-signatures.js +124 -0
- package/dist/rules/array-type.d.ts +12 -0
- package/dist/rules/array-type.js +232 -0
- package/dist/rules/await-thenable.d.ts +6 -0
- package/dist/rules/await-thenable.js +228 -0
- package/dist/rules/ban-ts-comment.d.ts +17 -0
- package/dist/rules/ban-ts-comment.js +195 -0
- package/dist/rules/ban-tslint-comment.d.ts +4 -0
- package/dist/rules/ban-tslint-comment.js +53 -0
- package/dist/rules/class-literal-property-style.d.ts +7 -0
- package/dist/rules/class-literal-property-style.js +160 -0
- package/dist/rules/class-methods-use-this.d.ts +13 -0
- package/dist/rules/class-methods-use-this.js +219 -0
- package/dist/rules/consistent-generic-constructors.d.ts +6 -0
- package/dist/rules/consistent-generic-constructors.js +126 -0
- package/dist/rules/consistent-indexed-object-style.d.ts +7 -0
- package/dist/rules/consistent-indexed-object-style.js +256 -0
- package/dist/rules/consistent-return.d.ts +18 -0
- package/dist/rules/consistent-return.js +135 -0
- package/dist/rules/consistent-type-assertions.d.ts +14 -0
- package/dist/rules/consistent-type-assertions.js +256 -0
- package/dist/rules/consistent-type-definitions.d.ts +5 -0
- package/dist/rules/consistent-type-definitions.js +100 -0
- package/dist/rules/consistent-type-exports.d.ts +11 -0
- package/dist/rules/consistent-type-exports.js +335 -0
- package/dist/rules/consistent-type-imports.d.ts +15 -0
- package/dist/rules/consistent-type-imports.js +608 -0
- package/dist/rules/default-param-last.d.ts +4 -0
- package/dist/rules/default-param-last.js +68 -0
- package/dist/rules/dot-notation.d.ts +23 -0
- package/dist/rules/dot-notation.js +139 -0
- package/dist/rules/enum-utils/shared.d.ts +36 -0
- package/dist/rules/enum-utils/shared.js +121 -0
- package/dist/rules/explicit-function-return-type.d.ts +17 -0
- package/dist/rules/explicit-function-return-type.js +179 -0
- package/dist/rules/explicit-member-accessibility.d.ts +19 -0
- package/dist/rules/explicit-member-accessibility.js +299 -0
- package/dist/rules/explicit-module-boundary-types.d.ts +15 -0
- package/dist/rules/explicit-module-boundary-types.js +386 -0
- package/dist/rules/index.d.ts +448 -0
- package/dist/rules/index.js +275 -0
- package/dist/rules/init-declarations.d.ts +15 -0
- package/dist/rules/init-declarations.js +105 -0
- package/dist/rules/max-params.d.ts +25 -0
- package/dist/rules/max-params.js +72 -0
- package/dist/rules/member-ordering.d.ts +33 -0
- package/dist/rules/member-ordering.js +833 -0
- package/dist/rules/method-signature-style.d.ts +6 -0
- package/dist/rules/method-signature-style.js +186 -0
- package/dist/rules/naming-convention-utils/enums.d.ts +79 -0
- package/dist/rules/naming-convention-utils/enums.js +102 -0
- package/dist/rules/naming-convention-utils/format.d.ts +2 -0
- package/dist/rules/naming-convention-utils/format.js +89 -0
- package/dist/rules/naming-convention-utils/index.d.ts +6 -0
- package/dist/rules/naming-convention-utils/index.js +11 -0
- package/dist/rules/naming-convention-utils/parse-options.d.ts +2 -0
- package/dist/rules/naming-convention-utils/parse-options.js +69 -0
- package/dist/rules/naming-convention-utils/schema.d.ts +2 -0
- package/dist/rules/naming-convention-utils/schema.js +305 -0
- package/dist/rules/naming-convention-utils/shared.d.ts +5 -0
- package/dist/rules/naming-convention-utils/shared.js +16 -0
- package/dist/rules/naming-convention-utils/types.d.ts +39 -0
- package/dist/rules/naming-convention-utils/types.js +2 -0
- package/dist/rules/naming-convention-utils/validator.d.ts +3 -0
- package/dist/rules/naming-convention-utils/validator.js +349 -0
- package/dist/rules/naming-convention.d.ts +8 -0
- package/dist/rules/naming-convention.js +505 -0
- package/dist/rules/no-array-constructor.d.ts +4 -0
- package/dist/rules/no-array-constructor.js +62 -0
- package/dist/rules/no-array-delete.d.ts +6 -0
- package/dist/rules/no-array-delete.js +80 -0
- package/dist/rules/no-base-to-string.d.ts +11 -0
- package/dist/rules/no-base-to-string.js +324 -0
- package/dist/rules/no-confusing-non-null-assertion.d.ts +6 -0
- package/dist/rules/no-confusing-non-null-assertion.js +142 -0
- package/dist/rules/no-confusing-void-expression.d.ts +13 -0
- package/dist/rules/no-confusing-void-expression.js +357 -0
- package/dist/rules/no-deprecated.d.ts +11 -0
- package/dist/rules/no-deprecated.js +402 -0
- package/dist/rules/no-dupe-class-members.d.ts +14 -0
- package/dist/rules/no-dupe-class-members.js +39 -0
- package/dist/rules/no-duplicate-enum-values.d.ts +4 -0
- package/dist/rules/no-duplicate-enum-values.js +83 -0
- package/dist/rules/no-duplicate-type-constituents.d.ts +11 -0
- package/dist/rules/no-duplicate-type-constituents.js +219 -0
- package/dist/rules/no-dynamic-delete.d.ts +4 -0
- package/dist/rules/no-dynamic-delete.js +42 -0
- package/dist/rules/no-empty-function.d.ts +16 -0
- package/dist/rules/no-empty-function.js +134 -0
- package/dist/rules/no-empty-interface.d.ts +11 -0
- package/dist/rules/no-empty-interface.js +102 -0
- package/dist/rules/no-empty-object-type.d.ts +15 -0
- package/dist/rules/no-empty-object-type.js +143 -0
- package/dist/rules/no-explicit-any.d.ts +12 -0
- package/dist/rules/no-explicit-any.js +197 -0
- package/dist/rules/no-extra-non-null-assertion.d.ts +4 -0
- package/dist/rules/no-extra-non-null-assertion.js +35 -0
- package/dist/rules/no-extraneous-class.d.ts +13 -0
- package/dist/rules/no-extraneous-class.js +120 -0
- package/dist/rules/no-floating-promises.d.ts +16 -0
- package/dist/rules/no-floating-promises.js +365 -0
- package/dist/rules/no-for-in-array.d.ts +4 -0
- package/dist/rules/no-for-in-array.js +86 -0
- package/dist/rules/no-implied-eval.d.ts +4 -0
- package/dist/rules/no-implied-eval.js +152 -0
- package/dist/rules/no-import-type-side-effects.d.ts +7 -0
- package/dist/rules/no-import-type-side-effects.js +53 -0
- package/dist/rules/no-inferrable-types.d.ts +11 -0
- package/dist/rules/no-inferrable-types.js +182 -0
- package/dist/rules/no-invalid-this.d.ts +15 -0
- package/dist/rules/no-invalid-this.js +75 -0
- package/dist/rules/no-invalid-void-type.d.ts +9 -0
- package/dist/rules/no-invalid-void-type.js +210 -0
- package/dist/rules/no-loop-func.d.ts +13 -0
- package/dist/rules/no-loop-func.js +187 -0
- package/dist/rules/no-loss-of-precision.d.ts +9 -0
- package/dist/rules/no-loss-of-precision.js +35 -0
- package/dist/rules/no-magic-numbers.d.ts +29 -0
- package/dist/rules/no-magic-numbers.js +248 -0
- package/dist/rules/no-meaningless-void-operator.d.ts +10 -0
- package/dist/rules/no-meaningless-void-operator.js +102 -0
- package/dist/rules/no-misused-new.d.ts +4 -0
- package/dist/rules/no-misused-new.js +81 -0
- package/dist/rules/no-misused-promises.d.ts +21 -0
- package/dist/rules/no-misused-promises.js +765 -0
- package/dist/rules/no-misused-spread.d.ts +12 -0
- package/dist/rules/no-misused-spread.js +260 -0
- package/dist/rules/no-mixed-enums.d.ts +4 -0
- package/dist/rules/no-mixed-enums.js +200 -0
- package/dist/rules/no-namespace.d.ts +11 -0
- package/dist/rules/no-namespace.js +60 -0
- package/dist/rules/no-non-null-asserted-nullish-coalescing.d.ts +5 -0
- package/dist/rules/no-non-null-asserted-nullish-coalescing.js +73 -0
- package/dist/rules/no-non-null-asserted-optional-chain.d.ts +5 -0
- package/dist/rules/no-non-null-asserted-optional-chain.js +65 -0
- package/dist/rules/no-non-null-assertion.d.ts +6 -0
- package/dist/rules/no-non-null-assertion.js +93 -0
- package/dist/rules/no-redeclare.d.ts +12 -0
- package/dist/rules/no-redeclare.js +199 -0
- package/dist/rules/no-redundant-type-constituents.d.ts +4 -0
- package/dist/rules/no-redundant-type-constituents.js +431 -0
- package/dist/rules/no-require-imports.d.ts +11 -0
- package/dist/rules/no-require-imports.js +115 -0
- package/dist/rules/no-restricted-imports.d.ts +9 -0
- package/dist/rules/no-restricted-imports.js +243 -0
- package/dist/rules/no-restricted-types.d.ts +16 -0
- package/dist/rules/no-restricted-types.js +165 -0
- package/dist/rules/no-shadow.d.ts +16 -0
- package/dist/rules/no-shadow.js +521 -0
- package/dist/rules/no-this-alias.d.ts +11 -0
- package/dist/rules/no-this-alias.js +66 -0
- package/dist/rules/no-type-alias.d.ts +18 -0
- package/dist/rules/no-type-alias.js +268 -0
- package/dist/rules/no-unnecessary-boolean-literal-compare.d.ts +12 -0
- package/dist/rules/no-unnecessary-boolean-literal-compare.js +263 -0
- package/dist/rules/no-unnecessary-condition.d.ts +14 -0
- package/dist/rules/no-unnecessary-condition.js +675 -0
- package/dist/rules/no-unnecessary-parameter-property-assignment.d.ts +4 -0
- package/dist/rules/no-unnecessary-parameter-property-assignment.js +148 -0
- package/dist/rules/no-unnecessary-qualifier.d.ts +4 -0
- package/dist/rules/no-unnecessary-qualifier.js +156 -0
- package/dist/rules/no-unnecessary-template-expression.d.ts +6 -0
- package/dist/rules/no-unnecessary-template-expression.js +361 -0
- package/dist/rules/no-unnecessary-type-arguments.d.ts +5 -0
- package/dist/rules/no-unnecessary-type-arguments.js +197 -0
- package/dist/rules/no-unnecessary-type-assertion.d.ts +11 -0
- package/dist/rules/no-unnecessary-type-assertion.js +353 -0
- package/dist/rules/no-unnecessary-type-constraint.d.ts +5 -0
- package/dist/rules/no-unnecessary-type-constraint.js +119 -0
- package/dist/rules/no-unnecessary-type-conversion.d.ts +5 -0
- package/dist/rules/no-unnecessary-type-conversion.js +356 -0
- package/dist/rules/no-unnecessary-type-parameters.d.ts +5 -0
- package/dist/rules/no-unnecessary-type-parameters.js +422 -0
- package/dist/rules/no-unsafe-argument.d.ts +5 -0
- package/dist/rules/no-unsafe-argument.js +272 -0
- package/dist/rules/no-unsafe-assignment.d.ts +4 -0
- package/dist/rules/no-unsafe-assignment.js +322 -0
- package/dist/rules/no-unsafe-call.d.ts +5 -0
- package/dist/rules/no-unsafe-call.js +136 -0
- package/dist/rules/no-unsafe-declaration-merging.d.ts +4 -0
- package/dist/rules/no-unsafe-declaration-merging.js +54 -0
- package/dist/rules/no-unsafe-enum-comparison.d.ts +5 -0
- package/dist/rules/no-unsafe-enum-comparison.js +192 -0
- package/dist/rules/no-unsafe-function-type.d.ts +4 -0
- package/dist/rules/no-unsafe-function-type.js +45 -0
- package/dist/rules/no-unsafe-member-access.d.ts +10 -0
- package/dist/rules/no-unsafe-member-access.js +183 -0
- package/dist/rules/no-unsafe-return.d.ts +4 -0
- package/dist/rules/no-unsafe-return.js +183 -0
- package/dist/rules/no-unsafe-type-assertion.d.ts +4 -0
- package/dist/rules/no-unsafe-type-assertion.js +158 -0
- package/dist/rules/no-unsafe-unary-minus.d.ts +6 -0
- package/dist/rules/no-unsafe-unary-minus.js +78 -0
- package/dist/rules/no-unused-expressions.d.ts +19 -0
- package/dist/rules/no-unused-expressions.js +64 -0
- package/dist/rules/no-unused-private-class-members.d.ts +6 -0
- package/dist/rules/no-unused-private-class-members.js +44 -0
- package/dist/rules/no-unused-vars.d.ts +24 -0
- package/dist/rules/no-unused-vars.js +1033 -0
- package/dist/rules/no-use-before-define.d.ts +16 -0
- package/dist/rules/no-use-before-define.js +303 -0
- package/dist/rules/no-useless-constructor.d.ts +11 -0
- package/dist/rules/no-useless-constructor.js +57 -0
- package/dist/rules/no-useless-default-assignment.d.ts +11 -0
- package/dist/rules/no-useless-default-assignment.js +318 -0
- package/dist/rules/no-useless-empty-export.d.ts +4 -0
- package/dist/rules/no-useless-empty-export.js +70 -0
- package/dist/rules/no-var-requires.d.ts +10 -0
- package/dist/rules/no-var-requires.js +83 -0
- package/dist/rules/no-wrapper-object-types.d.ts +5 -0
- package/dist/rules/no-wrapper-object-types.js +60 -0
- package/dist/rules/non-nullable-type-assertion-style.d.ts +4 -0
- package/dist/rules/non-nullable-type-assertion-style.js +132 -0
- package/dist/rules/only-throw-error.d.ts +14 -0
- package/dist/rules/only-throw-error.js +158 -0
- package/dist/rules/parameter-properties.d.ts +13 -0
- package/dist/rules/parameter-properties.js +164 -0
- package/dist/rules/prefer-as-const.d.ts +5 -0
- package/dist/rules/prefer-as-const.js +72 -0
- package/dist/rules/prefer-destructuring.d.ts +19 -0
- package/dist/rules/prefer-destructuring.js +216 -0
- package/dist/rules/prefer-enum-initializers.d.ts +6 -0
- package/dist/rules/prefer-enum-initializers.js +62 -0
- package/dist/rules/prefer-find.d.ts +5 -0
- package/dist/rules/prefer-find.js +247 -0
- package/dist/rules/prefer-for-of.d.ts +5 -0
- package/dist/rules/prefer-for-of.js +115 -0
- package/dist/rules/prefer-function-type.d.ts +9 -0
- package/dist/rules/prefer-function-type.js +186 -0
- package/dist/rules/prefer-includes.d.ts +5 -0
- package/dist/rules/prefer-includes.js +242 -0
- package/dist/rules/prefer-literal-enum-member.d.ts +6 -0
- package/dist/rules/prefer-literal-enum-member.js +116 -0
- package/dist/rules/prefer-namespace-keyword.d.ts +4 -0
- package/dist/rules/prefer-namespace-keyword.js +42 -0
- package/dist/rules/prefer-nullish-coalescing.d.ts +22 -0
- package/dist/rules/prefer-nullish-coalescing.js +647 -0
- package/dist/rules/prefer-optional-chain-utils/PreferOptionalChainOptions.d.ts +11 -0
- package/dist/rules/prefer-optional-chain-utils/PreferOptionalChainOptions.js +2 -0
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.d.ts +7 -0
- package/dist/rules/prefer-optional-chain-utils/analyzeChain.js +569 -0
- package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.d.ts +6 -0
- package/dist/rules/prefer-optional-chain-utils/checkNullishAndReport.js +45 -0
- package/dist/rules/prefer-optional-chain-utils/compareNodes.d.ts +15 -0
- package/dist/rules/prefer-optional-chain-utils/compareNodes.js +326 -0
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.d.ts +61 -0
- package/dist/rules/prefer-optional-chain-utils/gatherLogicalOperands.js +411 -0
- package/dist/rules/prefer-optional-chain.d.ts +5 -0
- package/dist/rules/prefer-optional-chain.js +150 -0
- package/dist/rules/prefer-promise-reject-errors.d.ts +14 -0
- package/dist/rules/prefer-promise-reject-errors.js +124 -0
- package/dist/rules/prefer-readonly-parameter-types.d.ts +14 -0
- package/dist/rules/prefer-readonly-parameter-types.js +89 -0
- package/dist/rules/prefer-readonly.d.ts +10 -0
- package/dist/rules/prefer-readonly.js +439 -0
- package/dist/rules/prefer-reduce-type-parameter.d.ts +4 -0
- package/dist/rules/prefer-reduce-type-parameter.js +114 -0
- package/dist/rules/prefer-regexp-exec.d.ts +4 -0
- package/dist/rules/prefer-regexp-exec.js +178 -0
- package/dist/rules/prefer-return-this-type.d.ts +4 -0
- package/dist/rules/prefer-return-this-type.js +154 -0
- package/dist/rules/prefer-string-starts-ends-with.d.ts +12 -0
- package/dist/rules/prefer-string-starts-ends-with.js +512 -0
- package/dist/rules/prefer-ts-expect-error.d.ts +5 -0
- package/dist/rules/prefer-ts-expect-error.js +71 -0
- package/dist/rules/promise-function-async.d.ts +15 -0
- package/dist/rules/promise-function-async.js +204 -0
- package/dist/rules/related-getter-setter-pairs.d.ts +4 -0
- package/dist/rules/related-getter-setter-pairs.js +71 -0
- package/dist/rules/require-array-sort-compare.d.ts +10 -0
- package/dist/rules/require-array-sort-compare.js +63 -0
- package/dist/rules/require-await.d.ts +4 -0
- package/dist/rules/require-await.js +263 -0
- package/dist/rules/restrict-plus-operands.d.ts +15 -0
- package/dist/rules/restrict-plus-operands.js +231 -0
- package/dist/rules/restrict-template-expressions.d.ts +19 -0
- package/dist/rules/restrict-template-expressions.js +119 -0
- package/dist/rules/return-await.d.ts +5 -0
- package/dist/rules/return-await.js +363 -0
- package/dist/rules/sort-type-constituents.d.ts +14 -0
- package/dist/rules/sort-type-constituents.js +272 -0
- package/dist/rules/strict-boolean-expressions.d.ts +19 -0
- package/dist/rules/strict-boolean-expressions.js +882 -0
- package/dist/rules/strict-void-return.d.ts +10 -0
- package/dist/rules/strict-void-return.js +374 -0
- package/dist/rules/switch-exhaustiveness-check.d.ts +33 -0
- package/dist/rules/switch-exhaustiveness-check.js +291 -0
- package/dist/rules/triple-slash-reference.d.ts +12 -0
- package/dist/rules/triple-slash-reference.js +110 -0
- package/dist/rules/typedef.d.ts +16 -0
- package/dist/rules/typedef.js +239 -0
- package/dist/rules/unbound-method.d.ts +9 -0
- package/dist/rules/unbound-method.js +334 -0
- package/dist/rules/unified-signatures.d.ts +11 -0
- package/dist/rules/unified-signatures.js +465 -0
- package/dist/rules/use-unknown-in-catch-callback-variable.d.ts +6 -0
- package/dist/rules/use-unknown-in-catch-callback-variable.js +261 -0
- package/dist/util/assertionFunctionUtils.d.ts +16 -0
- package/dist/util/assertionFunctionUtils.js +116 -0
- package/dist/util/astUtils.d.ts +17 -0
- package/dist/util/astUtils.js +143 -0
- package/dist/util/baseTypeUtils.d.ts +13 -0
- package/dist/util/baseTypeUtils.js +75 -0
- package/dist/util/class-scope-analyzer/classScopeAnalyzer.d.ts +52 -0
- package/dist/util/class-scope-analyzer/classScopeAnalyzer.js +566 -0
- package/dist/util/class-scope-analyzer/extractComputedName.d.ts +17 -0
- package/dist/util/class-scope-analyzer/extractComputedName.js +70 -0
- package/dist/util/class-scope-analyzer/types.d.ts +12 -0
- package/dist/util/class-scope-analyzer/types.js +10 -0
- package/dist/util/collectUnusedVariables.d.ts +15 -0
- package/dist/util/collectUnusedVariables.js +598 -0
- package/dist/util/createRule.d.ts +5 -0
- package/dist/util/createRule.js +5 -0
- package/dist/util/escapeRegExp.d.ts +1 -0
- package/dist/util/escapeRegExp.js +14 -0
- package/dist/util/explicitReturnTypeUtils.d.ts +47 -0
- package/dist/util/explicitReturnTypeUtils.js +238 -0
- package/dist/util/getBaseTypesOfClassMember.d.ts +11 -0
- package/dist/util/getBaseTypesOfClassMember.js +31 -0
- package/dist/util/getConstraintInfo.d.ts +35 -0
- package/dist/util/getConstraintInfo.js +70 -0
- package/dist/util/getESLintCoreRule.d.ts +27 -0
- package/dist/util/getESLintCoreRule.js +16 -0
- package/dist/util/getFixOrSuggest.d.ts +9 -0
- package/dist/util/getFixOrSuggest.js +13 -0
- package/dist/util/getForStatementHeadLoc.d.ts +17 -0
- package/dist/util/getForStatementHeadLoc.js +26 -0
- package/dist/util/getFunctionHeadLoc.d.ts +101 -0
- package/dist/util/getFunctionHeadLoc.js +161 -0
- package/dist/util/getMemberHeadLoc.d.ts +36 -0
- package/dist/util/getMemberHeadLoc.js +79 -0
- package/dist/util/getOperatorPrecedence.d.ts +39 -0
- package/dist/util/getOperatorPrecedence.js +421 -0
- package/dist/util/getParentFunctionNode.d.ts +2 -0
- package/dist/util/getParentFunctionNode.js +18 -0
- package/dist/util/getStaticStringValue.d.ts +11 -0
- package/dist/util/getStaticStringValue.js +44 -0
- package/dist/util/getStringLength.d.ts +1 -0
- package/dist/util/getStringLength.js +14 -0
- package/dist/util/getTextWithParentheses.d.ts +3 -0
- package/dist/util/getTextWithParentheses.js +16 -0
- package/dist/util/getThisExpression.d.ts +2 -0
- package/dist/util/getThisExpression.js +24 -0
- package/dist/util/getValueOfLiteralType.d.ts +2 -0
- package/dist/util/getValueOfLiteralType.js +16 -0
- package/dist/util/getWrappedCode.d.ts +2 -0
- package/dist/util/getWrappedCode.js +6 -0
- package/dist/util/getWrappingFixer.d.ts +42 -0
- package/dist/util/getWrappingFixer.js +184 -0
- package/dist/util/hasOverloadSignatures.d.ts +6 -0
- package/dist/util/hasOverloadSignatures.js +47 -0
- package/dist/util/index.d.ts +40 -0
- package/dist/util/index.js +53 -0
- package/dist/util/isArrayMethodCallWithPredicate.d.ts +3 -0
- package/dist/util/isArrayMethodCallWithPredicate.js +64 -0
- package/dist/util/isAssignee.d.ts +2 -0
- package/dist/util/isAssignee.js +50 -0
- package/dist/util/isHigherPrecedenceThanAwait.d.ts +2 -0
- package/dist/util/isHigherPrecedenceThanAwait.js +46 -0
- package/dist/util/isNodeEqual.d.ts +2 -0
- package/dist/util/isNodeEqual.js +25 -0
- package/dist/util/isNullLiteral.d.ts +2 -0
- package/dist/util/isNullLiteral.js +7 -0
- package/dist/util/isPromiseAggregatorMethod.d.ts +3 -0
- package/dist/util/isPromiseAggregatorMethod.js +22 -0
- package/dist/util/isStartOfExpressionStatement.d.ts +7 -0
- package/dist/util/isStartOfExpressionStatement.js +22 -0
- package/dist/util/isTypeImport.d.ts +12 -0
- package/dist/util/isTypeImport.js +21 -0
- package/dist/util/isUndefinedIdentifier.d.ts +2 -0
- package/dist/util/isUndefinedIdentifier.js +7 -0
- package/dist/util/misc.d.ts +115 -0
- package/dist/util/misc.js +270 -0
- package/dist/util/needsPrecedingSemiColon.d.ts +11 -0
- package/dist/util/needsPrecedingSemiColon.js +97 -0
- package/dist/util/needsToBeAwaited.d.ts +7 -0
- package/dist/util/needsToBeAwaited.js +63 -0
- package/dist/util/objectIterators.d.ts +3 -0
- package/dist/util/objectIterators.js +25 -0
- package/dist/util/promiseUtils.d.ts +27 -0
- package/dist/util/promiseUtils.js +98 -0
- package/dist/util/rangeToLoc.d.ts +2 -0
- package/dist/util/rangeToLoc.js +9 -0
- package/dist/util/referenceContainsTypeQuery.d.ts +5 -0
- package/dist/util/referenceContainsTypeQuery.js +19 -0
- package/dist/util/scopeUtils.d.ts +3 -0
- package/dist/util/scopeUtils.js +10 -0
- package/dist/util/skipChainExpression.d.ts +2 -0
- package/dist/util/skipChainExpression.js +7 -0
- package/dist/util/truthinessUtils.d.ts +3 -0
- package/dist/util/truthinessUtils.js +60 -0
- package/dist/util/types.d.ts +2 -0
- package/dist/util/types.js +2 -0
- package/dist/util/walkStatements.d.ts +7 -0
- package/dist/util/walkStatements.js +56 -0
- package/index.d.ts +13 -0
- package/package.json +137 -0
- package/raw-plugin.d.ts +25 -0
- package/rules.d.ts +87 -0
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OperatorPrecedence = void 0;
|
|
4
|
+
exports.getOperatorPrecedenceForNode = getOperatorPrecedenceForNode;
|
|
5
|
+
exports.getOperatorPrecedence = getOperatorPrecedence;
|
|
6
|
+
exports.getBinaryOperatorPrecedence = getBinaryOperatorPrecedence;
|
|
7
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
8
|
+
const typescript_1 = require("typescript");
|
|
9
|
+
var OperatorPrecedence;
|
|
10
|
+
(function (OperatorPrecedence) {
|
|
11
|
+
// Expression:
|
|
12
|
+
// AssignmentExpression
|
|
13
|
+
// Expression `,` AssignmentExpression
|
|
14
|
+
OperatorPrecedence[OperatorPrecedence["Comma"] = 0] = "Comma";
|
|
15
|
+
// NOTE: `Spread` is higher than `Comma` due to how it is parsed in |ElementList|
|
|
16
|
+
// SpreadElement:
|
|
17
|
+
// `...` AssignmentExpression
|
|
18
|
+
OperatorPrecedence[OperatorPrecedence["Spread"] = 1] = "Spread";
|
|
19
|
+
// AssignmentExpression:
|
|
20
|
+
// ConditionalExpression
|
|
21
|
+
// YieldExpression
|
|
22
|
+
// ArrowFunction
|
|
23
|
+
// AsyncArrowFunction
|
|
24
|
+
// LeftHandSideExpression `=` AssignmentExpression
|
|
25
|
+
// LeftHandSideExpression AssignmentOperator AssignmentExpression
|
|
26
|
+
//
|
|
27
|
+
// NOTE: AssignmentExpression is broken down into several precedences due to the requirements
|
|
28
|
+
// of the parenthesize rules.
|
|
29
|
+
// AssignmentExpression: YieldExpression
|
|
30
|
+
// YieldExpression:
|
|
31
|
+
// `yield`
|
|
32
|
+
// `yield` AssignmentExpression
|
|
33
|
+
// `yield` `*` AssignmentExpression
|
|
34
|
+
OperatorPrecedence[OperatorPrecedence["Yield"] = 2] = "Yield";
|
|
35
|
+
// AssignmentExpression: LeftHandSideExpression `=` AssignmentExpression
|
|
36
|
+
// AssignmentExpression: LeftHandSideExpression AssignmentOperator AssignmentExpression
|
|
37
|
+
// AssignmentOperator: one of
|
|
38
|
+
// `*=` `/=` `%=` `+=` `-=` `<<=` `>>=` `>>>=` `&=` `^=` `|=` `**=`
|
|
39
|
+
OperatorPrecedence[OperatorPrecedence["Assignment"] = 3] = "Assignment";
|
|
40
|
+
// NOTE: `Conditional` is considered higher than `Assignment` here, but in reality they have
|
|
41
|
+
// the same precedence.
|
|
42
|
+
// AssignmentExpression: ConditionalExpression
|
|
43
|
+
// ConditionalExpression:
|
|
44
|
+
// ShortCircuitExpression
|
|
45
|
+
// ShortCircuitExpression `?` AssignmentExpression `:` AssignmentExpression
|
|
46
|
+
// ShortCircuitExpression:
|
|
47
|
+
// LogicalORExpression
|
|
48
|
+
// CoalesceExpression
|
|
49
|
+
OperatorPrecedence[OperatorPrecedence["Conditional"] = 4] = "Conditional";
|
|
50
|
+
// CoalesceExpression:
|
|
51
|
+
// CoalesceExpressionHead `??` BitwiseORExpression
|
|
52
|
+
// CoalesceExpressionHead:
|
|
53
|
+
// CoalesceExpression
|
|
54
|
+
// BitwiseORExpression
|
|
55
|
+
OperatorPrecedence[OperatorPrecedence["Coalesce"] = 4] = "Coalesce";
|
|
56
|
+
// LogicalORExpression:
|
|
57
|
+
// LogicalANDExpression
|
|
58
|
+
// LogicalORExpression `||` LogicalANDExpression
|
|
59
|
+
OperatorPrecedence[OperatorPrecedence["LogicalOR"] = 5] = "LogicalOR";
|
|
60
|
+
// LogicalANDExpression:
|
|
61
|
+
// BitwiseORExpression
|
|
62
|
+
// LogicalANDExpression `&&` BitwiseORExpression
|
|
63
|
+
OperatorPrecedence[OperatorPrecedence["LogicalAND"] = 6] = "LogicalAND";
|
|
64
|
+
// BitwiseORExpression:
|
|
65
|
+
// BitwiseXORExpression
|
|
66
|
+
// BitwiseORExpression `^` BitwiseXORExpression
|
|
67
|
+
OperatorPrecedence[OperatorPrecedence["BitwiseOR"] = 7] = "BitwiseOR";
|
|
68
|
+
// BitwiseXORExpression:
|
|
69
|
+
// BitwiseANDExpression
|
|
70
|
+
// BitwiseXORExpression `^` BitwiseANDExpression
|
|
71
|
+
OperatorPrecedence[OperatorPrecedence["BitwiseXOR"] = 8] = "BitwiseXOR";
|
|
72
|
+
// BitwiseANDExpression:
|
|
73
|
+
// EqualityExpression
|
|
74
|
+
// BitwiseANDExpression `^` EqualityExpression
|
|
75
|
+
OperatorPrecedence[OperatorPrecedence["BitwiseAND"] = 9] = "BitwiseAND";
|
|
76
|
+
// EqualityExpression:
|
|
77
|
+
// RelationalExpression
|
|
78
|
+
// EqualityExpression `==` RelationalExpression
|
|
79
|
+
// EqualityExpression `!=` RelationalExpression
|
|
80
|
+
// EqualityExpression `===` RelationalExpression
|
|
81
|
+
// EqualityExpression `!==` RelationalExpression
|
|
82
|
+
OperatorPrecedence[OperatorPrecedence["Equality"] = 10] = "Equality";
|
|
83
|
+
// RelationalExpression:
|
|
84
|
+
// ShiftExpression
|
|
85
|
+
// RelationalExpression `<` ShiftExpression
|
|
86
|
+
// RelationalExpression `>` ShiftExpression
|
|
87
|
+
// RelationalExpression `<=` ShiftExpression
|
|
88
|
+
// RelationalExpression `>=` ShiftExpression
|
|
89
|
+
// RelationalExpression `instanceof` ShiftExpression
|
|
90
|
+
// RelationalExpression `in` ShiftExpression
|
|
91
|
+
// [+TypeScript] RelationalExpression `as` Type
|
|
92
|
+
OperatorPrecedence[OperatorPrecedence["Relational"] = 11] = "Relational";
|
|
93
|
+
// ShiftExpression:
|
|
94
|
+
// AdditiveExpression
|
|
95
|
+
// ShiftExpression `<<` AdditiveExpression
|
|
96
|
+
// ShiftExpression `>>` AdditiveExpression
|
|
97
|
+
// ShiftExpression `>>>` AdditiveExpression
|
|
98
|
+
OperatorPrecedence[OperatorPrecedence["Shift"] = 12] = "Shift";
|
|
99
|
+
// AdditiveExpression:
|
|
100
|
+
// MultiplicativeExpression
|
|
101
|
+
// AdditiveExpression `+` MultiplicativeExpression
|
|
102
|
+
// AdditiveExpression `-` MultiplicativeExpression
|
|
103
|
+
OperatorPrecedence[OperatorPrecedence["Additive"] = 13] = "Additive";
|
|
104
|
+
// MultiplicativeExpression:
|
|
105
|
+
// ExponentiationExpression
|
|
106
|
+
// MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
|
|
107
|
+
// MultiplicativeOperator: one of `*`, `/`, `%`
|
|
108
|
+
OperatorPrecedence[OperatorPrecedence["Multiplicative"] = 14] = "Multiplicative";
|
|
109
|
+
// ExponentiationExpression:
|
|
110
|
+
// UnaryExpression
|
|
111
|
+
// UpdateExpression `**` ExponentiationExpression
|
|
112
|
+
OperatorPrecedence[OperatorPrecedence["Exponentiation"] = 15] = "Exponentiation";
|
|
113
|
+
// UnaryExpression:
|
|
114
|
+
// UpdateExpression
|
|
115
|
+
// `delete` UnaryExpression
|
|
116
|
+
// `void` UnaryExpression
|
|
117
|
+
// `typeof` UnaryExpression
|
|
118
|
+
// `+` UnaryExpression
|
|
119
|
+
// `-` UnaryExpression
|
|
120
|
+
// `~` UnaryExpression
|
|
121
|
+
// `!` UnaryExpression
|
|
122
|
+
// AwaitExpression
|
|
123
|
+
// UpdateExpression: // TODO: Do we need to investigate the precedence here?
|
|
124
|
+
// `++` UnaryExpression
|
|
125
|
+
// `--` UnaryExpression
|
|
126
|
+
OperatorPrecedence[OperatorPrecedence["Unary"] = 16] = "Unary";
|
|
127
|
+
// UpdateExpression:
|
|
128
|
+
// LeftHandSideExpression
|
|
129
|
+
// LeftHandSideExpression `++`
|
|
130
|
+
// LeftHandSideExpression `--`
|
|
131
|
+
OperatorPrecedence[OperatorPrecedence["Update"] = 17] = "Update";
|
|
132
|
+
// LeftHandSideExpression:
|
|
133
|
+
// NewExpression
|
|
134
|
+
// CallExpression
|
|
135
|
+
// NewExpression:
|
|
136
|
+
// MemberExpression
|
|
137
|
+
// `new` NewExpression
|
|
138
|
+
OperatorPrecedence[OperatorPrecedence["LeftHandSide"] = 18] = "LeftHandSide";
|
|
139
|
+
// CallExpression:
|
|
140
|
+
// CoverCallExpressionAndAsyncArrowHead
|
|
141
|
+
// SuperCall
|
|
142
|
+
// ImportCall
|
|
143
|
+
// CallExpression Arguments
|
|
144
|
+
// CallExpression `[` Expression `]`
|
|
145
|
+
// CallExpression `.` IdentifierName
|
|
146
|
+
// CallExpression TemplateLiteral
|
|
147
|
+
// MemberExpression:
|
|
148
|
+
// PrimaryExpression
|
|
149
|
+
// MemberExpression `[` Expression `]`
|
|
150
|
+
// MemberExpression `.` IdentifierName
|
|
151
|
+
// MemberExpression TemplateLiteral
|
|
152
|
+
// SuperProperty
|
|
153
|
+
// MetaProperty
|
|
154
|
+
// `new` MemberExpression Arguments
|
|
155
|
+
OperatorPrecedence[OperatorPrecedence["Member"] = 19] = "Member";
|
|
156
|
+
// TODO: JSXElement?
|
|
157
|
+
// PrimaryExpression:
|
|
158
|
+
// `this`
|
|
159
|
+
// IdentifierReference
|
|
160
|
+
// Literal
|
|
161
|
+
// ArrayLiteral
|
|
162
|
+
// ObjectLiteral
|
|
163
|
+
// FunctionExpression
|
|
164
|
+
// ClassExpression
|
|
165
|
+
// GeneratorExpression
|
|
166
|
+
// AsyncFunctionExpression
|
|
167
|
+
// AsyncGeneratorExpression
|
|
168
|
+
// RegularExpressionLiteral
|
|
169
|
+
// TemplateLiteral
|
|
170
|
+
// CoverParenthesizedExpressionAndArrowParameterList
|
|
171
|
+
OperatorPrecedence[OperatorPrecedence["Primary"] = 20] = "Primary";
|
|
172
|
+
OperatorPrecedence[OperatorPrecedence["Highest"] = 20] = "Highest";
|
|
173
|
+
OperatorPrecedence[OperatorPrecedence["Lowest"] = 0] = "Lowest";
|
|
174
|
+
// -1 is lower than all other precedences. Returning it will cause binary expression
|
|
175
|
+
// parsing to stop.
|
|
176
|
+
OperatorPrecedence[OperatorPrecedence["Invalid"] = -1] = "Invalid";
|
|
177
|
+
})(OperatorPrecedence || (exports.OperatorPrecedence = OperatorPrecedence = {}));
|
|
178
|
+
/**
|
|
179
|
+
* Note that this does not take into account parenthesization. You should check
|
|
180
|
+
* for parenthesization separately if it's relevant to your usage.
|
|
181
|
+
*/
|
|
182
|
+
function getOperatorPrecedenceForNode(node) {
|
|
183
|
+
switch (node.type) {
|
|
184
|
+
case utils_1.AST_NODE_TYPES.SpreadElement:
|
|
185
|
+
case utils_1.AST_NODE_TYPES.RestElement:
|
|
186
|
+
return OperatorPrecedence.Spread;
|
|
187
|
+
case utils_1.AST_NODE_TYPES.YieldExpression:
|
|
188
|
+
case utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
|
|
189
|
+
return OperatorPrecedence.Yield;
|
|
190
|
+
case utils_1.AST_NODE_TYPES.ConditionalExpression:
|
|
191
|
+
return OperatorPrecedence.Conditional;
|
|
192
|
+
case utils_1.AST_NODE_TYPES.SequenceExpression:
|
|
193
|
+
return OperatorPrecedence.Comma;
|
|
194
|
+
case utils_1.AST_NODE_TYPES.AssignmentExpression:
|
|
195
|
+
case utils_1.AST_NODE_TYPES.BinaryExpression:
|
|
196
|
+
case utils_1.AST_NODE_TYPES.LogicalExpression:
|
|
197
|
+
switch (node.operator) {
|
|
198
|
+
case '==':
|
|
199
|
+
case '+=':
|
|
200
|
+
case '-=':
|
|
201
|
+
case '**=':
|
|
202
|
+
case '*=':
|
|
203
|
+
case '/=':
|
|
204
|
+
case '%=':
|
|
205
|
+
case '<<=':
|
|
206
|
+
case '>>=':
|
|
207
|
+
case '>>>=':
|
|
208
|
+
case '&=':
|
|
209
|
+
case '^=':
|
|
210
|
+
case '|=':
|
|
211
|
+
case '||=':
|
|
212
|
+
case '&&=':
|
|
213
|
+
case '??=':
|
|
214
|
+
return OperatorPrecedence.Assignment;
|
|
215
|
+
default:
|
|
216
|
+
return getBinaryOperatorPrecedence(node.operator);
|
|
217
|
+
}
|
|
218
|
+
case utils_1.AST_NODE_TYPES.TSTypeAssertion:
|
|
219
|
+
case utils_1.AST_NODE_TYPES.TSNonNullExpression:
|
|
220
|
+
case utils_1.AST_NODE_TYPES.UnaryExpression:
|
|
221
|
+
case utils_1.AST_NODE_TYPES.AwaitExpression:
|
|
222
|
+
return OperatorPrecedence.Unary;
|
|
223
|
+
case utils_1.AST_NODE_TYPES.UpdateExpression:
|
|
224
|
+
// TODO: Should prefix `++` and `--` be moved to the `Update` precedence?
|
|
225
|
+
if (node.prefix) {
|
|
226
|
+
return OperatorPrecedence.Unary;
|
|
227
|
+
}
|
|
228
|
+
return OperatorPrecedence.Update;
|
|
229
|
+
case utils_1.AST_NODE_TYPES.ChainExpression:
|
|
230
|
+
return getOperatorPrecedenceForNode(node.expression);
|
|
231
|
+
case utils_1.AST_NODE_TYPES.CallExpression:
|
|
232
|
+
return OperatorPrecedence.LeftHandSide;
|
|
233
|
+
case utils_1.AST_NODE_TYPES.NewExpression:
|
|
234
|
+
return node.arguments.length > 0
|
|
235
|
+
? OperatorPrecedence.Member
|
|
236
|
+
: OperatorPrecedence.LeftHandSide;
|
|
237
|
+
case utils_1.AST_NODE_TYPES.TaggedTemplateExpression:
|
|
238
|
+
case utils_1.AST_NODE_TYPES.MemberExpression:
|
|
239
|
+
case utils_1.AST_NODE_TYPES.MetaProperty:
|
|
240
|
+
return OperatorPrecedence.Member;
|
|
241
|
+
case utils_1.AST_NODE_TYPES.TSAsExpression:
|
|
242
|
+
return OperatorPrecedence.Relational;
|
|
243
|
+
case utils_1.AST_NODE_TYPES.ThisExpression:
|
|
244
|
+
case utils_1.AST_NODE_TYPES.Super:
|
|
245
|
+
case utils_1.AST_NODE_TYPES.Identifier:
|
|
246
|
+
case utils_1.AST_NODE_TYPES.PrivateIdentifier:
|
|
247
|
+
case utils_1.AST_NODE_TYPES.Literal:
|
|
248
|
+
case utils_1.AST_NODE_TYPES.ArrayExpression:
|
|
249
|
+
case utils_1.AST_NODE_TYPES.ObjectExpression:
|
|
250
|
+
case utils_1.AST_NODE_TYPES.FunctionExpression:
|
|
251
|
+
case utils_1.AST_NODE_TYPES.ClassExpression:
|
|
252
|
+
case utils_1.AST_NODE_TYPES.TemplateLiteral:
|
|
253
|
+
case utils_1.AST_NODE_TYPES.JSXElement:
|
|
254
|
+
case utils_1.AST_NODE_TYPES.JSXFragment:
|
|
255
|
+
// we don't have nodes for these cases
|
|
256
|
+
// case SyntaxKind.ParenthesizedExpression:
|
|
257
|
+
// case SyntaxKind.OmittedExpression:
|
|
258
|
+
return OperatorPrecedence.Primary;
|
|
259
|
+
default:
|
|
260
|
+
return OperatorPrecedence.Invalid;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function getOperatorPrecedence(nodeKind, operatorKind, hasArguments) {
|
|
264
|
+
switch (nodeKind) {
|
|
265
|
+
// A list of comma-separated expressions. This node is only created by transformations.
|
|
266
|
+
case typescript_1.SyntaxKind.CommaListExpression:
|
|
267
|
+
return OperatorPrecedence.Comma;
|
|
268
|
+
case typescript_1.SyntaxKind.SpreadElement:
|
|
269
|
+
return OperatorPrecedence.Spread;
|
|
270
|
+
case typescript_1.SyntaxKind.YieldExpression:
|
|
271
|
+
return OperatorPrecedence.Yield;
|
|
272
|
+
case typescript_1.SyntaxKind.ConditionalExpression:
|
|
273
|
+
return OperatorPrecedence.Conditional;
|
|
274
|
+
case typescript_1.SyntaxKind.BinaryExpression:
|
|
275
|
+
switch (operatorKind) {
|
|
276
|
+
case typescript_1.SyntaxKind.AmpersandAmpersandEqualsToken:
|
|
277
|
+
case typescript_1.SyntaxKind.AmpersandEqualsToken:
|
|
278
|
+
case typescript_1.SyntaxKind.AsteriskAsteriskEqualsToken:
|
|
279
|
+
case typescript_1.SyntaxKind.AsteriskEqualsToken:
|
|
280
|
+
case typescript_1.SyntaxKind.BarBarEqualsToken:
|
|
281
|
+
case typescript_1.SyntaxKind.BarEqualsToken:
|
|
282
|
+
case typescript_1.SyntaxKind.CaretEqualsToken:
|
|
283
|
+
case typescript_1.SyntaxKind.EqualsToken:
|
|
284
|
+
case typescript_1.SyntaxKind.GreaterThanGreaterThanEqualsToken:
|
|
285
|
+
case typescript_1.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
|
|
286
|
+
case typescript_1.SyntaxKind.LessThanLessThanEqualsToken:
|
|
287
|
+
case typescript_1.SyntaxKind.MinusEqualsToken:
|
|
288
|
+
case typescript_1.SyntaxKind.PercentEqualsToken:
|
|
289
|
+
case typescript_1.SyntaxKind.PlusEqualsToken:
|
|
290
|
+
case typescript_1.SyntaxKind.QuestionQuestionEqualsToken:
|
|
291
|
+
case typescript_1.SyntaxKind.SlashEqualsToken:
|
|
292
|
+
return OperatorPrecedence.Assignment;
|
|
293
|
+
case typescript_1.SyntaxKind.CommaToken:
|
|
294
|
+
return OperatorPrecedence.Comma;
|
|
295
|
+
default:
|
|
296
|
+
return getBinaryOperatorPrecedence(operatorKind);
|
|
297
|
+
}
|
|
298
|
+
// TODO: Should prefix `++` and `--` be moved to the `Update` precedence?
|
|
299
|
+
case typescript_1.SyntaxKind.TypeAssertionExpression:
|
|
300
|
+
case typescript_1.SyntaxKind.NonNullExpression:
|
|
301
|
+
case typescript_1.SyntaxKind.PrefixUnaryExpression:
|
|
302
|
+
case typescript_1.SyntaxKind.TypeOfExpression:
|
|
303
|
+
case typescript_1.SyntaxKind.VoidExpression:
|
|
304
|
+
case typescript_1.SyntaxKind.DeleteExpression:
|
|
305
|
+
case typescript_1.SyntaxKind.AwaitExpression:
|
|
306
|
+
return OperatorPrecedence.Unary;
|
|
307
|
+
case typescript_1.SyntaxKind.PostfixUnaryExpression:
|
|
308
|
+
return OperatorPrecedence.Update;
|
|
309
|
+
case typescript_1.SyntaxKind.CallExpression:
|
|
310
|
+
return OperatorPrecedence.LeftHandSide;
|
|
311
|
+
case typescript_1.SyntaxKind.NewExpression:
|
|
312
|
+
return hasArguments
|
|
313
|
+
? OperatorPrecedence.Member
|
|
314
|
+
: OperatorPrecedence.LeftHandSide;
|
|
315
|
+
case typescript_1.SyntaxKind.TaggedTemplateExpression:
|
|
316
|
+
case typescript_1.SyntaxKind.PropertyAccessExpression:
|
|
317
|
+
case typescript_1.SyntaxKind.ElementAccessExpression:
|
|
318
|
+
case typescript_1.SyntaxKind.MetaProperty:
|
|
319
|
+
return OperatorPrecedence.Member;
|
|
320
|
+
case typescript_1.SyntaxKind.AsExpression:
|
|
321
|
+
case typescript_1.SyntaxKind.SatisfiesExpression:
|
|
322
|
+
return OperatorPrecedence.Relational;
|
|
323
|
+
case typescript_1.SyntaxKind.ThisKeyword:
|
|
324
|
+
case typescript_1.SyntaxKind.SuperKeyword:
|
|
325
|
+
case typescript_1.SyntaxKind.Identifier:
|
|
326
|
+
case typescript_1.SyntaxKind.PrivateIdentifier:
|
|
327
|
+
case typescript_1.SyntaxKind.NullKeyword:
|
|
328
|
+
case typescript_1.SyntaxKind.TrueKeyword:
|
|
329
|
+
case typescript_1.SyntaxKind.FalseKeyword:
|
|
330
|
+
case typescript_1.SyntaxKind.NumericLiteral:
|
|
331
|
+
case typescript_1.SyntaxKind.BigIntLiteral:
|
|
332
|
+
case typescript_1.SyntaxKind.StringLiteral:
|
|
333
|
+
case typescript_1.SyntaxKind.ArrayLiteralExpression:
|
|
334
|
+
case typescript_1.SyntaxKind.ObjectLiteralExpression:
|
|
335
|
+
case typescript_1.SyntaxKind.FunctionExpression:
|
|
336
|
+
case typescript_1.SyntaxKind.ArrowFunction:
|
|
337
|
+
case typescript_1.SyntaxKind.ClassExpression:
|
|
338
|
+
case typescript_1.SyntaxKind.RegularExpressionLiteral:
|
|
339
|
+
case typescript_1.SyntaxKind.NoSubstitutionTemplateLiteral:
|
|
340
|
+
case typescript_1.SyntaxKind.TemplateExpression:
|
|
341
|
+
case typescript_1.SyntaxKind.ParenthesizedExpression:
|
|
342
|
+
case typescript_1.SyntaxKind.OmittedExpression:
|
|
343
|
+
case typescript_1.SyntaxKind.JsxElement:
|
|
344
|
+
case typescript_1.SyntaxKind.JsxSelfClosingElement:
|
|
345
|
+
case typescript_1.SyntaxKind.JsxFragment:
|
|
346
|
+
return OperatorPrecedence.Primary;
|
|
347
|
+
default:
|
|
348
|
+
return OperatorPrecedence.Invalid;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
function getBinaryOperatorPrecedence(kind) {
|
|
352
|
+
switch (kind) {
|
|
353
|
+
case '-':
|
|
354
|
+
case '+':
|
|
355
|
+
case typescript_1.SyntaxKind.MinusToken:
|
|
356
|
+
case typescript_1.SyntaxKind.PlusToken:
|
|
357
|
+
return OperatorPrecedence.Additive;
|
|
358
|
+
case '!=':
|
|
359
|
+
case '!==':
|
|
360
|
+
case '==':
|
|
361
|
+
case '===':
|
|
362
|
+
case typescript_1.SyntaxKind.EqualsEqualsEqualsToken:
|
|
363
|
+
case typescript_1.SyntaxKind.EqualsEqualsToken:
|
|
364
|
+
case typescript_1.SyntaxKind.ExclamationEqualsEqualsToken:
|
|
365
|
+
case typescript_1.SyntaxKind.ExclamationEqualsToken:
|
|
366
|
+
return OperatorPrecedence.Equality;
|
|
367
|
+
case '??':
|
|
368
|
+
case typescript_1.SyntaxKind.QuestionQuestionToken:
|
|
369
|
+
return OperatorPrecedence.Coalesce;
|
|
370
|
+
case '*':
|
|
371
|
+
case '/':
|
|
372
|
+
case '%':
|
|
373
|
+
case typescript_1.SyntaxKind.AsteriskToken:
|
|
374
|
+
case typescript_1.SyntaxKind.PercentToken:
|
|
375
|
+
case typescript_1.SyntaxKind.SlashToken:
|
|
376
|
+
return OperatorPrecedence.Multiplicative;
|
|
377
|
+
case '**':
|
|
378
|
+
case typescript_1.SyntaxKind.AsteriskAsteriskToken:
|
|
379
|
+
return OperatorPrecedence.Exponentiation;
|
|
380
|
+
case '&':
|
|
381
|
+
case typescript_1.SyntaxKind.AmpersandToken:
|
|
382
|
+
return OperatorPrecedence.BitwiseAND;
|
|
383
|
+
case '&&':
|
|
384
|
+
case typescript_1.SyntaxKind.AmpersandAmpersandToken:
|
|
385
|
+
return OperatorPrecedence.LogicalAND;
|
|
386
|
+
case '^':
|
|
387
|
+
case typescript_1.SyntaxKind.CaretToken:
|
|
388
|
+
return OperatorPrecedence.BitwiseXOR;
|
|
389
|
+
case '<':
|
|
390
|
+
case '<=':
|
|
391
|
+
case '>':
|
|
392
|
+
case '>=':
|
|
393
|
+
case 'in':
|
|
394
|
+
case 'instanceof':
|
|
395
|
+
case typescript_1.SyntaxKind.AsKeyword:
|
|
396
|
+
case typescript_1.SyntaxKind.GreaterThanEqualsToken:
|
|
397
|
+
case typescript_1.SyntaxKind.GreaterThanToken:
|
|
398
|
+
case typescript_1.SyntaxKind.InKeyword:
|
|
399
|
+
case typescript_1.SyntaxKind.InstanceOfKeyword:
|
|
400
|
+
case typescript_1.SyntaxKind.LessThanEqualsToken:
|
|
401
|
+
case typescript_1.SyntaxKind.LessThanToken:
|
|
402
|
+
// case 'as': -- we don't have a token for this
|
|
403
|
+
return OperatorPrecedence.Relational;
|
|
404
|
+
case '<<':
|
|
405
|
+
case '>>':
|
|
406
|
+
case '>>>':
|
|
407
|
+
case typescript_1.SyntaxKind.GreaterThanGreaterThanGreaterThanToken:
|
|
408
|
+
case typescript_1.SyntaxKind.GreaterThanGreaterThanToken:
|
|
409
|
+
case typescript_1.SyntaxKind.LessThanLessThanToken:
|
|
410
|
+
return OperatorPrecedence.Shift;
|
|
411
|
+
case '|':
|
|
412
|
+
case typescript_1.SyntaxKind.BarToken:
|
|
413
|
+
return OperatorPrecedence.BitwiseOR;
|
|
414
|
+
case '||':
|
|
415
|
+
case typescript_1.SyntaxKind.BarBarToken:
|
|
416
|
+
return OperatorPrecedence.LogicalOR;
|
|
417
|
+
}
|
|
418
|
+
// -1 is lower than all other precedences. Returning it will cause binary expression
|
|
419
|
+
// parsing to stop.
|
|
420
|
+
return -1;
|
|
421
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getParentFunctionNode = getParentFunctionNode;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
function getParentFunctionNode(node) {
|
|
6
|
+
let current = node.parent;
|
|
7
|
+
while (current) {
|
|
8
|
+
if (current.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
|
|
9
|
+
current.type === utils_1.AST_NODE_TYPES.FunctionDeclaration ||
|
|
10
|
+
current.type === utils_1.AST_NODE_TYPES.FunctionExpression) {
|
|
11
|
+
return current;
|
|
12
|
+
}
|
|
13
|
+
current = current.parent;
|
|
14
|
+
}
|
|
15
|
+
// this shouldn't happen in correct code, but someone may attempt to parse bad code
|
|
16
|
+
// the parser won't error, so we shouldn't throw here
|
|
17
|
+
/* istanbul ignore next */ return null;
|
|
18
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TSESTree } from '@typescript-eslint/utils';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the result of the string conversion applied to the evaluated value of the given expression node,
|
|
4
|
+
* if it can be determined statically.
|
|
5
|
+
*
|
|
6
|
+
* This function returns a `string` value for all `Literal` nodes and simple `TemplateLiteral` nodes only.
|
|
7
|
+
* In all other cases, this function returns `null`.
|
|
8
|
+
* @param node Expression node.
|
|
9
|
+
* @returns String value if it can be determined. Otherwise, `null`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getStaticStringValue(node: TSESTree.Node): string | null;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// adapted from https://github.com/eslint/eslint/blob/5bdaae205c3a0089ea338b382df59e21d5b06436/lib/rules/utils/ast-utils.js#L191-L230
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getStaticStringValue = getStaticStringValue;
|
|
5
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
6
|
+
const isNullLiteral_1 = require("./isNullLiteral");
|
|
7
|
+
/**
|
|
8
|
+
* Returns the result of the string conversion applied to the evaluated value of the given expression node,
|
|
9
|
+
* if it can be determined statically.
|
|
10
|
+
*
|
|
11
|
+
* This function returns a `string` value for all `Literal` nodes and simple `TemplateLiteral` nodes only.
|
|
12
|
+
* In all other cases, this function returns `null`.
|
|
13
|
+
* @param node Expression node.
|
|
14
|
+
* @returns String value if it can be determined. Otherwise, `null`.
|
|
15
|
+
*/
|
|
16
|
+
function getStaticStringValue(node) {
|
|
17
|
+
switch (node.type) {
|
|
18
|
+
case utils_1.AST_NODE_TYPES.Literal:
|
|
19
|
+
// eslint-disable-next-line eqeqeq, @typescript-eslint/internal/eqeq-nullish -- intentional strict comparison for literal value
|
|
20
|
+
if (node.value === null) {
|
|
21
|
+
if ((0, isNullLiteral_1.isNullLiteral)(node)) {
|
|
22
|
+
return String(node.value); // "null"
|
|
23
|
+
}
|
|
24
|
+
if ('regex' in node) {
|
|
25
|
+
return `/${node.regex.pattern}/${node.regex.flags}`;
|
|
26
|
+
}
|
|
27
|
+
if ('bigint' in node) {
|
|
28
|
+
return node.bigint;
|
|
29
|
+
}
|
|
30
|
+
// Otherwise, this is an unknown literal. The function will return null.
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return String(node.value);
|
|
34
|
+
}
|
|
35
|
+
break;
|
|
36
|
+
case utils_1.AST_NODE_TYPES.TemplateLiteral:
|
|
37
|
+
if (node.expressions.length === 0 && node.quasis.length === 1) {
|
|
38
|
+
return node.quasis[0].value.cooked;
|
|
39
|
+
}
|
|
40
|
+
break;
|
|
41
|
+
// no default
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getStringLength(value: string): number;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStringLength = getStringLength;
|
|
4
|
+
let segmenter;
|
|
5
|
+
function isASCII(value) {
|
|
6
|
+
return /^[\u0020-\u007f]*$/u.test(value);
|
|
7
|
+
}
|
|
8
|
+
function getStringLength(value) {
|
|
9
|
+
if (isASCII(value)) {
|
|
10
|
+
return value.length;
|
|
11
|
+
}
|
|
12
|
+
segmenter ??= new Intl.Segmenter();
|
|
13
|
+
return [...segmenter.segment(value)].length;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTextWithParentheses = getTextWithParentheses;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
function getTextWithParentheses(sourceCode, node) {
|
|
6
|
+
// Capture parentheses before and after the node
|
|
7
|
+
let beforeCount = 0;
|
|
8
|
+
let afterCount = 0;
|
|
9
|
+
if ((0, _1.isParenthesized)(node, sourceCode)) {
|
|
10
|
+
const bodyOpeningParen = (0, _1.nullThrows)(sourceCode.getTokenBefore(node, _1.isOpeningParenToken), _1.NullThrowsReasons.MissingToken('(', 'node'));
|
|
11
|
+
const bodyClosingParen = (0, _1.nullThrows)(sourceCode.getTokenAfter(node, _1.isClosingParenToken), _1.NullThrowsReasons.MissingToken(')', 'node'));
|
|
12
|
+
beforeCount = node.range[0] - bodyOpeningParen.range[0];
|
|
13
|
+
afterCount = bodyClosingParen.range[1] - node.range[1];
|
|
14
|
+
}
|
|
15
|
+
return sourceCode.getText(node, beforeCount, afterCount);
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getThisExpression = getThisExpression;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
function getThisExpression(node) {
|
|
6
|
+
while (true) {
|
|
7
|
+
if (node.type === utils_1.AST_NODE_TYPES.CallExpression) {
|
|
8
|
+
node = node.callee;
|
|
9
|
+
}
|
|
10
|
+
else if (node.type === utils_1.AST_NODE_TYPES.ThisExpression) {
|
|
11
|
+
return node;
|
|
12
|
+
}
|
|
13
|
+
else if (node.type === utils_1.AST_NODE_TYPES.MemberExpression) {
|
|
14
|
+
node = node.object;
|
|
15
|
+
}
|
|
16
|
+
else if (node.type === utils_1.AST_NODE_TYPES.ChainExpression) {
|
|
17
|
+
node = node.expression;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getValueOfLiteralType = void 0;
|
|
4
|
+
const valueIsPseudoBigInt = (value) => {
|
|
5
|
+
return typeof value === 'object';
|
|
6
|
+
};
|
|
7
|
+
const pseudoBigIntToBigInt = (value) => {
|
|
8
|
+
return BigInt((value.negative ? '-' : '') + value.base10Value);
|
|
9
|
+
};
|
|
10
|
+
const getValueOfLiteralType = (type) => {
|
|
11
|
+
if (valueIsPseudoBigInt(type.value)) {
|
|
12
|
+
return pseudoBigIntToBigInt(type.value);
|
|
13
|
+
}
|
|
14
|
+
return type.value;
|
|
15
|
+
};
|
|
16
|
+
exports.getValueOfLiteralType = getValueOfLiteralType;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
|
|
2
|
+
interface WrappingFixerParams {
|
|
3
|
+
/**
|
|
4
|
+
* Descendant of `node` we want to preserve.
|
|
5
|
+
* Use this to replace some code with another.
|
|
6
|
+
* By default it's the node we are modifying (so nothing is removed).
|
|
7
|
+
* You can pass multiple nodes as an array.
|
|
8
|
+
*/
|
|
9
|
+
innerNode?: TSESTree.Node | TSESTree.Node[];
|
|
10
|
+
/** The node we want to modify. */
|
|
11
|
+
node: TSESTree.Node;
|
|
12
|
+
/** Source code. */
|
|
13
|
+
sourceCode: Readonly<TSESLint.SourceCode>;
|
|
14
|
+
/**
|
|
15
|
+
* The function which gets the code of the `innerNode` and returns some code around it.
|
|
16
|
+
* Receives multiple arguments if there are multiple innerNodes.
|
|
17
|
+
* E.g. ``code => `${code} != null` ``
|
|
18
|
+
*/
|
|
19
|
+
wrap?: (...code: string[]) => string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Wraps node with some code. Adds parentheses as necessary.
|
|
23
|
+
* @returns Fixer which adds the specified code and parens if necessary.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getWrappingFixer(params: WrappingFixerParams): (fixer: TSESLint.RuleFixer) => TSESLint.RuleFix;
|
|
26
|
+
/**
|
|
27
|
+
* If the node to be moved and the destination node require parentheses, include parentheses in the node to be moved.
|
|
28
|
+
* @param sourceCode Source code of current file
|
|
29
|
+
* @param nodeToMove Nodes that need to be moved
|
|
30
|
+
* @param destinationNode Final destination node with nodeToMove
|
|
31
|
+
* @returns If parentheses are required, code for the nodeToMove node is returned with parentheses at both ends of the code.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getMovedNodeCode(params: {
|
|
34
|
+
destinationNode: TSESTree.Node;
|
|
35
|
+
nodeToMove: TSESTree.Node;
|
|
36
|
+
sourceCode: Readonly<TSESLint.SourceCode>;
|
|
37
|
+
}): string;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a node will always have the same precedence if its parent changes.
|
|
40
|
+
*/
|
|
41
|
+
export declare function isStrongPrecedenceNode(innerNode: TSESTree.Node): boolean;
|
|
42
|
+
export {};
|