lint-suite 2.1.0 → 2.1.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 +542 -0
- package/README.md +215 -58
- package/eslint.d.ts +0 -1
- package/eslint.js +734 -7247
- package/lib/angular-template.d.ts +0 -1
- package/lib/angular.d.ts +0 -1
- package/lib/base-limits.d.ts +0 -1
- package/lib/base-practices.d.ts +0 -1
- package/lib/base-recommended.d.ts +0 -1
- package/lib/base.d.ts +0 -1
- package/lib/boundaries.d.ts +0 -1
- package/lib/javascript.d.ts +0 -1
- package/lib/json.d.ts +0 -1
- package/lib/line-length.const.d.ts +0 -1
- package/lib/playwright.d.ts +0 -1
- package/lib/prettier.d.ts +0 -1
- package/lib/rxjs.d.ts +0 -1
- package/lib/storybook.d.ts +0 -1
- package/lib/typescript-consistency.d.ts +0 -1
- package/lib/typescript-imports.d.ts +0 -1
- package/lib/typescript-local-plugin.d.ts +2 -2
- package/lib/typescript-overrides.d.ts +0 -1
- package/lib/typescript-recommended.d.ts +0 -1
- package/lib/typescript-safety.d.ts +0 -1
- package/lib/typescript.d.ts +0 -1
- package/lib/vitest.d.ts +0 -1
- package/package.json +27 -14
- package/prettier.d.ts +0 -1
- package/prettier.js +0 -1
- package/stylelint.d.ts +0 -1
- package/stylelint.js +11 -984
- package/eslint.d.ts.map +0 -1
- package/eslint.js.map +0 -7
- package/lib/angular-template.d.ts.map +0 -1
- package/lib/angular.d.ts.map +0 -1
- package/lib/base-limits.d.ts.map +0 -1
- package/lib/base-practices.d.ts.map +0 -1
- package/lib/base-recommended.d.ts.map +0 -1
- package/lib/base.d.ts.map +0 -1
- package/lib/boundaries.d.ts.map +0 -1
- package/lib/javascript.d.ts.map +0 -1
- package/lib/json.d.ts.map +0 -1
- package/lib/line-length.const.d.ts.map +0 -1
- package/lib/playwright.d.ts.map +0 -1
- package/lib/prettier.d.ts.map +0 -1
- package/lib/rules/arrow-body-fits-line/arrow-body-fits-line.d.ts +0 -6
- package/lib/rules/arrow-body-fits-line/arrow-body-fits-line.d.ts.map +0 -1
- package/lib/rules/chain-fits-line/chain-fits-line.d.ts +0 -6
- package/lib/rules/chain-fits-line/chain-fits-line.d.ts.map +0 -1
- package/lib/rules/chain-receiver-is-name/chain-receiver-is-name.d.ts +0 -7
- package/lib/rules/chain-receiver-is-name/chain-receiver-is-name.d.ts.map +0 -1
- package/lib/rules/common/class-usage.type.d.ts +0 -26
- package/lib/rules/common/class-usage.type.d.ts.map +0 -1
- package/lib/rules/common/file-cache.type.d.ts +0 -11
- package/lib/rules/common/file-cache.type.d.ts.map +0 -1
- package/lib/rules/common/glob-matcher.type.d.ts +0 -2
- package/lib/rules/common/glob-matcher.type.d.ts.map +0 -1
- package/lib/rules/component-metadata.d.ts +0 -3
- package/lib/rules/component-metadata.d.ts.map +0 -1
- package/lib/rules/define-plugin.util.d.ts +0 -6
- package/lib/rules/define-plugin.util.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.const.d.ts +0 -6
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.const.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.type.d.ts +0 -17
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.type.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/explicit-accessibility.d.ts +0 -7
- package/lib/rules/explicit-accessibility/explicit-accessibility.d.ts.map +0 -1
- package/lib/rules/file-cache.d.ts +0 -14
- package/lib/rules/file-cache.d.ts.map +0 -1
- package/lib/rules/max-condition-operands/max-condition-operands.d.ts +0 -10
- package/lib/rules/max-condition-operands/max-condition-operands.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.const.d.ts +0 -6
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.const.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.type.d.ts +0 -21
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.type.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/no-call-in-condition.d.ts +0 -7
- package/lib/rules/no-call-in-condition/no-call-in-condition.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/utils/call-exemptions.util.d.ts +0 -4
- package/lib/rules/no-call-in-condition/utils/call-exemptions.util.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/utils/condition-calls.util.d.ts +0 -7
- package/lib/rules/no-call-in-condition/utils/condition-calls.util.d.ts.map +0 -1
- package/lib/rules/no-grouped-condition/no-grouped-condition.d.ts +0 -7
- package/lib/rules/no-grouped-condition/no-grouped-condition.d.ts.map +0 -1
- package/lib/rules/no-inline-object-types/no-inline-object-types.d.ts +0 -6
- package/lib/rules/no-inline-object-types/no-inline-object-types.d.ts.map +0 -1
- package/lib/rules/no-inline-return-object/no-inline-return-object.d.ts +0 -6
- package/lib/rules/no-inline-return-object/no-inline-return-object.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.const.d.ts +0 -5
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.const.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.type.d.ts +0 -7
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.type.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/no-nested-object-value.d.ts +0 -7
- package/lib/rules/no-nested-object-value/no-nested-object-value.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/utils/decorator-config.util.d.ts +0 -3
- package/lib/rules/no-nested-object-value/utils/decorator-config.util.d.ts.map +0 -1
- package/lib/rules/no-spread-expression/no-spread-expression.d.ts +0 -6
- package/lib/rules/no-spread-expression/no-spread-expression.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/common/no-unstyled-classes.type.d.ts +0 -33
- package/lib/rules/no-unstyled-classes/common/no-unstyled-classes.type.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/no-unstyled-classes.d.ts +0 -8
- package/lib/rules/no-unstyled-classes/no-unstyled-classes.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/component-stylesheets.d.ts +0 -4
- package/lib/rules/no-unstyled-classes/styles/component-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/linked-stylesheets.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/linked-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-classes.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/stylesheet-classes.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-collection.d.ts +0 -4
- package/lib/rules/no-unstyled-classes/styles/stylesheet-collection.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-imports.d.ts +0 -9
- package/lib/rules/no-unstyled-classes/styles/stylesheet-imports.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/template-stylesheets.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/template-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-discovery.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-discovery.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-scope.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-scope.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-decorator-kind.d.ts +0 -10
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-decorator-kind.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-directive-index.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-directive-index.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-metadata-values.d.ts +0 -12
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-metadata-values.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-resolved-path.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-resolved-path.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-chains.d.ts +0 -17
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-chains.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-resolution.d.ts +0 -7
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-resolution.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-reads.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-references.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-references.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-index.type.d.ts +0 -53
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-index.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-usage.type.d.ts +0 -105
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-usage.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-file-entry.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-file-entry.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-classes.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-classes.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-reconciliation.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-reconciliation.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-staleness.d.ts +0 -14
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-staleness.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-usage.d.ts +0 -18
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-usage.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-angular-interface-methods.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-angular-interface-methods.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-assignment-pattern-elements.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-assignment-pattern-elements.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-binding-pattern-elements.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-binding-pattern-elements.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-candidate-names.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-candidate-names.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-dangling-imports.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-dangling-imports.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-destructuring-reads.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-destructuring-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-reads.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-symbol-reads.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-symbol-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-type-dependencies.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-type-dependencies.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-write-targets.d.ts +0 -7
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-write-targets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/class-members.util.d.ts +0 -10
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/class-members.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/read-chain-text.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/read-chain-text.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/spec-file.util.d.ts +0 -2
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/spec-file.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/type-property-symbols.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/type-property-symbols.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-class-fields.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-class-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-expression-reads.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-expression-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-imports.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-imports.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-managed-fields.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-managed-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-member-candidates.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-member-candidates.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-literals.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-literals.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-reads.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-template-parsing.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-template-parsing.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/common/no-unused-angular-instance-fields.type.d.ts +0 -55
- package/lib/rules/no-unused-angular-instance-fields/rule/common/no-unused-angular-instance-fields.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/no-unused-angular-instance-fields.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/rule/no-unused-angular-instance-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-class-read-visitor.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-class-read-visitor.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-field-reads.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-field-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-lexical-this.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-lexical-this.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-write-targets.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-write-targets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/utils/angular-read-target.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/utils/angular-read-target.util.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/common/no-unused-classes.type.d.ts +0 -24
- package/lib/rules/no-unused-classes/common/no-unused-classes.type.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/no-unused-classes.d.ts +0 -8
- package/lib/rules/no-unused-classes/no-unused-classes.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/styles/linked-templates.d.ts +0 -9
- package/lib/rules/no-unused-classes/styles/linked-templates.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/styles/stylesheet-components.d.ts +0 -3
- package/lib/rules/no-unused-classes/styles/stylesheet-components.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/template/template-usage.d.ts +0 -3
- package/lib/rules/no-unused-classes/template/template-usage.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/common/no-unused-exports.const.d.ts +0 -7
- package/lib/rules/no-unused-exports/common/no-unused-exports.const.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/common/no-unused-exports.type.d.ts +0 -78
- package/lib/rules/no-unused-exports/common/no-unused-exports.type.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/disk-resolver.d.ts +0 -9
- package/lib/rules/no-unused-exports/disk-resolver.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/export-index.d.ts +0 -6
- package/lib/rules/no-unused-exports/export-index.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/no-unused-exports.d.ts +0 -7
- package/lib/rules/no-unused-exports/no-unused-exports.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/report-unused-exports.d.ts +0 -12
- package/lib/rules/no-unused-exports/report-unused-exports.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/aggregate-update.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/aggregate-update.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-edges.util.d.ts +0 -5
- package/lib/rules/no-unused-exports/utils/export-edges.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-nodes.util.d.ts +0 -5
- package/lib/rules/no-unused-exports/utils/export-nodes.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-usage.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/export-usage.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/exported-names.util.d.ts +0 -3
- package/lib/rules/no-unused-exports/utils/exported-names.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/file-changes.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/file-changes.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/module-edges.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/module-edges.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/module-resolver.util.d.ts +0 -8
- package/lib/rules/no-unused-exports/utils/module-resolver.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/public-exports.util.d.ts +0 -3
- package/lib/rules/no-unused-exports/utils/public-exports.util.d.ts.map +0 -1
- package/lib/rules/one-line-guard/one-line-guard.d.ts +0 -10
- package/lib/rules/one-line-guard/one-line-guard.d.ts.map +0 -1
- package/lib/rules/package-version.d.ts +0 -2
- package/lib/rules/package-version.d.ts.map +0 -1
- package/lib/rules/readonly-type-properties/readonly-type-properties.d.ts +0 -7
- package/lib/rules/readonly-type-properties/readonly-type-properties.d.ts.map +0 -1
- package/lib/rules/selector-classes.d.ts +0 -7
- package/lib/rules/selector-classes.d.ts.map +0 -1
- package/lib/rules/ternary-branch-shape/ternary-branch-shape.d.ts +0 -6
- package/lib/rules/ternary-branch-shape/ternary-branch-shape.d.ts.map +0 -1
- package/lib/rules/test-file-shape/common/test-file-shape.const.d.ts +0 -14
- package/lib/rules/test-file-shape/common/test-file-shape.const.d.ts.map +0 -1
- package/lib/rules/test-file-shape/common/test-file-shape.type.d.ts +0 -7
- package/lib/rules/test-file-shape/common/test-file-shape.type.d.ts.map +0 -1
- package/lib/rules/test-file-shape/mock-exports.d.ts +0 -7
- package/lib/rules/test-file-shape/mock-exports.d.ts.map +0 -1
- package/lib/rules/test-file-shape/stub-exports.d.ts +0 -7
- package/lib/rules/test-file-shape/stub-exports.d.ts.map +0 -1
- package/lib/rules/test-file-shape/test-file-shape.d.ts +0 -7
- package/lib/rules/test-file-shape/test-file-shape.d.ts.map +0 -1
- package/lib/rules/type-placement/common/type-placement.const.d.ts +0 -5
- package/lib/rules/type-placement/common/type-placement.const.d.ts.map +0 -1
- package/lib/rules/type-placement/common/type-placement.type.d.ts +0 -7
- package/lib/rules/type-placement/common/type-placement.type.d.ts.map +0 -1
- package/lib/rules/type-placement/type-placement.d.ts +0 -7
- package/lib/rules/type-placement/type-placement.d.ts.map +0 -1
- package/lib/rules/util-purity/common/util-purity.const.d.ts +0 -10
- package/lib/rules/util-purity/common/util-purity.const.d.ts.map +0 -1
- package/lib/rules/util-purity/common/util-purity.type.d.ts +0 -7
- package/lib/rules/util-purity/common/util-purity.type.d.ts.map +0 -1
- package/lib/rules/util-purity/util-purity.d.ts +0 -7
- package/lib/rules/util-purity/util-purity.d.ts.map +0 -1
- package/lib/rules/utils/class-expression-literals.util.d.ts +0 -4
- package/lib/rules/utils/class-expression-literals.util.d.ts.map +0 -1
- package/lib/rules/utils/enclosing-statement.util.d.ts +0 -3
- package/lib/rules/utils/enclosing-statement.util.d.ts.map +0 -1
- package/lib/rules/utils/glob-matcher.util.d.ts +0 -3
- package/lib/rules/utils/glob-matcher.util.d.ts.map +0 -1
- package/lib/rules/utils/indent-of.util.d.ts +0 -3
- package/lib/rules/utils/indent-of.util.d.ts.map +0 -1
- package/lib/rules/utils/resolved-rules.util.d.ts +0 -5
- package/lib/rules/utils/resolved-rules.util.d.ts.map +0 -1
- package/lib/rules/utils/template-classes.util.d.ts +0 -5
- package/lib/rules/utils/template-classes.util.d.ts.map +0 -1
- package/lib/rules/utils/template-links.util.d.ts +0 -2
- package/lib/rules/utils/template-links.util.d.ts.map +0 -1
- package/lib/rules/utils/to-regexp.util.d.ts +0 -2
- package/lib/rules/utils/to-regexp.util.d.ts.map +0 -1
- package/lib/rxjs.d.ts.map +0 -1
- package/lib/storybook.d.ts.map +0 -1
- package/lib/typescript-consistency.d.ts.map +0 -1
- package/lib/typescript-imports.d.ts.map +0 -1
- package/lib/typescript-local-plugin.d.ts.map +0 -1
- package/lib/typescript-overrides.d.ts.map +0 -1
- package/lib/typescript-recommended.d.ts.map +0 -1
- package/lib/typescript-safety.d.ts.map +0 -1
- package/lib/typescript.d.ts.map +0 -1
- package/lib/vitest.d.ts.map +0 -1
- package/prettier.d.ts.map +0 -1
- package/prettier.js.map +0 -7
- package/stylelint.d.ts.map +0 -1
- package/stylelint.js.map +0 -7
package/README.md
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
-
# Lint Suite
|
|
1
|
+
# Lint Suite — ESLint, Stylelint, and Prettier configs for TypeScript and Angular
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`lint-suite` provides composable ESLint flat configs for JavaScript, TypeScript, Angular, RxJS, Vitest, and Playwright, plus standalone Stylelint and Prettier presets. Use the framework-agnostic `recommended` config as a baseline, then add the framework and testing configs your project needs.
|
|
4
|
+
|
|
5
|
+
The suite includes custom rules for TypeScript code structure, unused exports, unused Angular instance fields, and mismatches between Angular template classes and CSS/SCSS selectors. Each custom rule is also available as an independent `@lint-suite` package when you do not need the full preset.
|
|
6
|
+
|
|
7
|
+
## Quick navigation
|
|
8
|
+
|
|
9
|
+
- [Installation](#installation) and [ESLint flat config setup](#usage)
|
|
10
|
+
- [Available configurations](#available-configurations)
|
|
11
|
+
- [Valid and invalid TypeScript examples](#examples)
|
|
12
|
+
- [Standalone custom rule packages](#standalone-custom-rules)
|
|
13
|
+
- [Angular rule customization](#unused-angular-instance-fields)
|
|
14
|
+
- [Stylelint and Prettier presets](#stylelint-and-prettier-presets)
|
|
4
15
|
|
|
5
16
|
## Features
|
|
6
17
|
|
|
@@ -22,10 +33,45 @@ A comprehensive collection of ESLint Flat configurations for modern web applicat
|
|
|
22
33
|
pnpm add -D lint-suite
|
|
23
34
|
```
|
|
24
35
|
|
|
36
|
+
## Standalone custom rules
|
|
37
|
+
|
|
38
|
+
All 21 custom rules also have independently versioned scoped packages.
|
|
39
|
+
Installing one does not install this umbrella or its unrelated presets.
|
|
40
|
+
For example:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pnpm add -D @lint-suite/eslint-plugin-arrow-body-fits-line eslint typescript typescript-eslint
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
import arrow from '@lint-suite/eslint-plugin-arrow-body-fits-line';
|
|
48
|
+
import tseslint from 'typescript-eslint';
|
|
49
|
+
|
|
50
|
+
export default [
|
|
51
|
+
{
|
|
52
|
+
files: ['**/*.ts'],
|
|
53
|
+
languageOptions: { parser: tseslint.parser },
|
|
54
|
+
plugins: { arrow },
|
|
55
|
+
rules: { 'arrow/arrow-body-fits-line': 'error' }
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The [package catalog](https://github.com/F0rty-Tw0/lint-suite#standalone-custom-rules)
|
|
61
|
+
lists every package and its rule key. The Angular instance-field package is
|
|
62
|
+
`@lint-suite/eslint-plugin-no-unused-angular-instance-fields`; its rule key
|
|
63
|
+
remains `no-unused-instance-fields`. The Stylelint package is
|
|
64
|
+
`@lint-suite/stylelint-no-unused-classes`, with rule ID
|
|
65
|
+
`lint-suite/no-unused-classes`.
|
|
66
|
+
|
|
67
|
+
No migration is needed for existing umbrella users: its three entrypoints,
|
|
68
|
+
presets, rule IDs, severities, and options are unchanged. Avoid enabling a
|
|
69
|
+
standalone rule alongside the corresponding umbrella rule.
|
|
70
|
+
|
|
25
71
|
## Dependencies
|
|
26
72
|
|
|
27
73
|
```bash
|
|
28
|
-
pnpm add -D eslint typescript-eslint eslint-config-prettier
|
|
74
|
+
pnpm add -D eslint typescript typescript-eslint eslint-config-prettier
|
|
29
75
|
```
|
|
30
76
|
|
|
31
77
|
If you use the Prettier preset (`lint-suite/prettier`), also install its peer dependency:
|
|
@@ -44,8 +90,8 @@ import { recommended } from 'lint-suite/eslint';
|
|
|
44
90
|
export default [...recommended];
|
|
45
91
|
```
|
|
46
92
|
|
|
47
|
-
The
|
|
48
|
-
|
|
93
|
+
The packages ship as ESM. Use Node.js 24 with the current ESLint,
|
|
94
|
+
TypeScript, and Angular toolchain.
|
|
49
95
|
|
|
50
96
|
Or selectively include configurations:
|
|
51
97
|
|
|
@@ -86,41 +132,49 @@ export default [
|
|
|
86
132
|
|
|
87
133
|
## Available Configurations
|
|
88
134
|
|
|
89
|
-
| Configuration
|
|
90
|
-
|
|
|
91
|
-
| `base`
|
|
92
|
-
| `javascript`
|
|
93
|
-
| `typescript`
|
|
94
|
-
| `angular`
|
|
95
|
-
| `angularTemplate`
|
|
96
|
-
| `rxjs`
|
|
97
|
-
| `vitest`
|
|
98
|
-
| `playwright`
|
|
99
|
-
| `json`
|
|
100
|
-
| `storybook`
|
|
101
|
-
| `boundaries`
|
|
102
|
-
| `prettier`
|
|
103
|
-
| **`recommended`**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
135
|
+
| Configuration | Description |
|
|
136
|
+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
137
|
+
| `base` | Core JavaScript rules, formatting, and complexity limits |
|
|
138
|
+
| `javascript` | JavaScript-specific rules via `@nx/eslint-plugin` |
|
|
139
|
+
| `typescript` | TypeScript strict typing, imports, and naming conventions |
|
|
140
|
+
| `angular` | Angular component best practices with Signal support |
|
|
141
|
+
| `angularTemplate` | HTML template rules with accessibility, performance, and `lint-suite-angular-template/no-unstyled-classes` |
|
|
142
|
+
| `rxjs` | Observable patterns, operator safety, and subscriptions |
|
|
143
|
+
| `vitest` | Vitest testing rules and matcher improvements |
|
|
144
|
+
| `playwright` | Playwright e2e locator and matcher best practices |
|
|
145
|
+
| `json` | JSON linting with comment support for tsconfig/vscode |
|
|
146
|
+
| `storybook` | Storybook CSF enforcement |
|
|
147
|
+
| `boundaries` | Module boundary rules (feature, data-access, ui, etc.) |
|
|
148
|
+
| `prettier` | Disables rules that conflict with Prettier (use last) |
|
|
149
|
+
| **`recommended`** | **Baseline only: `base` + `javascript` + `typescript` + `json` + `boundaries` + `prettier` — compose the rest on top** |
|
|
150
|
+
|
|
151
|
+
**Angular project analysis:** The `angular` preset enables `projectService:
|
|
152
|
+
true` and project analysis for `lint-suite-angular/no-unused-instance-fields`.
|
|
153
|
+
It counts exact reads in the configured TypeScript/Angular Program, including
|
|
154
|
+
external parent templates/TypeScript, subclasses, and Angular interface
|
|
155
|
+
implementations; code outside that Program is unknowable. Project mode also
|
|
156
|
+
reports unused public/protected directive members.
|
|
157
|
+
|
|
158
|
+
Direct rule usage also defaults to project analysis; select `analysis:
|
|
159
|
+
'local'` explicitly for local analysis. `allowEffectFields` is opt-in. After
|
|
160
|
+
cross-file or template changes, do not use ESLint `--cache` for correctness
|
|
161
|
+
gates; run a full non-cached lint such as `eslint --no-cache`.
|
|
111
162
|
|
|
112
163
|
## Disk cache
|
|
113
164
|
|
|
114
|
-
`no-unstyled-classes
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
`LINT_SUITE_CACHE_DIR` to
|
|
123
|
-
keep
|
|
165
|
+
`no-unstyled-classes` and `no-unused-classes` cache parsed component metadata,
|
|
166
|
+
stylesheets, and templates in memory and mirror those entries to
|
|
167
|
+
`node_modules/.cache/lint-suite/` under the current working directory at
|
|
168
|
+
process exit. Each cache is isolated by its owning scoped plugin's package
|
|
169
|
+
name, version, and cache format. Upgrading either plugin invalidates its own
|
|
170
|
+
entries without reusing or overwriting the other plugin's cache.
|
|
171
|
+
|
|
172
|
+
Entries are also invalidated by file mtime and size. Malformed disk entries
|
|
173
|
+
are discarded and rebuilt. Set `LINT_SUITE_CACHE_DIR` to choose a directory,
|
|
174
|
+
or `LINT_SUITE_CACHE=0` to keep caching in memory only.
|
|
175
|
+
|
|
176
|
+
The Angular instance-field rule maintains a separate in-memory project
|
|
177
|
+
usage index; it does not use this disk cache.
|
|
124
178
|
|
|
125
179
|
## Customization
|
|
126
180
|
|
|
@@ -143,9 +197,8 @@ export default [
|
|
|
143
197
|
### Unused Angular instance fields
|
|
144
198
|
|
|
145
199
|
The `angular` config enables `lint-suite-angular/no-unused-instance-fields`.
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
templates can read a component or directive member:
|
|
200
|
+
Project analysis is the default and recognizes reads from other TypeScript
|
|
201
|
+
files and Angular templates. It requires parser services with type information:
|
|
149
202
|
|
|
150
203
|
```js
|
|
151
204
|
{
|
|
@@ -176,7 +229,9 @@ templates can read a component or directive member:
|
|
|
176
229
|
last check), so a cross-folder template edit can take a moment to show up
|
|
177
230
|
in another file's diagnostics. A `templateUrl` file that does not exist
|
|
178
231
|
yet is remembered as missing and read on the same schedule once it does.
|
|
179
|
-
- `analysis` defaults to `'
|
|
232
|
+
- `analysis` defaults to `'project'`. Set `analysis: 'local'` to check only
|
|
233
|
+
the class, component template, and host expressions without type information.
|
|
234
|
+
Project mode excludes spec-file reads. A
|
|
180
235
|
file it cannot index exactly (a template that does not parse, metadata it
|
|
181
236
|
cannot evaluate, a read it cannot type) falls back to name matching for
|
|
182
237
|
that file only: every member whose name that file mentions counts as read.
|
|
@@ -453,18 +508,18 @@ them reads type information or the filesystem; each listens to one node
|
|
|
453
508
|
type and reports in microseconds per file. Where a fix needs a name the rule
|
|
454
509
|
offers an IDE suggestion with a placeholder name instead of an auto-fix.
|
|
455
510
|
|
|
456
|
-
| Rule
|
|
457
|
-
|
|
458
|
-
| `local/no-call-in-condition`
|
|
459
|
-
| `local/max-condition-operands`
|
|
460
|
-
| `local/no-grouped-condition`
|
|
461
|
-
| `local/ternary-branch-shape`
|
|
462
|
-
| `local/chain-receiver-is-name`
|
|
463
|
-
| `local/chain-fits-line`
|
|
464
|
-
| `local/arrow-body-fits-line`
|
|
465
|
-
| `local/no-nested-object-value`
|
|
466
|
-
| `local/no-spread-expression`
|
|
467
|
-
| `local/no-inline-return-object` | `return {...}` and `=> ({...})`.
|
|
511
|
+
| Rule | Reports | Fix |
|
|
512
|
+
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- |
|
|
513
|
+
| `local/no-call-in-condition` | A function call inside an `if` condition, or inside a boolean `const` that an `if` tests. Zero-argument `this.x()` calls (Angular signal reads) and type-predicate calls are exempt; predicates are found through scope in the same file, or through the type checker when a program is available. Option `allowPredicates` (regex sources, default `['^(is\|has)[A-Z]']`) applies when there is no program. | Suggestion: hoist to a `const` |
|
|
514
|
+
| `local/max-condition-operands` | An `if` condition with more than `max` (default 3) operands joined by `&&` / `\|\|`. | none |
|
|
515
|
+
| `local/no-grouped-condition` | A parenthesised group with a different operator inside an `if` condition or a boolean `const` (`a && (b \|\| c)`). | Suggestion: hoist the group |
|
|
516
|
+
| `local/ternary-branch-shape` | A ternary branch that is not a name, literal, template literal, or plain member access. | none |
|
|
517
|
+
| `local/chain-receiver-is-name` | A member chain starting on an inline expression: `(a ?? b).x`, `{...}.x`, `[...].x`, `(await p).x`. | Suggestion: name the receiver |
|
|
518
|
+
| `local/chain-fits-line` | A chain of two or more calls whose `.method(` parts sit on different lines. A multi-line callback argument does not count. | none |
|
|
519
|
+
| `local/arrow-body-fits-line` | An expression-bodied arrow whose body wraps onto more lines. | Fix: block body with `return` |
|
|
520
|
+
| `local/no-nested-object-value` | A property value that is a non-empty object literal, an array holding object literals, a ternary, or a call chain. Decorator arguments (`@Component({...})`) and files matching `configFiles` (default `**/*.config.*`, `**/eslint.config.*`, `**/*.schema.ts`) are exempt. | Suggestion: hoist to a `const` |
|
|
521
|
+
| `local/no-spread-expression` | `...(expr)` where the argument is not a name or member access. | Suggestion: hoist to a `const` |
|
|
522
|
+
| `local/no-inline-return-object` | `return {...}` and `=> ({...})`. | Suggestion: `const result = {...}; return result;` |
|
|
468
523
|
|
|
469
524
|
### Project layout rules
|
|
470
525
|
|
|
@@ -472,11 +527,11 @@ Also in the `typescript` preset. These read only the file's own path and
|
|
|
472
527
|
return no listeners for files they do not cover, so they cost one regex
|
|
473
528
|
per file.
|
|
474
529
|
|
|
475
|
-
| Rule
|
|
476
|
-
|
|
477
|
-
| `local/type-placement`
|
|
478
|
-
| `local/util-purity`
|
|
479
|
-
| `local/test-file-shape` | A file named `*.spec-support.ts`, `*.spec-helper.ts`, `*.test-utils.ts`, `*-fixture.ts`, or under `__mocks__/` / `helpers/` / `common/stubs/`; a `.stub.ts` outside `test/stubs/`, a `.mock.ts` outside `test/mocks/`, a `.spec.util.ts` outside `test/utils/`, or any `fixtures/` directory outside `test/fixtures/` (a dedicated `testing/` library is exempt from all of these); a `test/stubs/*.stub.ts` export not named `UPPER_SNAKE_STUB` or without a type annotation; a `test/mocks/*.mock.ts` export that is not a camelCase `...Mock` function with an explicit return type.
|
|
530
|
+
| Rule | Reports | Options |
|
|
531
|
+
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
532
|
+
| `local/type-placement` | An exported `type` outside a `common/*.type.ts` or `test/common/*.type.ts` file; a value exported from a `*.type.ts` file; a non-`const` export from a `*.const.ts` file; an `import type` from a relative or internal path that is neither a `*.type.ts` / `*.schema.ts` file nor a `common` barrel (`../common`, `./common/index.ts`, `@shared/common`). `.spec.ts`, `.stub.ts`, `.schema.ts` (an inferred type lives beside its schema), `.d.ts`, `state.type.ts` (any prefix), and fixtures are exempt; a `.spec.util.ts` file is not, so an exported type in one is reported. Never resolves imports. | `internalPatterns`: regex sources for alias prefixes that must resolve to a `*.type.ts` file. Default empty: a workspace alias (`@shared/common`) resolves to a library entry point, and module boundaries forbid deep imports, so alias type imports pass. |
|
|
533
|
+
| `local/util-purity` | Inside `utils/*.util.ts` (excluding paths under `test/` or `testing/`): imports of `node:fs`, `child_process`, `os`, `process`, `http`, `net`, `worker_threads`; a module-level `let`; a module-level `new Map/Set/WeakMap/WeakSet`; `process.*`, `globalThis`, `window`, `document`, `localStorage`, `console`; `Date.now`, `Math.random`, `performance.now`, `crypto.randomUUID`; `setTimeout`, `setInterval`, `fetch`, `inject`, `require`. | `bannedModules` |
|
|
534
|
+
| `local/test-file-shape` | A file named `*.spec-support.ts`, `*.spec-helper.ts`, `*.test-utils.ts`, `*-fixture.ts`, or under `__mocks__/` / `helpers/` / `common/stubs/`; a `.stub.ts` outside `test/stubs/`, a `.mock.ts` outside `test/mocks/`, a `.spec.util.ts` outside `test/utils/`, or any `fixtures/` directory outside `test/fixtures/` (a dedicated `testing/` library is exempt from all of these); a `test/stubs/*.stub.ts` export not named `UPPER_SNAKE_STUB` or without a type annotation; a `test/mocks/*.mock.ts` export that is not a camelCase `...Mock` function with an explicit return type. | none |
|
|
480
535
|
|
|
481
536
|
### No unused exports
|
|
482
537
|
|
|
@@ -519,6 +574,108 @@ imports, and a module that exports names but is never imported at all.
|
|
|
519
574
|
`tsconfig.lib.json`) reports as unused; that is the same boundary `tsc`
|
|
520
575
|
draws.
|
|
521
576
|
|
|
577
|
+
## Examples
|
|
578
|
+
|
|
579
|
+
These five valid and five invalid TypeScript examples illustrate individual custom rules enabled by the `typescript` preset. Each example is judged by the named rule only; it is not a complete file guaranteed to pass every rule in the suite. Values such as `items`, `name`, and `enabled` represent existing application variables.
|
|
580
|
+
|
|
581
|
+
### Valid examples
|
|
582
|
+
|
|
583
|
+
#### 1. Name an object type before using it
|
|
584
|
+
|
|
585
|
+
`local/no-inline-object-types` allows a named type alias used in a parameter annotation.
|
|
586
|
+
|
|
587
|
+
```ts
|
|
588
|
+
type User = { name: string };
|
|
589
|
+
|
|
590
|
+
function greet(user: User): string {
|
|
591
|
+
return user.name;
|
|
592
|
+
}
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
#### 2. Name a returned object
|
|
596
|
+
|
|
597
|
+
`local/no-inline-return-object` allows returning an identifier instead of an inline object literal.
|
|
598
|
+
|
|
599
|
+
```ts
|
|
600
|
+
function createUser() {
|
|
601
|
+
const user = { name: 'Ada' };
|
|
602
|
+
return user;
|
|
603
|
+
}
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
#### 3. Extract a nested object value
|
|
607
|
+
|
|
608
|
+
`local/no-nested-object-value` allows an identifier as an object property value.
|
|
609
|
+
|
|
610
|
+
```ts
|
|
611
|
+
const address = { city: 'London' };
|
|
612
|
+
const user = { name: 'Ada', address };
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
#### 4. Name a spread operand
|
|
616
|
+
|
|
617
|
+
`local/no-spread-expression` allows spreading a named array.
|
|
618
|
+
|
|
619
|
+
```ts
|
|
620
|
+
const copy = [...items];
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
#### 5. Mark a primitive type property readonly
|
|
624
|
+
|
|
625
|
+
`local/readonly-type-properties` accepts readonly primitive properties in type aliases.
|
|
626
|
+
|
|
627
|
+
```ts
|
|
628
|
+
type Settings = { readonly enabled: boolean };
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
### Invalid examples
|
|
632
|
+
|
|
633
|
+
#### 1. Put an object type directly in a parameter annotation
|
|
634
|
+
|
|
635
|
+
`local/no-inline-object-types` reports the inline type. Extract the `User` type shown above.
|
|
636
|
+
|
|
637
|
+
```ts
|
|
638
|
+
function greet(user: { name: string }): string {
|
|
639
|
+
return user.name;
|
|
640
|
+
}
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
#### 2. Return an object literal directly
|
|
644
|
+
|
|
645
|
+
`local/no-inline-return-object` reports the returned literal. Assign it to a named constant first.
|
|
646
|
+
|
|
647
|
+
```ts
|
|
648
|
+
function createUser() {
|
|
649
|
+
return { name: 'Ada' };
|
|
650
|
+
}
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
#### 3. Nest an object literal inside another object
|
|
654
|
+
|
|
655
|
+
`local/no-nested-object-value` reports the inline `address` value. Declare it separately.
|
|
656
|
+
|
|
657
|
+
```ts
|
|
658
|
+
const user = { name: 'Ada', address: { city: 'London' } };
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
#### 4. Spread the result of a call directly
|
|
662
|
+
|
|
663
|
+
`local/no-spread-expression` reports the inline call used as a spread operand. Assign the filtered array to a named constant before spreading it.
|
|
664
|
+
|
|
665
|
+
```ts
|
|
666
|
+
const copy = [...items.filter(isVisible)];
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
#### 5. Leave a primitive type property mutable
|
|
670
|
+
|
|
671
|
+
`local/readonly-type-properties` reports the missing `readonly` modifier.
|
|
672
|
+
|
|
673
|
+
```ts
|
|
674
|
+
type Settings = { enabled: boolean };
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
For more valid and invalid code examples, configuration options, and rule-specific exceptions, see the [standalone package catalog](https://github.com/F0rty-Tw0/lint-suite#standalone-custom-rules).
|
|
678
|
+
|
|
522
679
|
## Stylelint and Prettier presets
|
|
523
680
|
|
|
524
681
|
These are standalone configs exported as subpaths — they are not part of the `recommended` ESLint array.
|
package/eslint.d.ts
CHANGED
|
@@ -13,4 +13,3 @@ import { typescript } from './lib/typescript.ts';
|
|
|
13
13
|
import { vitest } from './lib/vitest.ts';
|
|
14
14
|
export declare const recommended: ConfigArray;
|
|
15
15
|
export { base, javascript, typescript, angular, angularTemplate, rxjs, json, boundaries, storybook, vitest, playwright, prettier };
|
|
16
|
-
//# sourceMappingURL=eslint.d.ts.map
|