eslint-plugin-etc-misc 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/LICENSE +21 -0
- package/README.md +259 -0
- package/dist/_internal/casing.d.ts +13 -0
- package/dist/_internal/casing.d.ts.map +1 -0
- package/dist/_internal/casing.js +34 -0
- package/dist/_internal/casing.js.map +1 -0
- package/dist/_internal/create-external-rule.d.ts +12 -0
- package/dist/_internal/create-external-rule.d.ts.map +1 -0
- package/dist/_internal/create-external-rule.js +66 -0
- package/dist/_internal/create-external-rule.js.map +1 -0
- package/dist/_internal/create-import-pattern-rule.d.ts +39 -0
- package/dist/_internal/create-import-pattern-rule.d.ts.map +1 -0
- package/dist/_internal/create-import-pattern-rule.js +67 -0
- package/dist/_internal/create-import-pattern-rule.js.map +1 -0
- package/dist/_internal/create-selector-rule.d.ts +18 -0
- package/dist/_internal/create-selector-rule.d.ts.map +1 -0
- package/dist/_internal/create-selector-rule.js +31 -0
- package/dist/_internal/create-selector-rule.js.map +1 -0
- package/dist/_internal/get-core-rule.d.ts +8 -0
- package/dist/_internal/get-core-rule.d.ts.map +1 -0
- package/dist/_internal/get-core-rule.js +14 -0
- package/dist/_internal/get-core-rule.js.map +1 -0
- package/dist/_internal/identifier-blocks.d.ts +10 -0
- package/dist/_internal/identifier-blocks.d.ts.map +1 -0
- package/dist/_internal/identifier-blocks.js +24 -0
- package/dist/_internal/identifier-blocks.js.map +1 -0
- package/dist/_internal/ignore-patterns.d.ts +26 -0
- package/dist/_internal/ignore-patterns.d.ts.map +1 -0
- package/dist/_internal/ignore-patterns.js +35 -0
- package/dist/_internal/ignore-patterns.js.map +1 -0
- package/dist/_internal/import-patterns.d.ts +30 -0
- package/dist/_internal/import-patterns.d.ts.map +1 -0
- package/dist/_internal/import-patterns.js +52 -0
- package/dist/_internal/import-patterns.js.map +1 -0
- package/dist/_internal/plugin-meta.d.ts +13 -0
- package/dist/_internal/plugin-meta.d.ts.map +1 -0
- package/dist/_internal/plugin-meta.js +9 -0
- package/dist/_internal/plugin-meta.js.map +1 -0
- package/dist/_internal/rule-catalog.d.ts +36 -0
- package/dist/_internal/rule-catalog.d.ts.map +1 -0
- package/dist/_internal/rule-catalog.js +49 -0
- package/dist/_internal/rule-catalog.js.map +1 -0
- package/dist/_internal/rule-creator.d.ts +26 -0
- package/dist/_internal/rule-creator.d.ts.map +1 -0
- package/dist/_internal/rule-creator.js +14 -0
- package/dist/_internal/rule-creator.js.map +1 -0
- package/dist/_internal/rule-deprecation.d.ts +32 -0
- package/dist/_internal/rule-deprecation.d.ts.map +1 -0
- package/dist/_internal/rule-deprecation.js +38 -0
- package/dist/_internal/rule-deprecation.js.map +1 -0
- package/dist/_internal/symbol-usage.d.ts +25 -0
- package/dist/_internal/symbol-usage.d.ts.map +1 -0
- package/dist/_internal/symbol-usage.js +82 -0
- package/dist/_internal/symbol-usage.js.map +1 -0
- package/dist/_internal/syntax-selectors.d.ts +24 -0
- package/dist/_internal/syntax-selectors.d.ts.map +1 -0
- package/dist/_internal/syntax-selectors.js +30 -0
- package/dist/_internal/syntax-selectors.js.map +1 -0
- package/dist/configs/all-strict.d.ts +11 -0
- package/dist/configs/all-strict.d.ts.map +1 -0
- package/dist/configs/all-strict.js +16 -0
- package/dist/configs/all-strict.js.map +1 -0
- package/dist/configs/all.d.ts +10 -0
- package/dist/configs/all.d.ts.map +1 -0
- package/dist/configs/all.js +18 -0
- package/dist/configs/all.js.map +1 -0
- package/dist/configs/recommended.d.ts +29 -0
- package/dist/configs/recommended.d.ts.map +1 -0
- package/dist/configs/recommended.js +29 -0
- package/dist/configs/recommended.js.map +1 -0
- package/dist/configs/strict-type-checked.d.ts +15 -0
- package/dist/configs/strict-type-checked.d.ts.map +1 -0
- package/dist/configs/strict-type-checked.js +38 -0
- package/dist/configs/strict-type-checked.js.map +1 -0
- package/dist/configs/strict.d.ts +13 -0
- package/dist/configs/strict.d.ts.map +1 -0
- package/dist/configs/strict.js +10 -0
- package/dist/configs/strict.js.map +1 -0
- package/dist/configs.d.ts +34 -0
- package/dist/configs.d.ts.map +1 -0
- package/dist/configs.js +33 -0
- package/dist/configs.js.map +1 -0
- package/dist/plugin.cjs +4 -0
- package/dist/plugin.d.cts +2 -0
- package/dist/plugin.d.ts +15 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +14 -0
- package/dist/plugin.js.map +1 -0
- package/dist/rules/array-type.d.ts +8 -0
- package/dist/rules/array-type.d.ts.map +1 -0
- package/dist/rules/array-type.js +25 -0
- package/dist/rules/array-type.js.map +1 -0
- package/dist/rules/class-match-filename.d.ts +9 -0
- package/dist/rules/class-match-filename.d.ts.map +1 -0
- package/dist/rules/class-match-filename.js +51 -0
- package/dist/rules/class-match-filename.js.map +1 -0
- package/dist/rules/comment-spacing.d.ts +9 -0
- package/dist/rules/comment-spacing.d.ts.map +1 -0
- package/dist/rules/comment-spacing.js +63 -0
- package/dist/rules/comment-spacing.js.map +1 -0
- package/dist/rules/consistent-empty-lines.d.ts +9 -0
- package/dist/rules/consistent-empty-lines.d.ts.map +1 -0
- package/dist/rules/consistent-empty-lines.js +74 -0
- package/dist/rules/consistent-empty-lines.js.map +1 -0
- package/dist/rules/consistent-enum-members.d.ts +9 -0
- package/dist/rules/consistent-enum-members.d.ts.map +1 -0
- package/dist/rules/consistent-enum-members.js +36 -0
- package/dist/rules/consistent-enum-members.js.map +1 -0
- package/dist/rules/consistent-filename.d.ts +18 -0
- package/dist/rules/consistent-filename.d.ts.map +1 -0
- package/dist/rules/consistent-filename.js +87 -0
- package/dist/rules/consistent-filename.js.map +1 -0
- package/dist/rules/consistent-import.d.ts +14 -0
- package/dist/rules/consistent-import.d.ts.map +1 -0
- package/dist/rules/consistent-import.js +91 -0
- package/dist/rules/consistent-import.js.map +1 -0
- package/dist/rules/consistent-optional-props.d.ts +9 -0
- package/dist/rules/consistent-optional-props.d.ts.map +1 -0
- package/dist/rules/consistent-optional-props.js +68 -0
- package/dist/rules/consistent-optional-props.js.map +1 -0
- package/dist/rules/consistent-source-extension.d.ts +14 -0
- package/dist/rules/consistent-source-extension.d.ts.map +1 -0
- package/dist/rules/consistent-source-extension.js +56 -0
- package/dist/rules/consistent-source-extension.js.map +1 -0
- package/dist/rules/consistent-symbol-description.d.ts +9 -0
- package/dist/rules/consistent-symbol-description.d.ts.map +1 -0
- package/dist/rules/consistent-symbol-description.js +36 -0
- package/dist/rules/consistent-symbol-description.js.map +1 -0
- package/dist/rules/default-case.d.ts +7 -0
- package/dist/rules/default-case.d.ts.map +1 -0
- package/dist/rules/default-case.js +9 -0
- package/dist/rules/default-case.js.map +1 -0
- package/dist/rules/disallow-import.d.ts +7 -0
- package/dist/rules/disallow-import.d.ts.map +1 -0
- package/dist/rules/disallow-import.js +11 -0
- package/dist/rules/disallow-import.js.map +1 -0
- package/dist/rules/export-matching-filename-only.d.ts +14 -0
- package/dist/rules/export-matching-filename-only.d.ts.map +1 -0
- package/dist/rules/export-matching-filename-only.js +102 -0
- package/dist/rules/export-matching-filename-only.js.map +1 -0
- package/dist/rules/match-filename.d.ts +18 -0
- package/dist/rules/match-filename.d.ts.map +1 -0
- package/dist/rules/match-filename.js +119 -0
- package/dist/rules/match-filename.js.map +1 -0
- package/dist/rules/max-identifier-blocks.d.ts +9 -0
- package/dist/rules/max-identifier-blocks.d.ts.map +1 -0
- package/dist/rules/max-identifier-blocks.js +46 -0
- package/dist/rules/max-identifier-blocks.js.map +1 -0
- package/dist/rules/no-assign-mutated-array.d.ts +9 -0
- package/dist/rules/no-assign-mutated-array.d.ts.map +1 -0
- package/dist/rules/no-assign-mutated-array.js +117 -0
- package/dist/rules/no-assign-mutated-array.js.map +1 -0
- package/dist/rules/no-at-sign-import.d.ts +7 -0
- package/dist/rules/no-at-sign-import.d.ts.map +1 -0
- package/dist/rules/no-at-sign-import.js +11 -0
- package/dist/rules/no-at-sign-import.js.map +1 -0
- package/dist/rules/no-at-sign-internal-import.d.ts +7 -0
- package/dist/rules/no-at-sign-internal-import.d.ts.map +1 -0
- package/dist/rules/no-at-sign-internal-import.js +11 -0
- package/dist/rules/no-at-sign-internal-import.js.map +1 -0
- package/dist/rules/no-chain-coalescence-mixture.d.ts +10 -0
- package/dist/rules/no-chain-coalescence-mixture.d.ts.map +1 -0
- package/dist/rules/no-chain-coalescence-mixture.js +36 -0
- package/dist/rules/no-chain-coalescence-mixture.js.map +1 -0
- package/dist/rules/no-commented-out-code.d.ts +13 -0
- package/dist/rules/no-commented-out-code.d.ts.map +1 -0
- package/dist/rules/no-commented-out-code.js +220 -0
- package/dist/rules/no-commented-out-code.js.map +1 -0
- package/dist/rules/no-const-enum.d.ts +13 -0
- package/dist/rules/no-const-enum.d.ts.map +1 -0
- package/dist/rules/no-const-enum.js +90 -0
- package/dist/rules/no-const-enum.js.map +1 -0
- package/dist/rules/no-deprecated.d.ts +18 -0
- package/dist/rules/no-deprecated.d.ts.map +1 -0
- package/dist/rules/no-deprecated.js +133 -0
- package/dist/rules/no-deprecated.js.map +1 -0
- package/dist/rules/no-enum.d.ts +8 -0
- package/dist/rules/no-enum.d.ts.map +1 -0
- package/dist/rules/no-enum.js +34 -0
- package/dist/rules/no-enum.js.map +1 -0
- package/dist/rules/no-expression-empty-lines.d.ts +9 -0
- package/dist/rules/no-expression-empty-lines.d.ts.map +1 -0
- package/dist/rules/no-expression-empty-lines.js +51 -0
- package/dist/rules/no-expression-empty-lines.js.map +1 -0
- package/dist/rules/no-foreach.d.ts +13 -0
- package/dist/rules/no-foreach.d.ts.map +1 -0
- package/dist/rules/no-foreach.js +95 -0
- package/dist/rules/no-foreach.js.map +1 -0
- package/dist/rules/no-implicit-any-catch.d.ts +13 -0
- package/dist/rules/no-implicit-any-catch.d.ts.map +1 -0
- package/dist/rules/no-implicit-any-catch.js +156 -0
- package/dist/rules/no-implicit-any-catch.js.map +1 -0
- package/dist/rules/no-index-import.d.ts +7 -0
- package/dist/rules/no-index-import.d.ts.map +1 -0
- package/dist/rules/no-index-import.js +11 -0
- package/dist/rules/no-index-import.js.map +1 -0
- package/dist/rules/no-internal-modules.d.ts +7 -0
- package/dist/rules/no-internal-modules.d.ts.map +1 -0
- package/dist/rules/no-internal-modules.js +15 -0
- package/dist/rules/no-internal-modules.js.map +1 -0
- package/dist/rules/no-internal.d.ts +14 -0
- package/dist/rules/no-internal.d.ts.map +1 -0
- package/dist/rules/no-internal.js +113 -0
- package/dist/rules/no-internal.js.map +1 -0
- package/dist/rules/no-language-mixing.d.ts +9 -0
- package/dist/rules/no-language-mixing.d.ts.map +1 -0
- package/dist/rules/no-language-mixing.js +40 -0
- package/dist/rules/no-language-mixing.js.map +1 -0
- package/dist/rules/no-misused-generics.d.ts +10 -0
- package/dist/rules/no-misused-generics.d.ts.map +1 -0
- package/dist/rules/no-misused-generics.js +159 -0
- package/dist/rules/no-misused-generics.js.map +1 -0
- package/dist/rules/no-mixed-enums.d.ts +8 -0
- package/dist/rules/no-mixed-enums.d.ts.map +1 -0
- package/dist/rules/no-mixed-enums.js +25 -0
- package/dist/rules/no-mixed-enums.js.map +1 -0
- package/dist/rules/no-negated-conditions.d.ts +9 -0
- package/dist/rules/no-negated-conditions.d.ts.map +1 -0
- package/dist/rules/no-negated-conditions.js +42 -0
- package/dist/rules/no-negated-conditions.js.map +1 -0
- package/dist/rules/no-nodejs-modules.d.ts +7 -0
- package/dist/rules/no-nodejs-modules.d.ts.map +1 -0
- package/dist/rules/no-nodejs-modules.js +11 -0
- package/dist/rules/no-nodejs-modules.js.map +1 -0
- package/dist/rules/no-param-reassign.d.ts +10 -0
- package/dist/rules/no-param-reassign.d.ts.map +1 -0
- package/dist/rules/no-param-reassign.js +102 -0
- package/dist/rules/no-param-reassign.js.map +1 -0
- package/dist/rules/no-relative-parent-import.d.ts +11 -0
- package/dist/rules/no-relative-parent-import.d.ts.map +1 -0
- package/dist/rules/no-relative-parent-import.js +42 -0
- package/dist/rules/no-relative-parent-import.js.map +1 -0
- package/dist/rules/no-restricted-syntax.d.ts +18 -0
- package/dist/rules/no-restricted-syntax.d.ts.map +1 -0
- package/dist/rules/no-restricted-syntax.js +100 -0
- package/dist/rules/no-restricted-syntax.js.map +1 -0
- package/dist/rules/no-secret.d.ts +8 -0
- package/dist/rules/no-secret.d.ts.map +1 -0
- package/dist/rules/no-secret.js +37 -0
- package/dist/rules/no-secret.js.map +1 -0
- package/dist/rules/no-self-import.d.ts +13 -0
- package/dist/rules/no-self-import.d.ts.map +1 -0
- package/dist/rules/no-self-import.js +86 -0
- package/dist/rules/no-self-import.js.map +1 -0
- package/dist/rules/no-shadow.d.ts +14 -0
- package/dist/rules/no-shadow.d.ts.map +1 -0
- package/dist/rules/no-shadow.js +92 -0
- package/dist/rules/no-shadow.js.map +1 -0
- package/dist/rules/no-sibling-import.d.ts +7 -0
- package/dist/rules/no-sibling-import.d.ts.map +1 -0
- package/dist/rules/no-sibling-import.js +11 -0
- package/dist/rules/no-sibling-import.js.map +1 -0
- package/dist/rules/no-single-line-comment.d.ts +13 -0
- package/dist/rules/no-single-line-comment.d.ts.map +1 -0
- package/dist/rules/no-single-line-comment.js +88 -0
- package/dist/rules/no-single-line-comment.js.map +1 -0
- package/dist/rules/no-t.d.ts +16 -0
- package/dist/rules/no-t.d.ts.map +1 -0
- package/dist/rules/no-t.js +67 -0
- package/dist/rules/no-t.js.map +1 -0
- package/dist/rules/no-underscore-export.d.ts +9 -0
- package/dist/rules/no-underscore-export.d.ts.map +1 -0
- package/dist/rules/no-underscore-export.js +39 -0
- package/dist/rules/no-underscore-export.js.map +1 -0
- package/dist/rules/no-unnecessary-as-const.d.ts +9 -0
- package/dist/rules/no-unnecessary-as-const.d.ts.map +1 -0
- package/dist/rules/no-unnecessary-as-const.js +53 -0
- package/dist/rules/no-unnecessary-as-const.js.map +1 -0
- package/dist/rules/no-unnecessary-break.d.ts +9 -0
- package/dist/rules/no-unnecessary-break.d.ts.map +1 -0
- package/dist/rules/no-unnecessary-break.js +66 -0
- package/dist/rules/no-unnecessary-break.js.map +1 -0
- package/dist/rules/no-unnecessary-initialization.d.ts +9 -0
- package/dist/rules/no-unnecessary-initialization.d.ts.map +1 -0
- package/dist/rules/no-unnecessary-initialization.js +63 -0
- package/dist/rules/no-unnecessary-initialization.js.map +1 -0
- package/dist/rules/no-unnecessary-template-literal.d.ts +9 -0
- package/dist/rules/no-unnecessary-template-literal.d.ts.map +1 -0
- package/dist/rules/no-unnecessary-template-literal.js +47 -0
- package/dist/rules/no-unnecessary-template-literal.js.map +1 -0
- package/dist/rules/no-unused-disable.d.ts +11 -0
- package/dist/rules/no-unused-disable.d.ts.map +1 -0
- package/dist/rules/no-unused-disable.js +28 -0
- package/dist/rules/no-unused-disable.js.map +1 -0
- package/dist/rules/no-useless-generics.d.ts +8 -0
- package/dist/rules/no-useless-generics.d.ts.map +1 -0
- package/dist/rules/no-useless-generics.js +25 -0
- package/dist/rules/no-useless-generics.js.map +1 -0
- package/dist/rules/no-value-tostring.d.ts +8 -0
- package/dist/rules/no-value-tostring.d.ts.map +1 -0
- package/dist/rules/no-value-tostring.js +25 -0
- package/dist/rules/no-value-tostring.js.map +1 -0
- package/dist/rules/no-writeonly.d.ts +7 -0
- package/dist/rules/no-writeonly.d.ts.map +1 -0
- package/dist/rules/no-writeonly.js +9 -0
- package/dist/rules/no-writeonly.js.map +1 -0
- package/dist/rules/object-format.d.ts +13 -0
- package/dist/rules/object-format.d.ts.map +1 -0
- package/dist/rules/object-format.js +61 -0
- package/dist/rules/object-format.js.map +1 -0
- package/dist/rules/only-export-name.d.ts +13 -0
- package/dist/rules/only-export-name.d.ts.map +1 -0
- package/dist/rules/only-export-name.js +104 -0
- package/dist/rules/only-export-name.js.map +1 -0
- package/dist/rules/prefer-arrow-function-property.d.ts +9 -0
- package/dist/rules/prefer-arrow-function-property.d.ts.map +1 -0
- package/dist/rules/prefer-arrow-function-property.js +35 -0
- package/dist/rules/prefer-arrow-function-property.js.map +1 -0
- package/dist/rules/prefer-const-require.d.ts +9 -0
- package/dist/rules/prefer-const-require.d.ts.map +1 -0
- package/dist/rules/prefer-const-require.js +35 -0
- package/dist/rules/prefer-const-require.js.map +1 -0
- package/dist/rules/prefer-includes.d.ts +8 -0
- package/dist/rules/prefer-includes.d.ts.map +1 -0
- package/dist/rules/prefer-includes.js +25 -0
- package/dist/rules/prefer-includes.js.map +1 -0
- package/dist/rules/prefer-interface.d.ts +17 -0
- package/dist/rules/prefer-interface.d.ts.map +1 -0
- package/dist/rules/prefer-interface.js +190 -0
- package/dist/rules/prefer-interface.js.map +1 -0
- package/dist/rules/prefer-less-than.d.ts +8 -0
- package/dist/rules/prefer-less-than.d.ts.map +1 -0
- package/dist/rules/prefer-less-than.js +65 -0
- package/dist/rules/prefer-less-than.js.map +1 -0
- package/dist/rules/prefer-object-has-own.d.ts +8 -0
- package/dist/rules/prefer-object-has-own.d.ts.map +1 -0
- package/dist/rules/prefer-object-has-own.js +26 -0
- package/dist/rules/prefer-object-has-own.js.map +1 -0
- package/dist/rules/prefer-only-export.d.ts +9 -0
- package/dist/rules/prefer-only-export.d.ts.map +1 -0
- package/dist/rules/prefer-only-export.js +35 -0
- package/dist/rules/prefer-only-export.js.map +1 -0
- package/dist/rules/require-jsdoc.d.ts +18 -0
- package/dist/rules/require-jsdoc.d.ts.map +1 -0
- package/dist/rules/require-jsdoc.js +129 -0
- package/dist/rules/require-jsdoc.js.map +1 -0
- package/dist/rules/require-syntax.d.ts +14 -0
- package/dist/rules/require-syntax.d.ts.map +1 -0
- package/dist/rules/require-syntax.js +106 -0
- package/dist/rules/require-syntax.js.map +1 -0
- package/dist/rules/restrict-identifier-characters.d.ts +9 -0
- package/dist/rules/restrict-identifier-characters.d.ts.map +1 -0
- package/dist/rules/restrict-identifier-characters.js +36 -0
- package/dist/rules/restrict-identifier-characters.js.map +1 -0
- package/dist/rules/sort-array.d.ts +9 -0
- package/dist/rules/sort-array.d.ts.map +1 -0
- package/dist/rules/sort-array.js +73 -0
- package/dist/rules/sort-array.js.map +1 -0
- package/dist/rules/sort-call-signature.d.ts +9 -0
- package/dist/rules/sort-call-signature.d.ts.map +1 -0
- package/dist/rules/sort-call-signature.js +35 -0
- package/dist/rules/sort-call-signature.js.map +1 -0
- package/dist/rules/sort-class-members.d.ts +13 -0
- package/dist/rules/sort-class-members.d.ts.map +1 -0
- package/dist/rules/sort-class-members.js +90 -0
- package/dist/rules/sort-class-members.js.map +1 -0
- package/dist/rules/sort-construct-signature.d.ts +9 -0
- package/dist/rules/sort-construct-signature.d.ts.map +1 -0
- package/dist/rules/sort-construct-signature.js +35 -0
- package/dist/rules/sort-construct-signature.js.map +1 -0
- package/dist/rules/sort-export-specifiers.d.ts +9 -0
- package/dist/rules/sort-export-specifiers.d.ts.map +1 -0
- package/dist/rules/sort-export-specifiers.js +62 -0
- package/dist/rules/sort-export-specifiers.js.map +1 -0
- package/dist/rules/sort-keys.d.ts +9 -0
- package/dist/rules/sort-keys.d.ts.map +1 -0
- package/dist/rules/sort-keys.js +84 -0
- package/dist/rules/sort-keys.js.map +1 -0
- package/dist/rules/sort-top-comments.d.ts +9 -0
- package/dist/rules/sort-top-comments.d.ts.map +1 -0
- package/dist/rules/sort-top-comments.js +66 -0
- package/dist/rules/sort-top-comments.js.map +1 -0
- package/dist/rules/switch-case-spacing.d.ts +13 -0
- package/dist/rules/switch-case-spacing.d.ts.map +1 -0
- package/dist/rules/switch-case-spacing.js +72 -0
- package/dist/rules/switch-case-spacing.js.map +1 -0
- package/dist/rules/template-literal-format.d.ts +9 -0
- package/dist/rules/template-literal-format.d.ts.map +1 -0
- package/dist/rules/template-literal-format.js +70 -0
- package/dist/rules/template-literal-format.js.map +1 -0
- package/dist/rules/throw-error.d.ts +9 -0
- package/dist/rules/throw-error.d.ts.map +1 -0
- package/dist/rules/throw-error.js +123 -0
- package/dist/rules/throw-error.js.map +1 -0
- package/dist/rules/throw-new-error.d.ts +8 -0
- package/dist/rules/throw-new-error.d.ts.map +1 -0
- package/dist/rules/throw-new-error.js +25 -0
- package/dist/rules/throw-new-error.js.map +1 -0
- package/dist/rules/typescript-array-callback-return-type.d.ts +9 -0
- package/dist/rules/typescript-array-callback-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-array-callback-return-type.js +80 -0
- package/dist/rules/typescript-array-callback-return-type.js.map +1 -0
- package/dist/rules/typescript-class-methods-use-this.d.ts +13 -0
- package/dist/rules/typescript-class-methods-use-this.d.ts.map +1 -0
- package/dist/rules/typescript-class-methods-use-this.js +99 -0
- package/dist/rules/typescript-class-methods-use-this.js.map +1 -0
- package/dist/rules/typescript-consistent-array-type-name.d.ts +9 -0
- package/dist/rules/typescript-consistent-array-type-name.d.ts.map +1 -0
- package/dist/rules/typescript-consistent-array-type-name.js +36 -0
- package/dist/rules/typescript-consistent-array-type-name.js.map +1 -0
- package/dist/rules/typescript-define-function-in-one-statement.d.ts +9 -0
- package/dist/rules/typescript-define-function-in-one-statement.d.ts.map +1 -0
- package/dist/rules/typescript-define-function-in-one-statement.js +35 -0
- package/dist/rules/typescript-define-function-in-one-statement.js.map +1 -0
- package/dist/rules/typescript-exhaustive-switch.d.ts +13 -0
- package/dist/rules/typescript-exhaustive-switch.d.ts.map +1 -0
- package/dist/rules/typescript-exhaustive-switch.js +55 -0
- package/dist/rules/typescript-exhaustive-switch.js.map +1 -0
- package/dist/rules/typescript-no-boolean-literal-type.d.ts +9 -0
- package/dist/rules/typescript-no-boolean-literal-type.d.ts.map +1 -0
- package/dist/rules/typescript-no-boolean-literal-type.js +43 -0
- package/dist/rules/typescript-no-boolean-literal-type.js.map +1 -0
- package/dist/rules/typescript-no-complex-declarator-type.d.ts +9 -0
- package/dist/rules/typescript-no-complex-declarator-type.d.ts.map +1 -0
- package/dist/rules/typescript-no-complex-declarator-type.js +35 -0
- package/dist/rules/typescript-no-complex-declarator-type.js.map +1 -0
- package/dist/rules/typescript-no-complex-return-type.d.ts +9 -0
- package/dist/rules/typescript-no-complex-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-no-complex-return-type.js +35 -0
- package/dist/rules/typescript-no-complex-return-type.js.map +1 -0
- package/dist/rules/typescript-no-empty-interfaces.d.ts +10 -0
- package/dist/rules/typescript-no-empty-interfaces.d.ts.map +1 -0
- package/dist/rules/typescript-no-empty-interfaces.js +55 -0
- package/dist/rules/typescript-no-empty-interfaces.js.map +1 -0
- package/dist/rules/typescript-no-inferrable-types.d.ts +13 -0
- package/dist/rules/typescript-no-inferrable-types.d.ts.map +1 -0
- package/dist/rules/typescript-no-inferrable-types.js +58 -0
- package/dist/rules/typescript-no-inferrable-types.js.map +1 -0
- package/dist/rules/typescript-no-multi-type-tuples.d.ts +9 -0
- package/dist/rules/typescript-no-multi-type-tuples.d.ts.map +1 -0
- package/dist/rules/typescript-no-multi-type-tuples.js +35 -0
- package/dist/rules/typescript-no-multi-type-tuples.js.map +1 -0
- package/dist/rules/typescript-no-never.d.ts +9 -0
- package/dist/rules/typescript-no-never.d.ts.map +1 -0
- package/dist/rules/typescript-no-never.js +50 -0
- package/dist/rules/typescript-no-never.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-const.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-const.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-const.js +130 -0
- package/dist/rules/typescript-no-redundant-undefined-const.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js +165 -0
- package/dist/rules/typescript-no-redundant-undefined-default-parameter.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-let.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-let.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-let.js +134 -0
- package/dist/rules/typescript-no-redundant-undefined-let.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-optional.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-optional.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-optional.js +77 -0
- package/dist/rules/typescript-no-redundant-undefined-optional.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js +179 -0
- package/dist/rules/typescript-no-redundant-undefined-promise-return-type.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js +125 -0
- package/dist/rules/typescript-no-redundant-undefined-readonly-property.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-return-type.js +154 -0
- package/dist/rules/typescript-no-redundant-undefined-return-type.js.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-var.d.ts +10 -0
- package/dist/rules/typescript-no-redundant-undefined-var.d.ts.map +1 -0
- package/dist/rules/typescript-no-redundant-undefined-var.js +134 -0
- package/dist/rules/typescript-no-redundant-undefined-var.js.map +1 -0
- package/dist/rules/typescript-no-restricted-syntax.d.ts +11 -0
- package/dist/rules/typescript-no-restricted-syntax.d.ts.map +1 -0
- package/dist/rules/typescript-no-restricted-syntax.js +40 -0
- package/dist/rules/typescript-no-restricted-syntax.js.map +1 -0
- package/dist/rules/typescript-no-unsafe-object-assign.d.ts +9 -0
- package/dist/rules/typescript-no-unsafe-object-assign.d.ts.map +1 -0
- package/dist/rules/typescript-no-unsafe-object-assign.js +53 -0
- package/dist/rules/typescript-no-unsafe-object-assign.js.map +1 -0
- package/dist/rules/typescript-no-unsafe-object-assignment.d.ts +7 -0
- package/dist/rules/typescript-no-unsafe-object-assignment.d.ts.map +1 -0
- package/dist/rules/typescript-no-unsafe-object-assignment.js +20 -0
- package/dist/rules/typescript-no-unsafe-object-assignment.js.map +1 -0
- package/dist/rules/typescript-prefer-array-type-alias.d.ts +9 -0
- package/dist/rules/typescript-prefer-array-type-alias.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-array-type-alias.js +36 -0
- package/dist/rules/typescript-prefer-array-type-alias.js.map +1 -0
- package/dist/rules/typescript-prefer-class-method.d.ts +9 -0
- package/dist/rules/typescript-prefer-class-method.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-class-method.js +35 -0
- package/dist/rules/typescript-prefer-class-method.js.map +1 -0
- package/dist/rules/typescript-prefer-enum.d.ts +9 -0
- package/dist/rules/typescript-prefer-enum.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-enum.js +132 -0
- package/dist/rules/typescript-prefer-enum.js.map +1 -0
- package/dist/rules/typescript-prefer-named-tuple-members.d.ts +9 -0
- package/dist/rules/typescript-prefer-named-tuple-members.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-named-tuple-members.js +108 -0
- package/dist/rules/typescript-prefer-named-tuple-members.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-array-parameter.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-array-parameter.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-array-parameter.js +123 -0
- package/dist/rules/typescript-prefer-readonly-array-parameter.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-array.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-array.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-array.js +51 -0
- package/dist/rules/typescript-prefer-readonly-array.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-index-signature.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-index-signature.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-index-signature.js +40 -0
- package/dist/rules/typescript-prefer-readonly-index-signature.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-map.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-map.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-map.js +40 -0
- package/dist/rules/typescript-prefer-readonly-map.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-property.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-property.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-property.js +58 -0
- package/dist/rules/typescript-prefer-readonly-property.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-record.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-record.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-record.js +60 -0
- package/dist/rules/typescript-prefer-readonly-record.js.map +1 -0
- package/dist/rules/typescript-prefer-readonly-set.d.ts +9 -0
- package/dist/rules/typescript-prefer-readonly-set.d.ts.map +1 -0
- package/dist/rules/typescript-prefer-readonly-set.js +40 -0
- package/dist/rules/typescript-prefer-readonly-set.js.map +1 -0
- package/dist/rules/typescript-require-prop-type-annotation.d.ts +9 -0
- package/dist/rules/typescript-require-prop-type-annotation.d.ts.map +1 -0
- package/dist/rules/typescript-require-prop-type-annotation.js +58 -0
- package/dist/rules/typescript-require-prop-type-annotation.js.map +1 -0
- package/dist/rules/typescript-require-readonly-array-property-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-array-property-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-array-property-type.js +91 -0
- package/dist/rules/typescript-require-readonly-array-property-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-array-return-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-array-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-array-return-type.js +93 -0
- package/dist/rules/typescript-require-readonly-array-return-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-array-type-alias.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-array-type-alias.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-array-type-alias.js +73 -0
- package/dist/rules/typescript-require-readonly-array-type-alias.js.map +1 -0
- package/dist/rules/typescript-require-readonly-map-parameter-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-map-parameter-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-map-parameter-type.js +109 -0
- package/dist/rules/typescript-require-readonly-map-parameter-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-map-property-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-map-property-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-map-property-type.js +77 -0
- package/dist/rules/typescript-require-readonly-map-property-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-map-return-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-map-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-map-return-type.js +79 -0
- package/dist/rules/typescript-require-readonly-map-return-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-map-type-alias.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-map-type-alias.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-map-type-alias.js +59 -0
- package/dist/rules/typescript-require-readonly-map-type-alias.js.map +1 -0
- package/dist/rules/typescript-require-readonly-record-parameter-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-record-parameter-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-record-parameter-type.js +124 -0
- package/dist/rules/typescript-require-readonly-record-parameter-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-record-property-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-record-property-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-record-property-type.js +92 -0
- package/dist/rules/typescript-require-readonly-record-property-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-record-return-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-record-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-record-return-type.js +94 -0
- package/dist/rules/typescript-require-readonly-record-return-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-record-type-alias.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-record-type-alias.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-record-type-alias.js +74 -0
- package/dist/rules/typescript-require-readonly-record-type-alias.js.map +1 -0
- package/dist/rules/typescript-require-readonly-set-parameter-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-set-parameter-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-set-parameter-type.js +109 -0
- package/dist/rules/typescript-require-readonly-set-parameter-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-set-property-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-set-property-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-set-property-type.js +77 -0
- package/dist/rules/typescript-require-readonly-set-property-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-set-return-type.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-set-return-type.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-set-return-type.js +79 -0
- package/dist/rules/typescript-require-readonly-set-return-type.js.map +1 -0
- package/dist/rules/typescript-require-readonly-set-type-alias.d.ts +9 -0
- package/dist/rules/typescript-require-readonly-set-type-alias.d.ts.map +1 -0
- package/dist/rules/typescript-require-readonly-set-type-alias.js +59 -0
- package/dist/rules/typescript-require-readonly-set-type-alias.js.map +1 -0
- package/dist/rules/typescript-require-this-void.d.ts +9 -0
- package/dist/rules/typescript-require-this-void.d.ts.map +1 -0
- package/dist/rules/typescript-require-this-void.js +71 -0
- package/dist/rules/typescript-require-this-void.js.map +1 -0
- package/dist/rules/underscore-internal.d.ts +8 -0
- package/dist/rules/underscore-internal.d.ts.map +1 -0
- package/dist/rules/underscore-internal.js +116 -0
- package/dist/rules/underscore-internal.js.map +1 -0
- package/dist/rules/unused-internal-properties.d.ts +11 -0
- package/dist/rules/unused-internal-properties.d.ts.map +1 -0
- package/dist/rules/unused-internal-properties.js +28 -0
- package/dist/rules/unused-internal-properties.js.map +1 -0
- package/dist/rules/uppercase-iife.d.ts +11 -0
- package/dist/rules/uppercase-iife.d.ts.map +1 -0
- package/dist/rules/uppercase-iife.js +28 -0
- package/dist/rules/uppercase-iife.js.map +1 -0
- package/dist/rules/words.d.ts +11 -0
- package/dist/rules/words.d.ts.map +1 -0
- package/dist/rules/words.js +28 -0
- package/dist/rules/words.js.map +1 -0
- package/dist/rules.d.ts +21 -0
- package/dist/rules.d.ts.map +1 -0
- package/dist/rules.js +355 -0
- package/dist/rules.js.map +1 -0
- package/docs/docusaurus/blog/2026-03-09-docs-site-online.md +19 -0
- package/docs/docusaurus/blog/2026-03-11-adr-driven-docs-roadmap.md +31 -0
- package/docs/docusaurus/blog/authors.yml +18 -0
- package/docs/docusaurus/docusaurus.config.ts +457 -0
- package/docs/docusaurus/package.json +116 -0
- package/docs/docusaurus/sidebars.rules.ts +379 -0
- package/docs/docusaurus/sidebars.ts +136 -0
- package/docs/docusaurus/site-docs/architecture/adr/0001-flat-config-first-plugin-shape.md +41 -0
- package/docs/docusaurus/site-docs/architecture/adr/0002-rule-docs-coverage-enforcement.md +42 -0
- package/docs/docusaurus/site-docs/architecture/adr/0003-unified-etc-misc-curation-strategy.md +55 -0
- package/docs/docusaurus/site-docs/architecture/adr/0004-generated-rule-catalog-source-of-truth.md +50 -0
- package/docs/docusaurus/site-docs/architecture/adr/0005-risk-tiered-recommended-preset-strategy.md +50 -0
- package/docs/docusaurus/site-docs/architecture/adr/index.md +24 -0
- package/docs/docusaurus/site-docs/getting-started.md +48 -0
- package/docs/docusaurus/site-docs/guides/blog-post-backlog.md +28 -0
- package/docs/docusaurus/site-docs/guides/docs-maintenance-playbook.md +49 -0
- package/docs/docusaurus/site-docs/guides/migration-from-etc-and-misc.md +88 -0
- package/docs/docusaurus/site-docs/intro.md +39 -0
- package/docs/docusaurus/site-docs/releasing.md +95 -0
- package/docs/docusaurus/src/components/GitHubStats.jsx +72 -0
- package/docs/docusaurus/src/css/custom.css +570 -0
- package/docs/docusaurus/src/css/custom.css.d.ts +22 -0
- package/docs/docusaurus/src/js/modernEnhancements.ts +219 -0
- package/docs/docusaurus/src/pages/index.jsx +201 -0
- package/docs/docusaurus/src/pages/index.module.css +588 -0
- package/docs/docusaurus/src/pages/index.module.css.d.ts +48 -0
- package/docs/docusaurus/static/img/apple-touch-icon.png +0 -0
- package/docs/docusaurus/static/img/favicon-96x96.png +0 -0
- package/docs/docusaurus/static/img/favicon.ico +0 -0
- package/docs/docusaurus/static/img/favicon.svg +1 -0
- package/docs/docusaurus/static/img/logo-128x128.svg +401 -0
- package/docs/docusaurus/static/img/logo.png +0 -0
- package/docs/docusaurus/static/img/logo.svg +399 -0
- package/docs/docusaurus/static/img/logo_128x128.png +0 -0
- package/docs/docusaurus/static/img/logo_192x192.png +0 -0
- package/docs/docusaurus/static/img/site.webmanifest +21 -0
- package/docs/docusaurus/static/img/web-app-manifest-192x192.png +0 -0
- package/docs/docusaurus/static/img/web-app-manifest-512x512.png +0 -0
- package/docs/docusaurus/static/manifest.json +22 -0
- package/docs/docusaurus/tsconfig.json +30 -0
- package/docs/docusaurus/tsconfig.typedoc.json +20 -0
- package/docs/docusaurus/typedoc-plugins/hashToBangLinks.mjs +61 -0
- package/docs/docusaurus/typedoc-plugins/hashToBangLinksCore.d.mts +31 -0
- package/docs/docusaurus/typedoc-plugins/hashToBangLinksCore.mjs +154 -0
- package/docs/docusaurus/typedoc-plugins/prefixDocLinks.mjs +46 -0
- package/docs/docusaurus/typedoc-plugins/prefixDocLinksCore.d.mts +18 -0
- package/docs/docusaurus/typedoc-plugins/prefixDocLinksCore.mjs +410 -0
- package/docs/docusaurus/typedoc.config.json +610 -0
- package/docs/docusaurus/typedoc.local.config.json +610 -0
- package/docs/rules/array-type.md +82 -0
- package/docs/rules/class-match-filename.md +95 -0
- package/docs/rules/comment-spacing.md +131 -0
- package/docs/rules/consistent-empty-lines.md +104 -0
- package/docs/rules/consistent-enum-members.md +112 -0
- package/docs/rules/consistent-filename.md +116 -0
- package/docs/rules/consistent-import.md +128 -0
- package/docs/rules/consistent-optional-props.md +114 -0
- package/docs/rules/consistent-source-extension.md +106 -0
- package/docs/rules/consistent-symbol-description.md +91 -0
- package/docs/rules/default-case.md +95 -0
- package/docs/rules/disallow-import.md +108 -0
- package/docs/rules/export-matching-filename-only.md +115 -0
- package/docs/rules/getting-started.md +66 -0
- package/docs/rules/guides/adoption-checklist.md +37 -0
- package/docs/rules/guides/rollout-and-fix-safety.md +42 -0
- package/docs/rules/match-filename.md +119 -0
- package/docs/rules/max-identifier-blocks.md +94 -0
- package/docs/rules/no-assign-mutated-array.md +119 -0
- package/docs/rules/no-at-sign-import.md +97 -0
- package/docs/rules/no-at-sign-internal-import.md +98 -0
- package/docs/rules/no-chain-coalescence-mixture.md +93 -0
- package/docs/rules/no-commented-out-code.md +126 -0
- package/docs/rules/no-const-enum.md +109 -0
- package/docs/rules/no-deprecated.md +175 -0
- package/docs/rules/no-enum.md +98 -0
- package/docs/rules/no-expression-empty-lines.md +100 -0
- package/docs/rules/no-foreach.md +108 -0
- package/docs/rules/no-implicit-any-catch.md +159 -0
- package/docs/rules/no-index-import.md +101 -0
- package/docs/rules/no-internal-modules.md +111 -0
- package/docs/rules/no-internal.md +168 -0
- package/docs/rules/no-language-mixing.md +89 -0
- package/docs/rules/no-misused-generics.md +105 -0
- package/docs/rules/no-mixed-enums.md +96 -0
- package/docs/rules/no-negated-conditions.md +98 -0
- package/docs/rules/no-nodejs-modules.md +103 -0
- package/docs/rules/no-param-reassign.md +110 -0
- package/docs/rules/no-relative-parent-import.md +118 -0
- package/docs/rules/no-restricted-syntax.md +140 -0
- package/docs/rules/no-secret.md +86 -0
- package/docs/rules/no-self-import.md +107 -0
- package/docs/rules/no-shadow.md +109 -0
- package/docs/rules/no-sibling-import.md +109 -0
- package/docs/rules/no-single-line-comment.md +109 -0
- package/docs/rules/no-t.md +128 -0
- package/docs/rules/no-underscore-export.md +93 -0
- package/docs/rules/no-unnecessary-as-const.md +96 -0
- package/docs/rules/no-unnecessary-break.md +99 -0
- package/docs/rules/no-unnecessary-initialization.md +93 -0
- package/docs/rules/no-unnecessary-template-literal.md +92 -0
- package/docs/rules/no-unused-disable.md +88 -0
- package/docs/rules/no-useless-generics.md +95 -0
- package/docs/rules/no-value-tostring.md +90 -0
- package/docs/rules/no-writeonly.md +102 -0
- package/docs/rules/object-format.md +118 -0
- package/docs/rules/only-export-name.md +120 -0
- package/docs/rules/overview.md +46 -0
- package/docs/rules/prefer-arrow-function-property.md +108 -0
- package/docs/rules/prefer-const-require.md +91 -0
- package/docs/rules/prefer-includes.md +83 -0
- package/docs/rules/prefer-interface.md +156 -0
- package/docs/rules/prefer-less-than.md +98 -0
- package/docs/rules/prefer-object-has-own.md +82 -0
- package/docs/rules/prefer-only-export.md +89 -0
- package/docs/rules/presets/all-strict.md +160 -0
- package/docs/rules/presets/all.md +177 -0
- package/docs/rules/presets/recommended.md +55 -0
- package/docs/rules/presets/strict-type-checked.md +66 -0
- package/docs/rules/presets/strict.md +51 -0
- package/docs/rules/require-jsdoc.md +151 -0
- package/docs/rules/require-syntax.md +129 -0
- package/docs/rules/restrict-identifier-characters.md +88 -0
- package/docs/rules/rule-catalog-map.json +912 -0
- package/docs/rules/sort-array.md +91 -0
- package/docs/rules/sort-call-signature.md +98 -0
- package/docs/rules/sort-class-members.md +115 -0
- package/docs/rules/sort-construct-signature.md +96 -0
- package/docs/rules/sort-export-specifiers.md +89 -0
- package/docs/rules/sort-keys.md +107 -0
- package/docs/rules/sort-top-comments.md +92 -0
- package/docs/rules/switch-case-spacing.md +110 -0
- package/docs/rules/template-literal-format.md +100 -0
- package/docs/rules/throw-error.md +110 -0
- package/docs/rules/throw-new-error.md +81 -0
- package/docs/rules/typescript-array-callback-return-type.md +127 -0
- package/docs/rules/typescript-class-methods-use-this.md +120 -0
- package/docs/rules/typescript-consistent-array-type-name.md +93 -0
- package/docs/rules/typescript-define-function-in-one-statement.md +90 -0
- package/docs/rules/typescript-exhaustive-switch.md +114 -0
- package/docs/rules/typescript-no-boolean-literal-type.md +94 -0
- package/docs/rules/typescript-no-complex-declarator-type.md +96 -0
- package/docs/rules/typescript-no-complex-return-type.md +90 -0
- package/docs/rules/typescript-no-empty-interfaces.md +99 -0
- package/docs/rules/typescript-no-inferrable-types.md +102 -0
- package/docs/rules/typescript-no-multi-type-tuples.md +87 -0
- package/docs/rules/typescript-no-never.md +93 -0
- package/docs/rules/typescript-no-redundant-undefined-const.md +101 -0
- package/docs/rules/typescript-no-redundant-undefined-default-parameter.md +117 -0
- package/docs/rules/typescript-no-redundant-undefined-let.md +106 -0
- package/docs/rules/typescript-no-redundant-undefined-optional.md +106 -0
- package/docs/rules/typescript-no-redundant-undefined-promise-return-type.md +134 -0
- package/docs/rules/typescript-no-redundant-undefined-readonly-property.md +110 -0
- package/docs/rules/typescript-no-redundant-undefined-return-type.md +131 -0
- package/docs/rules/typescript-no-redundant-undefined-var.md +106 -0
- package/docs/rules/typescript-no-restricted-syntax.md +119 -0
- package/docs/rules/typescript-no-unsafe-object-assign.md +91 -0
- package/docs/rules/typescript-no-unsafe-object-assignment.md +93 -0
- package/docs/rules/typescript-prefer-array-type-alias.md +87 -0
- package/docs/rules/typescript-prefer-class-method.md +87 -0
- package/docs/rules/typescript-prefer-enum.md +99 -0
- package/docs/rules/typescript-prefer-named-tuple-members.md +104 -0
- package/docs/rules/typescript-prefer-readonly-array-parameter.md +106 -0
- package/docs/rules/typescript-prefer-readonly-array.md +86 -0
- package/docs/rules/typescript-prefer-readonly-index-signature.md +94 -0
- package/docs/rules/typescript-prefer-readonly-map.md +83 -0
- package/docs/rules/typescript-prefer-readonly-property.md +91 -0
- package/docs/rules/typescript-prefer-readonly-record.md +84 -0
- package/docs/rules/typescript-prefer-readonly-set.md +82 -0
- package/docs/rules/typescript-require-prop-type-annotation.md +91 -0
- package/docs/rules/typescript-require-readonly-array-property-type.md +111 -0
- package/docs/rules/typescript-require-readonly-array-return-type.md +113 -0
- package/docs/rules/typescript-require-readonly-array-type-alias.md +102 -0
- package/docs/rules/typescript-require-readonly-map-parameter-type.md +99 -0
- package/docs/rules/typescript-require-readonly-map-property-type.md +103 -0
- package/docs/rules/typescript-require-readonly-map-return-type.md +105 -0
- package/docs/rules/typescript-require-readonly-map-type-alias.md +92 -0
- package/docs/rules/typescript-require-readonly-record-parameter-type.md +100 -0
- package/docs/rules/typescript-require-readonly-record-property-type.md +102 -0
- package/docs/rules/typescript-require-readonly-record-return-type.md +108 -0
- package/docs/rules/typescript-require-readonly-record-type-alias.md +93 -0
- package/docs/rules/typescript-require-readonly-set-parameter-type.md +99 -0
- package/docs/rules/typescript-require-readonly-set-property-type.md +103 -0
- package/docs/rules/typescript-require-readonly-set-return-type.md +105 -0
- package/docs/rules/typescript-require-readonly-set-type-alias.md +92 -0
- package/docs/rules/typescript-require-this-void.md +95 -0
- package/docs/rules/underscore-internal.md +112 -0
- package/docs/rules/unused-internal-properties.md +100 -0
- package/docs/rules/uppercase-iife.md +82 -0
- package/docs/rules/words.md +83 -0
- package/package.json +546 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# typescript/require-readonly-array-return-type
|
|
2
|
+
|
|
3
|
+
Require readonly array-like types for function and method return annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level array-like return type annotations, including:
|
|
8
|
+
|
|
9
|
+
- `T[]`
|
|
10
|
+
- tuple types (`[A, B]`)
|
|
11
|
+
- `Array<T>`
|
|
12
|
+
- union/intersection members such as `T[] | null`
|
|
13
|
+
|
|
14
|
+
It checks function declarations, function expressions, arrow functions with return
|
|
15
|
+
annotations, call/method signatures, and constructor/function type nodes.
|
|
16
|
+
|
|
17
|
+
## What this rule reports
|
|
18
|
+
|
|
19
|
+
This rule reports return type annotations that use mutable array-like types.
|
|
20
|
+
|
|
21
|
+
## Why this rule exists
|
|
22
|
+
|
|
23
|
+
Return types define API contracts. Returning readonly array-like types signals
|
|
24
|
+
immutability to consumers and prevents accidental mutation at call sites.
|
|
25
|
+
|
|
26
|
+
## ❌ Incorrect
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
function getNames(): string[] {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type PairFactory = () => [string, number];
|
|
34
|
+
|
|
35
|
+
interface Api {
|
|
36
|
+
run(): Array<string>;
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## ✅ Correct
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
function getNames(): readonly string[] {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type PairFactory = () => readonly [string, number];
|
|
48
|
+
|
|
49
|
+
interface Api {
|
|
50
|
+
run(): ReadonlyArray<string>;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Behavior and migration notes
|
|
55
|
+
|
|
56
|
+
This rule is autofixable and also provides suggestions.
|
|
57
|
+
|
|
58
|
+
- `Array<T>` is converted to `ReadonlyArray<T>`.
|
|
59
|
+
- `T[]` and tuple types are converted to `readonly ...` forms.
|
|
60
|
+
|
|
61
|
+
The rule intentionally checks only top-level return types (and top-level
|
|
62
|
+
union/intersection members), not nested object-property types.
|
|
63
|
+
|
|
64
|
+
## Additional examples
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
type Resolver = () => string[] | null;
|
|
68
|
+
// ❌ reported
|
|
69
|
+
|
|
70
|
+
type Resolver = () => readonly string[] | null;
|
|
71
|
+
// ✅ valid
|
|
72
|
+
|
|
73
|
+
function getConfig(): { values: string[] } {
|
|
74
|
+
return { values: [] };
|
|
75
|
+
}
|
|
76
|
+
// ✅ valid (nested property type is out of scope)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## ESLint flat config example
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
83
|
+
|
|
84
|
+
export default [
|
|
85
|
+
{
|
|
86
|
+
plugins: { "etc-misc": etcMisc },
|
|
87
|
+
rules: {
|
|
88
|
+
"etc-misc/typescript/require-readonly-array-return-type": "error",
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## When not to use it
|
|
95
|
+
|
|
96
|
+
Disable this rule if your codebase intentionally returns mutable arrays and you
|
|
97
|
+
prefer not to expose readonly return contracts.
|
|
98
|
+
|
|
99
|
+
## Package documentation
|
|
100
|
+
|
|
101
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
102
|
+
|
|
103
|
+
> **Rule catalog ID:** R116
|
|
104
|
+
|
|
105
|
+
## Further reading
|
|
106
|
+
|
|
107
|
+
- [TypeScript: ReadonlyArray<T>](https://www.typescriptlang.org/docs/handbook/interfaces.html#readonly-properties)
|
|
108
|
+
- [TypeScript: Tuple Types](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types)
|
|
109
|
+
|
|
110
|
+
## Adoption resources
|
|
111
|
+
|
|
112
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
113
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# typescript/require-readonly-array-type-alias
|
|
2
|
+
|
|
3
|
+
Require readonly array-like types in type alias annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level array-like type alias annotations, including:
|
|
8
|
+
|
|
9
|
+
- `T[]`
|
|
10
|
+
- tuple types (`[A, B]`)
|
|
11
|
+
- `Array<T>`
|
|
12
|
+
- union/intersection members such as `T[] | null`
|
|
13
|
+
|
|
14
|
+
It checks only the type annotation attached to `type` aliases.
|
|
15
|
+
|
|
16
|
+
## What this rule reports
|
|
17
|
+
|
|
18
|
+
This rule reports type alias annotations that use mutable array-like types.
|
|
19
|
+
|
|
20
|
+
## Why this rule exists
|
|
21
|
+
|
|
22
|
+
Type aliases often define reusable API contracts. Using readonly array-like types
|
|
23
|
+
in aliases helps propagate immutability expectations to all downstream uses.
|
|
24
|
+
|
|
25
|
+
## ❌ Incorrect
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
type Names = string[];
|
|
29
|
+
|
|
30
|
+
type Pair = [string, number];
|
|
31
|
+
|
|
32
|
+
type Registry = Array<string>;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## ✅ Correct
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
type Names = readonly string[];
|
|
39
|
+
|
|
40
|
+
type Pair = readonly [string, number];
|
|
41
|
+
|
|
42
|
+
type Registry = ReadonlyArray<string>;
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Behavior and migration notes
|
|
46
|
+
|
|
47
|
+
This rule is autofixable and also provides suggestions.
|
|
48
|
+
|
|
49
|
+
- `Array<T>` is converted to `ReadonlyArray<T>`.
|
|
50
|
+
- `T[]` and tuple types are converted to `readonly ...` forms.
|
|
51
|
+
|
|
52
|
+
The rule intentionally checks only top-level type alias annotations (and
|
|
53
|
+
top-level union/intersection members), not nested object-property types.
|
|
54
|
+
|
|
55
|
+
## Additional examples
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
type Resolver = string[] | null;
|
|
59
|
+
// ❌ reported
|
|
60
|
+
|
|
61
|
+
type Resolver = readonly string[] | null;
|
|
62
|
+
// ✅ valid
|
|
63
|
+
|
|
64
|
+
type Config = { values: string[] };
|
|
65
|
+
// ✅ valid (nested property type is out of scope)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## ESLint flat config example
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
72
|
+
|
|
73
|
+
export default [
|
|
74
|
+
{
|
|
75
|
+
plugins: { "etc-misc": etcMisc },
|
|
76
|
+
rules: {
|
|
77
|
+
"etc-misc/typescript/require-readonly-array-type-alias": "error",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## When not to use it
|
|
84
|
+
|
|
85
|
+
Disable this rule if your codebase intentionally uses mutable array type aliases
|
|
86
|
+
or if you already enforce immutability through a broader rule strategy.
|
|
87
|
+
|
|
88
|
+
## Package documentation
|
|
89
|
+
|
|
90
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
91
|
+
|
|
92
|
+
> **Rule catalog ID:** R117
|
|
93
|
+
|
|
94
|
+
## Further reading
|
|
95
|
+
|
|
96
|
+
- [TypeScript: ReadonlyArray<T>](https://www.typescriptlang.org/docs/handbook/interfaces.html#readonly-properties)
|
|
97
|
+
- [TypeScript: Tuple Types](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types)
|
|
98
|
+
|
|
99
|
+
## Adoption resources
|
|
100
|
+
|
|
101
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
102
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# typescript/require-readonly-map-parameter-type
|
|
2
|
+
|
|
3
|
+
Require `ReadonlyMap` for function and method parameter type annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level mutable `Map<...>` parameter type annotations,
|
|
8
|
+
including top-level union/intersection members such as `Map<K, V> | null`.
|
|
9
|
+
|
|
10
|
+
It checks function declarations, function expressions, arrow functions,
|
|
11
|
+
call/method signatures, and constructor/function type nodes (including
|
|
12
|
+
constructor parameter properties).
|
|
13
|
+
|
|
14
|
+
## What this rule reports
|
|
15
|
+
|
|
16
|
+
This rule reports parameter annotations that use mutable `Map<...>`.
|
|
17
|
+
|
|
18
|
+
## Why this rule exists
|
|
19
|
+
|
|
20
|
+
Parameter types define API input contracts. Using `ReadonlyMap` for parameters
|
|
21
|
+
communicates non-mutating expectations and helps avoid accidental argument
|
|
22
|
+
mutation.
|
|
23
|
+
|
|
24
|
+
## ❌ Incorrect
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
function loadIndex(index: Map<string, number>): void {}
|
|
28
|
+
|
|
29
|
+
const resolver = (index: Map<string, number> | null) => index;
|
|
30
|
+
|
|
31
|
+
class Registry {
|
|
32
|
+
constructor(private readonly table: Map<string, string>) {}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## ✅ Correct
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
function loadIndex(index: ReadonlyMap<string, number>): void {}
|
|
40
|
+
|
|
41
|
+
const resolver = (index: ReadonlyMap<string, number> | null) => index;
|
|
42
|
+
|
|
43
|
+
class Registry {
|
|
44
|
+
constructor(private readonly table: ReadonlyMap<string, string>) {}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Behavior and migration notes
|
|
49
|
+
|
|
50
|
+
This rule is autofixable and also provides suggestions.
|
|
51
|
+
|
|
52
|
+
- `Map<K, V>` is converted to `ReadonlyMap<K, V>`.
|
|
53
|
+
- The rule intentionally checks only top-level parameter types (and top-level
|
|
54
|
+
union/intersection members), not nested object-property types.
|
|
55
|
+
|
|
56
|
+
## Additional examples
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
function configure(options: { index: Map<string, number> }): void {}
|
|
60
|
+
// ✅ valid (nested property type is out of scope)
|
|
61
|
+
|
|
62
|
+
function configure(index?: ReadonlyMap<string, number>): void {}
|
|
63
|
+
// ✅ valid
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## ESLint flat config example
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
70
|
+
|
|
71
|
+
export default [
|
|
72
|
+
{
|
|
73
|
+
plugins: { "etc-misc": etcMisc },
|
|
74
|
+
rules: {
|
|
75
|
+
"etc-misc/typescript/require-readonly-map-parameter-type": "error",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## When not to use it
|
|
82
|
+
|
|
83
|
+
Disable this rule if your codebase intentionally mutates map inputs or if you
|
|
84
|
+
already enforce a broader readonly parameter policy via type-aware linting.
|
|
85
|
+
|
|
86
|
+
## Package documentation
|
|
87
|
+
|
|
88
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
89
|
+
|
|
90
|
+
> **Rule catalog ID:** R118
|
|
91
|
+
|
|
92
|
+
## Further reading
|
|
93
|
+
|
|
94
|
+
- [TypeScript: ReadonlyMap<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
95
|
+
|
|
96
|
+
## Adoption resources
|
|
97
|
+
|
|
98
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
99
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# typescript/require-readonly-map-property-type
|
|
2
|
+
|
|
3
|
+
Require `ReadonlyMap` for top-level property type annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level mutable `Map<K, V>` property type annotations,
|
|
8
|
+
including top-level union/intersection members such as
|
|
9
|
+
`Map<string, number> | null`.
|
|
10
|
+
|
|
11
|
+
It checks property signatures in interfaces and type literals.
|
|
12
|
+
|
|
13
|
+
## What this rule reports
|
|
14
|
+
|
|
15
|
+
This rule reports property annotations that use mutable `Map<...>`.
|
|
16
|
+
|
|
17
|
+
## Why this rule exists
|
|
18
|
+
|
|
19
|
+
Property signatures define object contracts consumed across your codebase.
|
|
20
|
+
Using `ReadonlyMap` for these property types communicates immutability intent
|
|
21
|
+
and helps avoid accidental mutation through shared map-like data.
|
|
22
|
+
|
|
23
|
+
## ❌ Incorrect
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
interface Config {
|
|
27
|
+
lookup: Map<string, number>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
type ApiConfig = {
|
|
31
|
+
lookup: Map<string, number> | null;
|
|
32
|
+
};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## ✅ Correct
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
interface Config {
|
|
39
|
+
lookup: ReadonlyMap<string, number>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
type ApiConfig = {
|
|
43
|
+
lookup: ReadonlyMap<string, number> | null;
|
|
44
|
+
};
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Behavior and migration notes
|
|
48
|
+
|
|
49
|
+
This rule is autofixable and also provides suggestions.
|
|
50
|
+
|
|
51
|
+
- `Map<K, V>` is converted to `ReadonlyMap<K, V>`.
|
|
52
|
+
- The rule intentionally checks only top-level property type annotations (and
|
|
53
|
+
top-level union/intersection members), not nested object-property types.
|
|
54
|
+
|
|
55
|
+
## Additional examples
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
interface Config {
|
|
59
|
+
lookup: Promise<Map<string, number>>;
|
|
60
|
+
}
|
|
61
|
+
// ✅ valid (nested generic type is out of scope)
|
|
62
|
+
|
|
63
|
+
type Settings = {
|
|
64
|
+
lookup: { nested: Map<string, number> };
|
|
65
|
+
};
|
|
66
|
+
// ✅ valid (nested property type is out of scope)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## ESLint flat config example
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
73
|
+
|
|
74
|
+
export default [
|
|
75
|
+
{
|
|
76
|
+
plugins: { "etc-misc": etcMisc },
|
|
77
|
+
rules: {
|
|
78
|
+
"etc-misc/typescript/require-readonly-map-property-type": "error",
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## When not to use it
|
|
85
|
+
|
|
86
|
+
Disable this rule if your codebase intentionally models property maps as
|
|
87
|
+
mutable or if broader readonly policies already enforce your preferred
|
|
88
|
+
constraints.
|
|
89
|
+
|
|
90
|
+
## Package documentation
|
|
91
|
+
|
|
92
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
93
|
+
|
|
94
|
+
> **Rule catalog ID:** R119
|
|
95
|
+
|
|
96
|
+
## Further reading
|
|
97
|
+
|
|
98
|
+
- [TypeScript: ReadonlyMap<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
99
|
+
|
|
100
|
+
## Adoption resources
|
|
101
|
+
|
|
102
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
103
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# typescript/require-readonly-map-return-type
|
|
2
|
+
|
|
3
|
+
Require `ReadonlyMap` for function and method return type annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level mutable `Map<...>` return type annotations,
|
|
8
|
+
including top-level union/intersection members such as `Map<K, V> | null`.
|
|
9
|
+
|
|
10
|
+
It checks function declarations, function expressions, arrow functions with
|
|
11
|
+
return annotations, call/method signatures, and constructor/function type nodes.
|
|
12
|
+
|
|
13
|
+
## What this rule reports
|
|
14
|
+
|
|
15
|
+
This rule reports return type annotations that use mutable `Map<...>`.
|
|
16
|
+
|
|
17
|
+
## Why this rule exists
|
|
18
|
+
|
|
19
|
+
Return types define API contracts. Returning `ReadonlyMap` communicates
|
|
20
|
+
non-mutating intent to callers and reduces accidental mutation of shared maps.
|
|
21
|
+
|
|
22
|
+
## ❌ Incorrect
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
function buildLookup(): Map<string, number> {
|
|
26
|
+
return new Map();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
type Resolver = () => Map<string, string> | null;
|
|
30
|
+
|
|
31
|
+
interface API {
|
|
32
|
+
run(): Map<string, string>;
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## ✅ Correct
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
function buildLookup(): ReadonlyMap<string, number> {
|
|
40
|
+
return new Map();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type Resolver = () => ReadonlyMap<string, string> | null;
|
|
44
|
+
|
|
45
|
+
interface API {
|
|
46
|
+
run(): ReadonlyMap<string, string>;
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Behavior and migration notes
|
|
51
|
+
|
|
52
|
+
This rule is autofixable and also provides suggestions.
|
|
53
|
+
|
|
54
|
+
- `Map<K, V>` is converted to `ReadonlyMap<K, V>`.
|
|
55
|
+
- The rule intentionally checks only top-level return types (and top-level
|
|
56
|
+
union/intersection members), not nested object-property types.
|
|
57
|
+
|
|
58
|
+
## Additional examples
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
function buildConfig(): Promise<Map<string, string>> {
|
|
62
|
+
return Promise.resolve(new Map());
|
|
63
|
+
}
|
|
64
|
+
// ✅ valid (nested generic type is out of scope)
|
|
65
|
+
|
|
66
|
+
function buildState(): { values: Map<string, string> } {
|
|
67
|
+
return { values: new Map() };
|
|
68
|
+
}
|
|
69
|
+
// ✅ valid (nested object-property type is out of scope)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## ESLint flat config example
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
76
|
+
|
|
77
|
+
export default [
|
|
78
|
+
{
|
|
79
|
+
plugins: { "etc-misc": etcMisc },
|
|
80
|
+
rules: {
|
|
81
|
+
"etc-misc/typescript/require-readonly-map-return-type": "error",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## When not to use it
|
|
88
|
+
|
|
89
|
+
Disable this rule if your codebase intentionally exposes mutable `Map` return
|
|
90
|
+
types or if you already enforce broader readonly type policy at the same scope.
|
|
91
|
+
|
|
92
|
+
## Package documentation
|
|
93
|
+
|
|
94
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
95
|
+
|
|
96
|
+
> **Rule catalog ID:** R120
|
|
97
|
+
|
|
98
|
+
## Further reading
|
|
99
|
+
|
|
100
|
+
- [TypeScript: ReadonlyMap<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
101
|
+
|
|
102
|
+
## Adoption resources
|
|
103
|
+
|
|
104
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
105
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# typescript/require-readonly-map-type-alias
|
|
2
|
+
|
|
3
|
+
Require readonly map types in type alias annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level `Map<K, V>` type alias annotations, including
|
|
8
|
+
union/intersection members such as `Map<K, V> | null`.
|
|
9
|
+
|
|
10
|
+
It checks only the type annotation attached to `type` aliases.
|
|
11
|
+
|
|
12
|
+
## What this rule reports
|
|
13
|
+
|
|
14
|
+
This rule reports type alias annotations that use mutable `Map<...>`.
|
|
15
|
+
|
|
16
|
+
## Why this rule exists
|
|
17
|
+
|
|
18
|
+
Type aliases often define reusable API contracts. Using `ReadonlyMap` in alias
|
|
19
|
+
annotations communicates immutability expectations to all downstream uses.
|
|
20
|
+
|
|
21
|
+
## ❌ Incorrect
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
type Lookup = Map<string, number>;
|
|
25
|
+
|
|
26
|
+
type MaybeLookup = Map<string, number> | null;
|
|
27
|
+
|
|
28
|
+
type Combined = Map<string, number> & { readonly kind: "ok" };
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## ✅ Correct
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
type Lookup = ReadonlyMap<string, number>;
|
|
35
|
+
|
|
36
|
+
type MaybeLookup = ReadonlyMap<string, number> | null;
|
|
37
|
+
|
|
38
|
+
type Combined = ReadonlyMap<string, number> & { readonly kind: "ok" };
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Behavior and migration notes
|
|
42
|
+
|
|
43
|
+
This rule is autofixable and also provides suggestions.
|
|
44
|
+
|
|
45
|
+
- `Map<K, V>` is converted to `ReadonlyMap<K, V>`.
|
|
46
|
+
- The rule intentionally checks only top-level type alias annotations (and
|
|
47
|
+
top-level union/intersection members), not nested object-property types.
|
|
48
|
+
|
|
49
|
+
## Additional examples
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
type Resolver = Promise<Map<string, number>>;
|
|
53
|
+
// ✅ valid (nested generic type is out of scope)
|
|
54
|
+
|
|
55
|
+
type Config = { lookup: Map<string, number> };
|
|
56
|
+
// ✅ valid (nested property type is out of scope)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## ESLint flat config example
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
63
|
+
|
|
64
|
+
export default [
|
|
65
|
+
{
|
|
66
|
+
plugins: { "etc-misc": etcMisc },
|
|
67
|
+
rules: {
|
|
68
|
+
"etc-misc/typescript/require-readonly-map-type-alias": "error",
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## When not to use it
|
|
75
|
+
|
|
76
|
+
Disable this rule if your codebase intentionally uses mutable map aliases or if
|
|
77
|
+
you already enforce immutability through a broader rule strategy.
|
|
78
|
+
|
|
79
|
+
## Package documentation
|
|
80
|
+
|
|
81
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
82
|
+
|
|
83
|
+
> **Rule catalog ID:** R121
|
|
84
|
+
|
|
85
|
+
## Further reading
|
|
86
|
+
|
|
87
|
+
- [TypeScript: ReadonlyMap<K, V>](https://www.typescriptlang.org/docs/handbook/utility-types.html)
|
|
88
|
+
|
|
89
|
+
## Adoption resources
|
|
90
|
+
|
|
91
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
92
|
+
- Use focused codemods/autofix batches per package or directory.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# typescript/require-readonly-record-parameter-type
|
|
2
|
+
|
|
3
|
+
Require `Readonly<Record<...>>` for function and method parameter type annotations.
|
|
4
|
+
|
|
5
|
+
## Targeted pattern scope
|
|
6
|
+
|
|
7
|
+
This rule targets top-level mutable `Record<K, V>` parameter type annotations,
|
|
8
|
+
including top-level union/intersection members such as
|
|
9
|
+
`Record<string, string> | null`.
|
|
10
|
+
|
|
11
|
+
It checks function declarations, function expressions, arrow functions,
|
|
12
|
+
call/method signatures, and constructor/function type nodes (including
|
|
13
|
+
constructor parameter properties).
|
|
14
|
+
|
|
15
|
+
## What this rule reports
|
|
16
|
+
|
|
17
|
+
This rule reports parameter annotations that use mutable `Record<...>`.
|
|
18
|
+
|
|
19
|
+
## Why this rule exists
|
|
20
|
+
|
|
21
|
+
Parameter types define API input contracts. Using `Readonly<Record<...>>` for
|
|
22
|
+
parameters communicates non-mutating expectations and helps avoid accidental
|
|
23
|
+
argument mutation.
|
|
24
|
+
|
|
25
|
+
## ❌ Incorrect
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
function loadLookup(lookup: Record<string, string>): void {}
|
|
29
|
+
|
|
30
|
+
const resolver = (lookup: Record<string, string> | null) => lookup;
|
|
31
|
+
|
|
32
|
+
class Registry {
|
|
33
|
+
constructor(private readonly lookup: Record<string, string>) {}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## ✅ Correct
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
function loadLookup(lookup: Readonly<Record<string, string>>): void {}
|
|
41
|
+
|
|
42
|
+
const resolver = (lookup: Readonly<Record<string, string>> | null) => lookup;
|
|
43
|
+
|
|
44
|
+
class Registry {
|
|
45
|
+
constructor(private readonly lookup: Readonly<Record<string, string>>) {}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Behavior and migration notes
|
|
50
|
+
|
|
51
|
+
This rule is autofixable and also provides suggestions.
|
|
52
|
+
|
|
53
|
+
- `Record<K, V>` is converted to `Readonly<Record<K, V>>`.
|
|
54
|
+
- The rule intentionally checks only top-level parameter types (and top-level
|
|
55
|
+
union/intersection members), not nested object-property types.
|
|
56
|
+
|
|
57
|
+
## Additional examples
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
function configure(options: { lookup: Record<string, string> }): void {}
|
|
61
|
+
// ✅ valid (nested property type is out of scope)
|
|
62
|
+
|
|
63
|
+
function configure(lookup?: Readonly<Record<string, string>>): void {}
|
|
64
|
+
// ✅ valid
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ESLint flat config example
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
import etcMisc from "eslint-plugin-etc-misc";
|
|
71
|
+
|
|
72
|
+
export default [
|
|
73
|
+
{
|
|
74
|
+
plugins: { "etc-misc": etcMisc },
|
|
75
|
+
rules: {
|
|
76
|
+
"etc-misc/typescript/require-readonly-record-parameter-type": "error",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## When not to use it
|
|
83
|
+
|
|
84
|
+
Disable this rule if your codebase intentionally mutates record inputs or if
|
|
85
|
+
you already enforce a broader readonly parameter policy via type-aware linting.
|
|
86
|
+
|
|
87
|
+
## Package documentation
|
|
88
|
+
|
|
89
|
+
- [eslint-plugin-etc-misc README](https://github.com/Nick2bad4u/eslint-plugin-etc-misc#readme)
|
|
90
|
+
|
|
91
|
+
> **Rule catalog ID:** R122
|
|
92
|
+
|
|
93
|
+
## Further reading
|
|
94
|
+
|
|
95
|
+
- [TypeScript Utility Types: `Readonly<Type>`](https://www.typescriptlang.org/docs/handbook/utility-types.html#readonlytype)
|
|
96
|
+
|
|
97
|
+
## Adoption resources
|
|
98
|
+
|
|
99
|
+
- Start at warning level in CI, then move to error after cleanup.
|
|
100
|
+
- Use focused codemods/autofix batches per package or directory.
|