eslint-plugin-etc-misc 1.0.2 → 1.0.3
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/CHANGELOG.md +2 -4
- package/README.md +197 -151
- package/dist/_internal/casing.d.ts.map +1 -1
- package/dist/_internal/casing.js +6 -6
- package/dist/_internal/casing.js.map +1 -1
- package/dist/_internal/create-external-rule.d.ts +2 -1
- package/dist/_internal/create-external-rule.d.ts.map +1 -1
- package/dist/_internal/create-external-rule.js +20 -22
- package/dist/_internal/create-external-rule.js.map +1 -1
- package/dist/_internal/create-import-pattern-rule.d.ts.map +1 -1
- package/dist/_internal/create-import-pattern-rule.js +2 -1
- package/dist/_internal/create-import-pattern-rule.js.map +1 -1
- package/dist/_internal/get-core-rule.d.ts +2 -1
- package/dist/_internal/get-core-rule.d.ts.map +1 -1
- package/dist/_internal/get-core-rule.js +2 -1
- package/dist/_internal/get-core-rule.js.map +1 -1
- package/dist/_internal/identifier-blocks.d.ts.map +1 -1
- package/dist/_internal/identifier-blocks.js +4 -4
- package/dist/_internal/identifier-blocks.js.map +1 -1
- package/dist/_internal/ignore-patterns.d.ts.map +1 -1
- package/dist/_internal/ignore-patterns.js +2 -1
- package/dist/_internal/ignore-patterns.js.map +1 -1
- package/dist/_internal/rule-creator.d.ts +2 -1
- package/dist/_internal/rule-creator.d.ts.map +1 -1
- package/dist/_internal/rule-creator.js.map +1 -1
- package/dist/_internal/rule-deprecation.d.ts +2 -1
- package/dist/_internal/rule-deprecation.d.ts.map +1 -1
- package/dist/_internal/rule-deprecation.js +3 -2
- package/dist/_internal/rule-deprecation.js.map +1 -1
- package/dist/_internal/symbol-usage.d.ts.map +1 -1
- package/dist/_internal/symbol-usage.js +11 -10
- package/dist/_internal/symbol-usage.js.map +1 -1
- package/dist/_internal/syntax-selectors.d.ts.map +1 -1
- package/dist/_internal/syntax-selectors.js +13 -8
- package/dist/_internal/syntax-selectors.js.map +1 -1
- package/dist/configs/all-strict.d.ts.map +1 -1
- package/dist/configs/all-strict.js +3 -2
- package/dist/configs/all-strict.js.map +1 -1
- package/dist/configs/all.d.ts.map +1 -1
- package/dist/configs/all.js +3 -2
- package/dist/configs/all.js.map +1 -1
- package/dist/configs/minimal.d.ts +22 -0
- package/dist/configs/minimal.d.ts.map +1 -0
- package/dist/configs/minimal.js +22 -0
- package/dist/configs/minimal.js.map +1 -0
- package/dist/configs/strict-type-checked.d.ts.map +1 -1
- package/dist/configs/strict-type-checked.js +8 -10
- package/dist/configs/strict-type-checked.js.map +1 -1
- package/dist/configs/strict.d.ts.map +1 -1
- package/dist/configs/strict.js +3 -2
- package/dist/configs/strict.js.map +1 -1
- package/dist/configs.d.ts +2 -0
- package/dist/configs.d.ts.map +1 -1
- package/dist/configs.js +2 -0
- package/dist/configs.js.map +1 -1
- package/dist/rules/comment-spacing.d.ts.map +1 -1
- package/dist/rules/comment-spacing.js +3 -2
- package/dist/rules/comment-spacing.js.map +1 -1
- package/dist/rules/consistent-empty-lines.d.ts.map +1 -1
- package/dist/rules/consistent-empty-lines.js +3 -2
- package/dist/rules/consistent-empty-lines.js.map +1 -1
- package/dist/rules/consistent-filename.d.ts.map +1 -1
- package/dist/rules/consistent-filename.js +2 -1
- package/dist/rules/consistent-filename.js.map +1 -1
- package/dist/rules/consistent-import.d.ts.map +1 -1
- package/dist/rules/consistent-import.js +2 -1
- package/dist/rules/consistent-import.js.map +1 -1
- package/dist/rules/consistent-optional-props.d.ts.map +1 -1
- package/dist/rules/consistent-optional-props.js +6 -5
- package/dist/rules/consistent-optional-props.js.map +1 -1
- package/dist/rules/export-matching-filename-only.d.ts.map +1 -1
- package/dist/rules/export-matching-filename-only.js +2 -1
- package/dist/rules/export-matching-filename-only.js.map +1 -1
- package/dist/rules/match-filename.d.ts.map +1 -1
- package/dist/rules/match-filename.js +2 -1
- package/dist/rules/match-filename.js.map +1 -1
- package/dist/rules/max-identifier-blocks.d.ts.map +1 -1
- package/dist/rules/max-identifier-blocks.js +2 -4
- package/dist/rules/max-identifier-blocks.js.map +1 -1
- package/dist/rules/no-assign-mutated-array.d.ts.map +1 -1
- package/dist/rules/no-assign-mutated-array.js +2 -1
- package/dist/rules/no-assign-mutated-array.js.map +1 -1
- package/dist/rules/no-commented-out-code.d.ts.map +1 -1
- package/dist/rules/no-commented-out-code.js +22 -25
- package/dist/rules/no-commented-out-code.js.map +1 -1
- package/dist/rules/no-const-enum.d.ts.map +1 -1
- package/dist/rules/no-const-enum.js +2 -1
- package/dist/rules/no-const-enum.js.map +1 -1
- package/dist/rules/no-deprecated.d.ts.map +1 -1
- package/dist/rules/no-deprecated.js +4 -3
- package/dist/rules/no-deprecated.js.map +1 -1
- package/dist/rules/no-expression-empty-lines.d.ts.map +1 -1
- package/dist/rules/no-expression-empty-lines.js +3 -2
- package/dist/rules/no-expression-empty-lines.js.map +1 -1
- package/dist/rules/no-foreach.d.ts.map +1 -1
- package/dist/rules/no-foreach.js +2 -1
- package/dist/rules/no-foreach.js.map +1 -1
- package/dist/rules/no-implicit-any-catch.d.ts.map +1 -1
- package/dist/rules/no-implicit-any-catch.js +3 -2
- package/dist/rules/no-implicit-any-catch.js.map +1 -1
- package/dist/rules/no-internal.d.ts.map +1 -1
- package/dist/rules/no-internal.js +4 -3
- package/dist/rules/no-internal.js.map +1 -1
- package/dist/rules/no-language-mixing.d.ts.map +1 -1
- package/dist/rules/no-language-mixing.js +3 -2
- package/dist/rules/no-language-mixing.js.map +1 -1
- package/dist/rules/no-misused-generics.d.ts.map +1 -1
- package/dist/rules/no-misused-generics.js +5 -4
- package/dist/rules/no-misused-generics.js.map +1 -1
- package/dist/rules/no-negated-conditions.d.ts.map +1 -1
- package/dist/rules/no-negated-conditions.js +2 -1
- package/dist/rules/no-negated-conditions.js.map +1 -1
- package/dist/rules/no-param-reassign.d.ts.map +1 -1
- package/dist/rules/no-param-reassign.js +2 -1
- package/dist/rules/no-param-reassign.js.map +1 -1
- package/dist/rules/no-restricted-syntax.d.ts.map +1 -1
- package/dist/rules/no-restricted-syntax.js +2 -1
- package/dist/rules/no-restricted-syntax.js.map +1 -1
- package/dist/rules/no-self-import.d.ts.map +1 -1
- package/dist/rules/no-self-import.js +2 -1
- package/dist/rules/no-self-import.js.map +1 -1
- package/dist/rules/no-underscore-export.d.ts.map +1 -1
- package/dist/rules/no-underscore-export.js +3 -2
- package/dist/rules/no-underscore-export.js.map +1 -1
- package/dist/rules/no-unnecessary-break.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-break.js +4 -3
- package/dist/rules/no-unnecessary-break.js.map +1 -1
- package/dist/rules/no-unnecessary-initialization.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-initialization.js +3 -2
- package/dist/rules/no-unnecessary-initialization.js.map +1 -1
- package/dist/rules/no-unnecessary-template-literal.d.ts.map +1 -1
- package/dist/rules/no-unnecessary-template-literal.js +3 -2
- package/dist/rules/no-unnecessary-template-literal.js.map +1 -1
- package/dist/rules/only-export-name.d.ts.map +1 -1
- package/dist/rules/only-export-name.js +13 -10
- package/dist/rules/only-export-name.js.map +1 -1
- package/dist/rules/prefer-interface.d.ts.map +1 -1
- package/dist/rules/prefer-interface.js +5 -8
- package/dist/rules/prefer-interface.js.map +1 -1
- package/dist/rules/require-jsdoc.d.ts.map +1 -1
- package/dist/rules/require-jsdoc.js +7 -7
- package/dist/rules/require-jsdoc.js.map +1 -1
- package/dist/rules/require-syntax.d.ts.map +1 -1
- package/dist/rules/require-syntax.js +2 -1
- package/dist/rules/require-syntax.js.map +1 -1
- package/dist/rules/sort-array.d.ts.map +1 -1
- package/dist/rules/sort-array.js +8 -7
- package/dist/rules/sort-array.js.map +1 -1
- package/dist/rules/sort-class-members.d.ts.map +1 -1
- package/dist/rules/sort-class-members.js +2 -1
- package/dist/rules/sort-class-members.js.map +1 -1
- package/dist/rules/sort-export-specifiers.d.ts.map +1 -1
- package/dist/rules/sort-export-specifiers.js +6 -6
- package/dist/rules/sort-export-specifiers.js.map +1 -1
- package/dist/rules/sort-keys.d.ts.map +1 -1
- package/dist/rules/sort-keys.js +5 -5
- package/dist/rules/sort-keys.js.map +1 -1
- package/dist/rules/sort-top-comments.d.ts.map +1 -1
- package/dist/rules/sort-top-comments.js +7 -8
- package/dist/rules/sort-top-comments.js.map +1 -1
- package/dist/rules/switch-case-spacing.d.ts.map +1 -1
- package/dist/rules/switch-case-spacing.js +2 -2
- package/dist/rules/switch-case-spacing.js.map +1 -1
- package/dist/rules/template-literal-format.d.ts.map +1 -1
- package/dist/rules/template-literal-format.js +11 -13
- package/dist/rules/template-literal-format.js.map +1 -1
- package/dist/rules/throw-error.d.ts.map +1 -1
- package/dist/rules/throw-error.js +6 -4
- package/dist/rules/throw-error.js.map +1 -1
- package/dist/rules/typescript-array-callback-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-array-callback-return-type.js +3 -2
- package/dist/rules/typescript-array-callback-return-type.js.map +1 -1
- package/dist/rules/typescript-class-methods-use-this.d.ts.map +1 -1
- package/dist/rules/typescript-class-methods-use-this.js +4 -3
- package/dist/rules/typescript-class-methods-use-this.js.map +1 -1
- package/dist/rules/typescript-no-boolean-literal-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-boolean-literal-type.js +3 -2
- package/dist/rules/typescript-no-boolean-literal-type.js.map +1 -1
- package/dist/rules/typescript-no-inferrable-types.d.ts.map +1 -1
- package/dist/rules/typescript-no-inferrable-types.js +3 -2
- package/dist/rules/typescript-no-inferrable-types.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-const.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-const.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-const.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-let.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-let.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-let.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-optional.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-optional.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-optional.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-return-type.js +6 -5
- package/dist/rules/typescript-no-redundant-undefined-return-type.js.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-var.d.ts.map +1 -1
- package/dist/rules/typescript-no-redundant-undefined-var.js +4 -3
- package/dist/rules/typescript-no-redundant-undefined-var.js.map +1 -1
- package/dist/rules/typescript-prefer-enum.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-enum.js +6 -5
- package/dist/rules/typescript-prefer-enum.js.map +1 -1
- package/dist/rules/typescript-prefer-readonly-array.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-readonly-array.js +3 -2
- package/dist/rules/typescript-prefer-readonly-array.js.map +1 -1
- package/dist/rules/typescript-prefer-readonly-property.d.ts.map +1 -1
- package/dist/rules/typescript-prefer-readonly-property.js +5 -4
- package/dist/rules/typescript-prefer-readonly-property.js.map +1 -1
- package/dist/rules/typescript-require-prop-type-annotation.d.ts.map +1 -1
- package/dist/rules/typescript-require-prop-type-annotation.js +5 -4
- package/dist/rules/typescript-require-prop-type-annotation.js.map +1 -1
- package/dist/rules/typescript-require-this-void.d.ts.map +1 -1
- package/dist/rules/typescript-require-this-void.js +2 -1
- package/dist/rules/typescript-require-this-void.js.map +1 -1
- package/dist/rules.d.ts +2 -1
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +14 -7
- package/dist/rules.js.map +1 -1
- package/docs/docusaurus/blog/2026-03-09-docs-site-online.md +3 -3
- package/docs/docusaurus/blog/2026-03-11-adr-driven-docs-roadmap.md +3 -3
- package/docs/docusaurus/docusaurus.config.ts +2 -3
- package/docs/docusaurus/sidebars.rules.ts +8 -0
- package/docs/docusaurus/site-docs/getting-started.md +2 -3
- package/docs/docusaurus/site-docs/guides/blog-post-backlog.md +12 -12
- package/docs/docusaurus/site-docs/guides/migration-from-etc-and-misc.md +7 -7
- package/docs/docusaurus/site-docs/intro.md +1 -1
- package/docs/rules/array-type.md +6 -6
- package/docs/rules/class-match-filename.md +6 -6
- package/docs/rules/comment-spacing.md +9 -9
- package/docs/rules/consistent-empty-lines.md +8 -9
- package/docs/rules/consistent-enum-members.md +17 -16
- package/docs/rules/consistent-filename.md +12 -10
- package/docs/rules/consistent-import.md +11 -11
- package/docs/rules/consistent-optional-props.md +12 -12
- package/docs/rules/consistent-source-extension.md +6 -6
- package/docs/rules/consistent-symbol-description.md +6 -6
- package/docs/rules/default-case.md +20 -20
- package/docs/rules/disallow-import.md +11 -9
- package/docs/rules/export-matching-filename-only.md +12 -10
- package/docs/rules/getting-started.md +7 -6
- package/docs/rules/match-filename.md +13 -13
- package/docs/rules/max-identifier-blocks.md +7 -7
- package/docs/rules/no-assign-mutated-array.md +31 -11
- package/docs/rules/no-at-sign-import.md +9 -9
- package/docs/rules/no-at-sign-internal-import.md +9 -9
- package/docs/rules/no-chain-coalescence-mixture.md +6 -6
- package/docs/rules/no-commented-out-code.md +12 -12
- package/docs/rules/no-const-enum.md +13 -13
- package/docs/rules/no-deprecated.md +26 -26
- package/docs/rules/no-enum.md +14 -14
- package/docs/rules/no-expression-empty-lines.md +12 -20
- package/docs/rules/no-foreach.md +14 -10
- package/docs/rules/no-implicit-any-catch.md +31 -31
- package/docs/rules/no-index-import.md +9 -9
- package/docs/rules/no-internal-modules.md +9 -9
- package/docs/rules/no-internal.md +26 -26
- package/docs/rules/no-language-mixing.md +6 -6
- package/docs/rules/no-misused-generics.md +8 -8
- package/docs/rules/no-mixed-enums.md +14 -14
- package/docs/rules/no-negated-conditions.md +16 -12
- package/docs/rules/no-nodejs-modules.md +9 -9
- package/docs/rules/no-param-reassign.md +19 -19
- package/docs/rules/no-relative-parent-import.md +12 -12
- package/docs/rules/no-restricted-syntax.md +24 -23
- package/docs/rules/no-secret.md +6 -6
- package/docs/rules/no-self-import.md +6 -6
- package/docs/rules/no-shadow.md +12 -12
- package/docs/rules/no-sibling-import.md +8 -8
- package/docs/rules/no-single-line-comment.md +10 -10
- package/docs/rules/no-t.md +15 -15
- package/docs/rules/no-underscore-export.md +6 -6
- package/docs/rules/no-unnecessary-as-const.md +8 -8
- package/docs/rules/no-unnecessary-break.md +19 -19
- package/docs/rules/no-unnecessary-initialization.md +8 -8
- package/docs/rules/no-unnecessary-template-literal.md +7 -7
- package/docs/rules/no-unused-disable.md +6 -6
- package/docs/rules/no-useless-generics.md +10 -10
- package/docs/rules/no-value-tostring.md +6 -6
- package/docs/rules/no-writeonly.md +26 -26
- package/docs/rules/object-format.md +16 -16
- package/docs/rules/only-export-name.md +10 -8
- package/docs/rules/overview.md +8 -7
- package/docs/rules/prefer-arrow-function-property.md +24 -24
- package/docs/rules/prefer-const-require.md +8 -8
- package/docs/rules/prefer-includes.md +17 -8
- package/docs/rules/prefer-interface.md +24 -24
- package/docs/rules/prefer-less-than.md +10 -10
- package/docs/rules/prefer-object-has-own.md +6 -6
- package/docs/rules/prefer-only-export.md +6 -6
- package/docs/rules/presets/all-strict.md +1 -1
- package/docs/rules/presets/minimal.md +44 -0
- package/docs/rules/presets/recommended.md +3 -1
- package/docs/rules/presets/strict-type-checked.md +1 -1
- package/docs/rules/presets/strict.md +1 -1
- package/docs/rules/require-jsdoc.md +29 -17
- package/docs/rules/require-syntax.md +23 -19
- package/docs/rules/restrict-identifier-characters.md +6 -6
- package/docs/rules/sort-array.md +16 -8
- package/docs/rules/sort-call-signature.md +16 -16
- package/docs/rules/sort-class-members.md +14 -14
- package/docs/rules/sort-construct-signature.md +14 -14
- package/docs/rules/sort-export-specifiers.md +6 -6
- package/docs/rules/sort-keys.md +15 -15
- package/docs/rules/sort-top-comments.md +6 -6
- package/docs/rules/switch-case-spacing.md +20 -18
- package/docs/rules/template-literal-format.md +6 -6
- package/docs/rules/throw-error.md +6 -6
- package/docs/rules/throw-new-error.md +6 -6
- package/docs/rules/typescript-array-callback-return-type.md +22 -10
- package/docs/rules/typescript-class-methods-use-this.md +21 -21
- package/docs/rules/typescript-consistent-array-type-name.md +6 -6
- package/docs/rules/typescript-define-function-in-one-statement.md +6 -6
- package/docs/rules/typescript-exhaustive-switch.md +20 -20
- package/docs/rules/typescript-no-boolean-literal-type.md +10 -10
- package/docs/rules/typescript-no-complex-declarator-type.md +15 -15
- package/docs/rules/typescript-no-complex-return-type.md +9 -9
- package/docs/rules/typescript-no-empty-interfaces.md +7 -7
- package/docs/rules/typescript-no-inferrable-types.md +10 -10
- package/docs/rules/typescript-no-multi-type-tuples.md +6 -6
- package/docs/rules/typescript-no-never.md +8 -8
- package/docs/rules/typescript-no-redundant-undefined-const.md +6 -6
- package/docs/rules/typescript-no-redundant-undefined-default-parameter.md +11 -11
- package/docs/rules/typescript-no-redundant-undefined-let.md +6 -6
- package/docs/rules/typescript-no-redundant-undefined-optional.md +9 -9
- package/docs/rules/typescript-no-redundant-undefined-promise-return-type.md +17 -17
- package/docs/rules/typescript-no-redundant-undefined-readonly-property.md +14 -14
- package/docs/rules/typescript-no-redundant-undefined-return-type.md +16 -16
- package/docs/rules/typescript-no-redundant-undefined-var.md +6 -6
- package/docs/rules/typescript-no-restricted-syntax.md +10 -10
- package/docs/rules/typescript-no-unsafe-object-assign.md +6 -6
- package/docs/rules/typescript-no-unsafe-object-assignment.md +6 -6
- package/docs/rules/typescript-prefer-array-type-alias.md +6 -6
- package/docs/rules/typescript-prefer-class-method.md +9 -9
- package/docs/rules/typescript-prefer-enum.md +11 -11
- package/docs/rules/typescript-prefer-named-tuple-members.md +6 -6
- package/docs/rules/typescript-prefer-readonly-array-parameter.md +8 -8
- package/docs/rules/typescript-prefer-readonly-array.md +6 -6
- package/docs/rules/typescript-prefer-readonly-index-signature.md +12 -12
- package/docs/rules/typescript-prefer-readonly-map.md +6 -6
- package/docs/rules/typescript-prefer-readonly-property.md +10 -10
- package/docs/rules/typescript-prefer-readonly-record.md +9 -7
- package/docs/rules/typescript-prefer-readonly-set.md +6 -6
- package/docs/rules/typescript-require-prop-type-annotation.md +12 -12
- package/docs/rules/typescript-require-readonly-array-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-array-return-type.md +11 -11
- package/docs/rules/typescript-require-readonly-array-type-alias.md +6 -6
- package/docs/rules/typescript-require-readonly-map-parameter-type.md +9 -9
- package/docs/rules/typescript-require-readonly-map-property-type.md +13 -13
- package/docs/rules/typescript-require-readonly-map-return-type.md +13 -13
- package/docs/rules/typescript-require-readonly-map-type-alias.md +7 -7
- package/docs/rules/typescript-require-readonly-record-parameter-type.md +8 -8
- package/docs/rules/typescript-require-readonly-record-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-record-return-type.md +12 -12
- package/docs/rules/typescript-require-readonly-record-type-alias.md +6 -6
- package/docs/rules/typescript-require-readonly-set-parameter-type.md +8 -8
- package/docs/rules/typescript-require-readonly-set-property-type.md +12 -12
- package/docs/rules/typescript-require-readonly-set-return-type.md +12 -12
- package/docs/rules/typescript-require-readonly-set-type-alias.md +6 -6
- package/docs/rules/typescript-require-this-void.md +14 -14
- package/docs/rules/underscore-internal.md +10 -10
- package/docs/rules/unused-internal-properties.md +14 -14
- package/docs/rules/uppercase-iife.md +8 -8
- package/docs/rules/words.md +6 -6
- package/package.json +19 -13
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/prefer-readonly-parameter-types -- ESLint fixer API callback signatures. */
|
|
2
|
+
import { arrayFirst, arrayJoin, arrayLast } from "ts-extras";
|
|
2
3
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
3
4
|
const commentText = (comment) => comment.value.trim();
|
|
4
|
-
const buildReplacement = (sourceCode, comments) => comments
|
|
5
|
+
const buildReplacement = (sourceCode, comments) => arrayJoin(comments
|
|
5
6
|
.map((comment) => sourceCode.getText(comment))
|
|
6
7
|
// eslint-disable-next-line unicorn/no-array-sort -- Node >=16.0 support baseline
|
|
7
|
-
.sort((a, b) => a.localeCompare(b))
|
|
8
|
-
.join("\n");
|
|
8
|
+
.sort((a, b) => a.localeCompare(b)), "\n");
|
|
9
9
|
/**
|
|
10
10
|
* Enforce alphabetical ordering of top-of-file comments.
|
|
11
11
|
*/
|
|
12
12
|
const rule = ruleCreator({
|
|
13
13
|
create: (context) => ({
|
|
14
14
|
Program: (node) => {
|
|
15
|
-
const firstNode = node.body
|
|
15
|
+
const firstNode = arrayFirst(node.body);
|
|
16
16
|
if (firstNode === undefined) {
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
@@ -22,12 +22,11 @@ const rule = ruleCreator({
|
|
|
22
22
|
if (comments.length < 2) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
const firstComment = comments
|
|
25
|
+
const firstComment = arrayFirst(comments);
|
|
26
26
|
if (firstComment === undefined) {
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
const lastComment = comments[comments.length - 1] ?? firstComment;
|
|
29
|
+
const lastComment = arrayLast(comments) ?? firstComment;
|
|
31
30
|
// eslint-disable-next-line unicorn/no-array-sort -- Node >=16.0 support baseline
|
|
32
31
|
const sorted = [...comments].sort((a, b) => commentText(a).localeCompare(commentText(b)));
|
|
33
32
|
const isSorted = comments.every((comment, index) => comment === sorted[index]);
|
|
@@ -35,7 +34,7 @@ const rule = ruleCreator({
|
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
37
36
|
context.report({
|
|
38
|
-
fix: (fixer) => fixer.replaceTextRange([firstComment.range
|
|
37
|
+
fix: (fixer) => fixer.replaceTextRange([arrayFirst(firstComment.range), lastComment.range[1]], buildReplacement(context.sourceCode, comments)),
|
|
39
38
|
messageId: "incorrectSorting",
|
|
40
39
|
node: firstComment,
|
|
41
40
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sort-top-comments.js","sourceRoot":"","sources":["../../src/rules/sort-top-comments.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAIhH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,WAAW,GAAG,CAAC,OAA6B,EAAU,EAAE,CAC1D,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAEzB,MAAM,gBAAgB,GAAG,CACrB,UAAyC,EACzC,QAA+B,EACzB,EAAE,CACR,QAAQ;KACH,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,iFAAiF;KAChF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"sort-top-comments.js","sourceRoot":"","sources":["../../src/rules/sort-top-comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-case-spacing.d.ts","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch-case-spacing.d.ts","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAsB3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { arrayLast } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
|
|
3
4
|
const isValidCaseBody = (node) => {
|
|
@@ -5,8 +6,7 @@ const isValidCaseBody = (node) => {
|
|
|
5
6
|
return true;
|
|
6
7
|
}
|
|
7
8
|
const [firstStatement] = node.consequent;
|
|
8
|
-
|
|
9
|
-
const lastStatement = node.consequent[node.consequent.length - 1];
|
|
9
|
+
const lastStatement = arrayLast(node.consequent);
|
|
10
10
|
if (firstStatement === undefined || lastStatement === undefined) {
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-case-spacing.js","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAW,EAAE;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,
|
|
1
|
+
{"version":3,"file":"switch-case-spacing.js","sourceRoot":"","sources":["../../src/rules/switch-case-spacing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAW,EAAE;IAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IACzC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,cAAc,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,qBAAqB,GACvB,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;IACxD,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IACjE,MAAM,aAAa,GACf,aAAa,CAAC,IAAI,KAAK,gBAAgB,IAAI,eAAe,CAAC;IAE/D,OAAO,CAAC,qBAAqB,IAAI,eAAe,CAAC,IAAI,aAAa,CAAC;AACvE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,UAAU,EAAE,CAAC,IAA6B,EAAQ,EAAE;YAChD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,oFAAoF;SAC5F;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,0DAA0D;SACjE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,qBAAqB;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,yDAAyD;IAClE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,uBAAuB;aAC/B;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iDAAiD;aACzD;SACJ,CAAC;KACL;IACD,MAAM,EAAE,qBAAqB;CAChC,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-literal-format.d.ts","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template-literal-format.d.ts","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,eAAe,CAAC;AAElC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAqD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAyC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,29 +1,27 @@
|
|
|
1
|
+
import { arrayFirst, arrayJoin, arrayLast, isEmpty, stringSplit, } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
const isMultilineTemplate = (node) => node.loc.start.line !== node.loc.end.line;
|
|
3
4
|
const hasExpectedBoundaryNewlines = (node) => {
|
|
4
|
-
const first = node.quasis
|
|
5
|
-
|
|
6
|
-
const last = node.quasis[node.quasis.length - 1]?.value.raw ?? "";
|
|
5
|
+
const first = arrayFirst(node.quasis)?.value.raw ?? "";
|
|
6
|
+
const last = arrayLast(node.quasis)?.value.raw ?? "";
|
|
7
7
|
return first.startsWith("\n") && last.endsWith("\n");
|
|
8
8
|
};
|
|
9
9
|
const normalizeTemplate = (sourceText) => {
|
|
10
|
-
const lines = sourceText.
|
|
10
|
+
const lines = stringSplit(sourceText.replaceAll(/\r\n?/gu, "\n"), "\n");
|
|
11
11
|
const contentLines = lines.slice(1, -1);
|
|
12
12
|
const indents = contentLines
|
|
13
13
|
.filter((line) => line.trim().length > 0)
|
|
14
14
|
.map((line) => /^\s*/u.exec(line)?.[0].length ?? 0);
|
|
15
|
-
const minIndent = indents
|
|
16
|
-
const normalizedContent = contentLines
|
|
15
|
+
const minIndent = isEmpty(indents) ? 0 : Math.min(...indents);
|
|
16
|
+
const normalizedContent = arrayJoin(contentLines
|
|
17
17
|
.map((line) => line.length >= minIndent ? line.slice(minIndent) : line)
|
|
18
|
-
.map((line) => ` ${line}`)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return [
|
|
23
|
-
lines[0],
|
|
18
|
+
.map((line) => ` ${line}`), "\n");
|
|
19
|
+
const lastLine = arrayLast(lines) ?? "";
|
|
20
|
+
return arrayJoin([
|
|
21
|
+
arrayFirst(lines),
|
|
24
22
|
normalizedContent,
|
|
25
23
|
lastLine,
|
|
26
|
-
]
|
|
24
|
+
], "\n");
|
|
27
25
|
};
|
|
28
26
|
const buildFix = (sourceCode, node) => (fixer) => {
|
|
29
27
|
const text = sourceCode.getText(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-literal-format.js","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,mBAAmB,GAAG,CAAC,IAAkC,EAAW,EAAE,CACxE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAE9C,MAAM,2BAA2B,GAAG,CAChC,IAAkC,EAC3B,EAAE;IACT,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"template-literal-format.js","sourceRoot":"","sources":["../../src/rules/template-literal-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throw-error.d.ts","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"throw-error.d.ts","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAErD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AA6C3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAgJ5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getConstrainedTypeAtLocation, isBuiltinSymbolLike, isErrorLike, isTypeAnyType, isTypeUnknownType, } from "@typescript-eslint/type-utils";
|
|
2
2
|
import { ESLintUtils, } from "@typescript-eslint/utils";
|
|
3
|
+
import { arrayFirst, isDefined } from "ts-extras";
|
|
3
4
|
import * as tsutils from "tsutils";
|
|
4
5
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
5
6
|
const isAllowedThrowableVariant = (type, program) => isTypeAnyType(type) ||
|
|
@@ -49,7 +50,7 @@ const rule = ruleCreator({
|
|
|
49
50
|
});
|
|
50
51
|
};
|
|
51
52
|
const checkRejectionCall = (callExpression) => {
|
|
52
|
-
const rejectionValue = callExpression.arguments
|
|
53
|
+
const rejectionValue = arrayFirst(callExpression.arguments);
|
|
53
54
|
if (rejectionValue === undefined) {
|
|
54
55
|
return;
|
|
55
56
|
}
|
|
@@ -74,10 +75,11 @@ const rule = ruleCreator({
|
|
|
74
75
|
if (rejectParameter?.type !== "Identifier") {
|
|
75
76
|
return;
|
|
76
77
|
}
|
|
77
|
-
const rejectVariable = context.sourceCode
|
|
78
|
+
const rejectVariable = arrayFirst(context.sourceCode
|
|
78
79
|
.getDeclaredVariables(callback)
|
|
79
|
-
.
|
|
80
|
-
|
|
80
|
+
.filter((declaredVariable) => declaredVariable.name ===
|
|
81
|
+
rejectParameter.name));
|
|
82
|
+
if (!isDefined(rejectVariable)) {
|
|
81
83
|
return;
|
|
82
84
|
}
|
|
83
85
|
for (const reference of rejectVariable.references) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throw-error.js","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,4BAA4B,EAC5B,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,iBAAiB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEH,WAAW,GAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,yBAAyB,GAAG,CAC9B,IAAuB,EACvB,OAA6B,EACtB,EAAE,CACT,aAAa,CAAC,IAAI,CAAC;IACnB,iBAAiB,CAAC,IAAI,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAE/B,MAAM,2BAA2B,GAAG,CAChC,IAAuB,EACvB,OAA6B,EACtB,EAAE,CACT,OAAO;KACF,cAAc,CAAC,IAAI,CAAC;KACpB,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CACnB,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,CAClD,CAAC;AAEV,MAAM,6BAA6B,GAAG,CAClC,IAAuB,EACvB,OAA6B,EACtB,EAAE,CACT,OAAO;KACF,cAAc,CAAC,IAAI,CAAC;KACpB,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAClB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAClE,CAAC;AAEV,MAAM,mBAAmB,GAAG,CAAC,IAA6B,EAAW,EAAE,CACnE,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;AAE1D,MAAM,qCAAqC,GAAG,CAC1C,UAAyC,EACzC,IAAuB,EACe,EAAE;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,EAAE,CACb,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,aAAa,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAChB,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAEnC,MAAM,oBAAoB,GAAG,CACzB,IAAuB,EACvB,KAAoC,EAChC,EAAE;YACN,MAAM,IAAI,GAAG,4BAA4B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YAEhE,IAAI,2BAA2B,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBAC7C,OAAO;YACX,CAAC;YAED,MAAM,aAAa,GAAG,qCAAqC,CACvD,UAAU,EACV,IAAI,CACP,CAAC;YAEF,OAAO,CAAC,MAAM,CAAC;gBACX,IAAI,EAAE,EAAE,KAAK,EAAE;gBACf,SAAS,EAAE,WAAW;gBACtB,IAAI;gBACJ,GAAG,CAAC,aAAa,KAAK,SAAS;oBAC3B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC;wBACI,OAAO,EAAE;4BACL;gCACI,GAAG,EAAE,aAAa;gCAClB,SAAS,EAAE,oBAAoB;6BAClC;yBACJ;qBACJ,CAAC;aACX,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,CACvB,cAA2C,EACvC,EAAE;YACN,MAAM,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"throw-error.js","sourceRoot":"","sources":["../../src/rules/throw-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-array-callback-return-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-array-callback-return-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAwC3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAoE5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { containsAllTypesByName, getConstrainedTypeAtLocation, isTypeArrayTypeOrUnionOfArrayTypes, } from "@typescript-eslint/type-utils";
|
|
2
2
|
import { ESLintUtils } from "@typescript-eslint/utils";
|
|
3
|
+
import { arrayFirst, setHas } from "ts-extras";
|
|
3
4
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
4
5
|
const arrayCallbackMethodNames = new Set([
|
|
5
6
|
"every",
|
|
@@ -21,7 +22,7 @@ const isArrayLikeType = (typeChecker, type) => {
|
|
|
21
22
|
isTypeArrayTypeOrUnionOfArrayTypes(type, typeChecker) ||
|
|
22
23
|
containsAllTypesByName(type, false, readonlyArrayTypeNames, true));
|
|
23
24
|
};
|
|
24
|
-
const isFirstCallbackArgument = (callExpression, callback) => callExpression.arguments
|
|
25
|
+
const isFirstCallbackArgument = (callExpression, callback) => arrayFirst(callExpression.arguments) === callback;
|
|
25
26
|
/**
|
|
26
27
|
* Require explicit return types for array callback functions.
|
|
27
28
|
*/
|
|
@@ -42,7 +43,7 @@ const rule = ruleCreator({
|
|
|
42
43
|
if (callee.type !== "MemberExpression" ||
|
|
43
44
|
callee.object.type === "Super" ||
|
|
44
45
|
callee.property.type !== "Identifier" ||
|
|
45
|
-
!arrayCallbackMethodNames
|
|
46
|
+
!setHas(arrayCallbackMethodNames, callee.property.name)) {
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
48
49
|
const objectType = getConstrainedTypeAtLocation(parserServices, callee.object);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-array-callback-return-type.js","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,sBAAsB,EACtB,4BAA4B,EAC5B,kCAAkC,GACrC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAuB,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"typescript-array-callback-return-type.js","sourceRoot":"","sources":["../../src/rules/typescript-array-callback-return-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-class-methods-use-this.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-class-methods-use-this.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAqD3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA0C5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAgB3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { arrayAt, objectEntries, objectHasOwn } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
|
|
3
|
-
const isNode = (value) => typeof value === "object" && value !== null && "type"
|
|
4
|
+
const isNode = (value) => typeof value === "object" && value !== null && objectHasOwn(value, "type");
|
|
4
5
|
const containsThisExpression = (root) => {
|
|
5
6
|
let stack = [root];
|
|
6
7
|
const enqueue = (value) => {
|
|
@@ -9,7 +10,7 @@ const containsThisExpression = (root) => {
|
|
|
9
10
|
}
|
|
10
11
|
};
|
|
11
12
|
while (stack.length > 0) {
|
|
12
|
-
const node = stack
|
|
13
|
+
const node = arrayAt(stack, -1);
|
|
13
14
|
stack = stack.slice(0, -1);
|
|
14
15
|
if (node === undefined) {
|
|
15
16
|
continue;
|
|
@@ -17,7 +18,7 @@ const containsThisExpression = (root) => {
|
|
|
17
18
|
if (node.type === "ThisExpression") {
|
|
18
19
|
return true;
|
|
19
20
|
}
|
|
20
|
-
for (const [key, child] of
|
|
21
|
+
for (const [key, child] of objectEntries(node)) {
|
|
21
22
|
if (key === "loc" || key === "parent" || key === "range") {
|
|
22
23
|
continue;
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,MAAM,GAAG,CAAC,KAAc,EAA8B,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"typescript-class-methods-use-this.js","sourceRoot":"","sources":["../../src/rules/typescript-class-methods-use-this.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-boolean-literal-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-boolean-literal-type.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAU3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAqC5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { arrayJoin } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
|
-
const selector = [
|
|
3
|
+
const selector = arrayJoin([
|
|
3
4
|
"TSPropertySignature[optional=true] > TSTypeAnnotation > TSLiteralType > Literal[value=true]",
|
|
4
5
|
"TSPropertySignature[optional=true] > TSTypeAnnotation > TSLiteralType > Literal[value=false]",
|
|
5
|
-
]
|
|
6
|
+
], ", ");
|
|
6
7
|
/**
|
|
7
8
|
* Disallow optional boolean literal property types.
|
|
8
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-boolean-literal-type.js","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,QAAQ,GAAG;
|
|
1
|
+
{"version":3,"file":"typescript-no-boolean-literal-type.js","sourceRoot":"","sources":["../../src/rules/typescript-no-boolean-literal-type.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,QAAQ,GAAG,SAAS,CACtB;IACI,6FAA6F;IAC7F,8FAA8F;CACjG,EACD,IAAI,CACP,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,OAAO,CAAC,MAAM,CAAC;gBACX,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;gBAClD,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE;YACF,UAAU,EAAE,KAAK;YACjB,WAAW,EACP,iEAAiE;YACrE,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,mGAAmG;SAC3G;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EAAE,6BAA6B;SAC3C;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,oCAAoC;CAC7C,CAAC,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-inferrable-types.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-inferrable-types.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,KAAK,UAAU,GAAG,WAAW,CAAC;AAE9B,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAU3B;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAgC5D,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,IAe3B,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { arrayJoin } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
import { createReplacementRuleInfo, withDeprecatedRuleLifecycle, } from "../_internal/rule-deprecation.js";
|
|
3
|
-
const selector = [
|
|
4
|
+
const selector = arrayJoin([
|
|
4
5
|
"PropertyDefinition[value.type='Literal'] > TSTypeAnnotation",
|
|
5
6
|
"VariableDeclarator[init.type='Literal'] > Identifier.id > TSTypeAnnotation",
|
|
6
|
-
]
|
|
7
|
+
], ", ");
|
|
7
8
|
/**
|
|
8
9
|
* Disallow explicit primitive type annotations when they are inferrable.
|
|
9
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,QAAQ,GAAG;
|
|
1
|
+
{"version":3,"file":"typescript-no-inferrable-types.js","sourceRoot":"","sources":["../../src/rules/typescript-no-inferrable-types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EACH,yBAAyB,EACzB,2BAA2B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,MAAM,QAAQ,GAAG,SAAS,CACtB;IACI,6DAA6D;IAC7D,4EAA4E;CAC/E,EACD,IAAI,CACP,CAAC;AAEF;;GAEG;AACH,MAAM,IAAI,GAAwD,WAAW,CAG3E;IACE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAuB,EAAQ,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC;gBACX,SAAS,EAAE,WAAW;gBACtB,IAAI;aACP,CAAC,CAAC;QACP,CAAC;KACJ,CAAC;IACF,cAAc,EAAE,EAAE;IAClB,IAAI,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE;YACF,UAAU,EAAE,IAAI;YAChB,WAAW,EACP,sFAAsF;YAC1F,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,+FAA+F;SACvG;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACN,SAAS,EACL,kEAAkE;SACzE;QACD,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,YAAY;KACrB;IACD,IAAI,EAAE,gCAAgC;CACzC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,cAAc,GAAgB,2BAA2B,CAAC,IAAI,EAAE;IAClE,OAAO,EAAE,gEAAgE;IACzE,UAAU,EAAE;QACR,yBAAyB,CAAC;YACtB,MAAM,EAAE;gBACJ,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,+BAA+B;aACvC;YACD,IAAI,EAAE;gBACF,IAAI,EAAE,qBAAqB;gBAC3B,GAAG,EAAE,wDAAwD;aAChE;SACJ,CAAC;KACL;IACD,MAAM,EAAE,gCAAgC;CAC3C,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-const.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-const.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAuF5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { arrayJoin, isDefined, isEmpty } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
const buildFixedTypeText = (sourceCode, unionType) => {
|
|
3
4
|
let nonUndefinedTypeTexts = [];
|
|
@@ -10,11 +11,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
|
|
|
10
11
|
sourceCode.getText(typeNode),
|
|
11
12
|
];
|
|
12
13
|
}
|
|
13
|
-
if (nonUndefinedTypeTexts
|
|
14
|
+
if (isEmpty(nonUndefinedTypeTexts) ||
|
|
14
15
|
nonUndefinedTypeTexts.length === unionType.types.length) {
|
|
15
16
|
return undefined;
|
|
16
17
|
}
|
|
17
|
-
return nonUndefinedTypeTexts
|
|
18
|
+
return arrayJoin(nonUndefinedTypeTexts, " | ");
|
|
18
19
|
};
|
|
19
20
|
const getTypeAnnotationFromDeclarator = (declarator) => {
|
|
20
21
|
if (declarator.id.type === "Identifier" ||
|
|
@@ -87,7 +88,7 @@ const rule = ruleCreator({
|
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
89
90
|
const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
|
|
90
|
-
if (fixedTypeText
|
|
91
|
+
if (!isDefined(fixedTypeText)) {
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
93
94
|
const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-const.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,kBAAkB,GAAG,CACvB,UAAyC,EACzC,SAAmC,EACjB,EAAE;IACpB,IAAI,qBAAqB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACzC,SAAS;QACb,CAAC;QAED,qBAAqB,GAAG;YACpB,GAAG,qBAAqB;YACxB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IACI,
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-const.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-const.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-default-parameter.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-default-parameter.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAkJ3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAiG5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { arrayJoin, isDefined, isEmpty } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
const functionLikeNodeSelector = ":matches(ArrowFunctionExpression, FunctionDeclaration, FunctionExpression, TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSConstructorType, TSDeclareFunction, TSEmptyBodyFunctionExpression, TSFunctionType, TSMethodSignature)";
|
|
3
4
|
const getParametersFromFunctionLikeNode = (node) => {
|
|
@@ -86,11 +87,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
|
|
|
86
87
|
sourceCode.getText(typeNode),
|
|
87
88
|
];
|
|
88
89
|
}
|
|
89
|
-
if (nonUndefinedTypeTexts
|
|
90
|
+
if (isEmpty(nonUndefinedTypeTexts) ||
|
|
90
91
|
nonUndefinedTypeTexts.length === unionType.types.length) {
|
|
91
92
|
return undefined;
|
|
92
93
|
}
|
|
93
|
-
return nonUndefinedTypeTexts
|
|
94
|
+
return arrayJoin(nonUndefinedTypeTexts, " | ");
|
|
94
95
|
};
|
|
95
96
|
/**
|
|
96
97
|
* Disallow redundant `undefined` unions on default parameters with
|
|
@@ -121,7 +122,7 @@ const rule = ruleCreator({
|
|
|
121
122
|
continue;
|
|
122
123
|
}
|
|
123
124
|
const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
|
|
124
|
-
if (fixedTypeText
|
|
125
|
+
if (!isDefined(fixedTypeText)) {
|
|
125
126
|
continue;
|
|
126
127
|
}
|
|
127
128
|
const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-default-parameter.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-default-parameter.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-default-parameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-let.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-let.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAmG3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA8F5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { arrayJoin, isDefined, isEmpty } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
3
|
const buildFixedTypeText = (sourceCode, unionType) => {
|
|
3
4
|
let nonUndefinedTypeTexts = [];
|
|
@@ -10,11 +11,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
|
|
|
10
11
|
sourceCode.getText(typeNode),
|
|
11
12
|
];
|
|
12
13
|
}
|
|
13
|
-
if (nonUndefinedTypeTexts
|
|
14
|
+
if (isEmpty(nonUndefinedTypeTexts) ||
|
|
14
15
|
nonUndefinedTypeTexts.length === unionType.types.length) {
|
|
15
16
|
return undefined;
|
|
16
17
|
}
|
|
17
|
-
return nonUndefinedTypeTexts
|
|
18
|
+
return arrayJoin(nonUndefinedTypeTexts, " | ");
|
|
18
19
|
};
|
|
19
20
|
const unwrapExpression = (expression) => {
|
|
20
21
|
if (expression.type === "TSAsExpression" ||
|
|
@@ -91,7 +92,7 @@ const rule = ruleCreator({
|
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
93
94
|
const fixedTypeText = buildFixedTypeText(sourceCode, typeAnnotation.typeAnnotation);
|
|
94
|
-
if (fixedTypeText
|
|
95
|
+
if (!isDefined(fixedTypeText)) {
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
const fix = (fixer) => fixer.replaceText(typeAnnotation.typeAnnotation, fixedTypeText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-let.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM3D,MAAM,kBAAkB,GAAG,CACvB,UAAyC,EACzC,SAAmC,EACjB,EAAE;IACpB,IAAI,qBAAqB,GAAsB,EAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACzC,SAAS;QACb,CAAC;QAED,qBAAqB,GAAG;YACpB,GAAG,qBAAqB;YACxB,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IACI,
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-let.js","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-let.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-no-redundant-undefined-optional.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-optional.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typescript-no-redundant-undefined-optional.d.ts","sourceRoot":"","sources":["../../src/rules/typescript-no-redundant-undefined-optional.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,KAAK,UAAU,GAAG,WAAW,GAAG,iCAAiC,CAAC;AAElE,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAsC3B;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CA4D5D,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { arrayJoin, isDefined, isEmpty } from "ts-extras";
|
|
1
2
|
import { ruleCreator } from "../_internal/rule-creator.js";
|
|
2
|
-
const selector = [
|
|
3
|
+
const selector = arrayJoin([
|
|
3
4
|
"Identifier[optional=true] > TSTypeAnnotation > TSUnionType",
|
|
4
5
|
"TSNamedTupleMember[optional=true] > TSUnionType",
|
|
5
6
|
"TSOptionalType > TSUnionType",
|
|
6
|
-
]
|
|
7
|
+
], ", ");
|
|
7
8
|
const buildFixedTypeText = (sourceCode, unionType) => {
|
|
8
9
|
let nonUndefinedTypeTexts = [];
|
|
9
10
|
for (const typeNode of unionType.types) {
|
|
@@ -15,11 +16,11 @@ const buildFixedTypeText = (sourceCode, unionType) => {
|
|
|
15
16
|
sourceCode.getText(typeNode),
|
|
16
17
|
];
|
|
17
18
|
}
|
|
18
|
-
if (nonUndefinedTypeTexts
|
|
19
|
+
if (isEmpty(nonUndefinedTypeTexts) ||
|
|
19
20
|
nonUndefinedTypeTexts.length === unionType.types.length) {
|
|
20
21
|
return undefined;
|
|
21
22
|
}
|
|
22
|
-
return nonUndefinedTypeTexts
|
|
23
|
+
return arrayJoin(nonUndefinedTypeTexts, " | ");
|
|
23
24
|
};
|
|
24
25
|
/**
|
|
25
26
|
* Disallow redundant `undefined` unions on optional parameters and tuple
|
|
@@ -34,7 +35,7 @@ const rule = ruleCreator({
|
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
36
37
|
const fixedTypeText = buildFixedTypeText(sourceCode, node);
|
|
37
|
-
if (fixedTypeText
|
|
38
|
+
if (!isDefined(fixedTypeText)) {
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
const fix = (fixer) => fixer.replaceText(node, fixedTypeText);
|