@codeperfect/eslint-plugin 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/{custom-rules.d.ts → application/custom-rules.d.ts} +3 -0
- package/dist/application/custom-rules.d.ts.map +1 -0
- package/dist/application/custom-rules.js +74 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +3 -0
- package/dist/codeperfect-eslint-plugin-1.0.0.tgz +0 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts +56 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/barrel-file-utilities.js +149 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/consistent-barrel-files-listeners.d.ts +4 -4
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +98 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +45 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/consistent-barrel-files-options.js +64 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule-test-utilities.d.ts +5 -4
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +87 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/exports-only-rule.js +140 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts +5 -0
- package/dist/domain/architecture/consistent-barrel-files/index.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/index.js +4 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +85 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts +1 -1
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +91 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts +4 -6
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +95 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.js +43 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts +4 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/rule.repeat-runs.js +4 -0
- package/dist/{architecture → domain/architecture}/consistent-barrel-files/test-helpers.d.ts +48 -48
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts +20 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.file-writers.js +25 -0
- package/dist/domain/architecture/consistent-barrel-files/test-helpers.js +235 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts +19 -0
- package/dist/domain/architecture/consistent-barrel-files/types.d.ts.map +1 -0
- package/dist/domain/architecture/consistent-barrel-files/types.js +2 -0
- package/dist/{architecture → domain/architecture}/index.d.ts +1 -1
- package/dist/domain/architecture/index.d.ts.map +1 -0
- package/dist/domain/architecture/index.js +2 -0
- package/dist/{core → domain/core}/index.d.ts +2 -2
- package/dist/domain/core/index.d.ts.map +1 -0
- package/dist/domain/core/index.js +3 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts +2 -0
- package/dist/domain/core/no-multiple-declarators/index.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/index.js +2 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts +101 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule-test-helpers.js +108 -0
- package/dist/{core → domain/core}/no-multiple-declarators/rule.d.ts +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts +35 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.fixes.js +95 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.guardrails.js +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.js +219 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts +4 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/rule.mocked-types.js +4 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts +77 -0
- package/dist/domain/core/no-multiple-declarators/types.d.ts.map +1 -0
- package/dist/domain/core/no-multiple-declarators/types.js +38 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts +2 -0
- package/dist/domain/core/prefer-interface-types/index.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/index.js +2 -0
- package/dist/domain/core/prefer-interface-types/rule.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/rule.js +145 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.d.ts.map +1 -0
- package/dist/domain/core/prefer-interface-types/test-helpers.js +116 -0
- package/dist/{custom-rule-documentation.d.ts → domain/custom-rule-documentation.d.ts} +1 -1
- package/dist/domain/custom-rule-documentation.d.ts.map +1 -0
- package/dist/domain/custom-rule-documentation.js +35 -0
- package/dist/domain/docs/index.d.ts +4 -0
- package/dist/domain/docs/index.d.ts.map +1 -0
- package/dist/domain/docs/index.js +4 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities-test-helpers.js +129 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/comment-utilities.js +146 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts +2 -0
- package/dist/domain/docs/no-interface-member-docs/index.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/index.js +2 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-tags.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-tags.js +101 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/parameter-utilities.d.ts +1 -1
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/parameter-utilities.js +125 -0
- package/dist/domain/docs/no-interface-member-docs/rule.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/rule.js +168 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/test-helpers.js +157 -0
- package/dist/{docs → domain/docs}/no-interface-member-docs/types.d.ts +2 -2
- package/dist/domain/docs/no-interface-member-docs/types.d.ts.map +1 -0
- package/dist/domain/docs/no-interface-member-docs/types.js +2 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts +5 -0
- package/dist/domain/docs/require-example-language/create-fixer.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/create-fixer.js +5 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/empty-fence-fixes.js +169 -0
- package/dist/domain/docs/require-example-language/example-utilities.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/example-utilities.js +76 -0
- package/dist/{docs → domain/docs}/require-example-language/examples.d.ts +1 -1
- package/dist/domain/docs/require-example-language/examples.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/examples.js +181 -0
- package/dist/{docs → domain/docs}/require-example-language/fixes.d.ts +2 -2
- package/dist/domain/docs/require-example-language/fixes.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/fixes.js +182 -0
- package/dist/domain/docs/require-example-language/index.d.ts +3 -0
- package/dist/domain/docs/require-example-language/index.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/index.js +2 -0
- package/dist/{docs → domain/docs}/require-example-language/reporting.d.ts +1 -1
- package/dist/domain/docs/require-example-language/reporting.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/reporting.js +148 -0
- package/dist/domain/docs/require-example-language/rule.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/rule.js +34 -0
- package/dist/domain/docs/require-example-language/types.d.ts.map +1 -0
- package/dist/domain/docs/require-example-language/types.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts +2 -0
- package/dist/domain/docs/single-line-jsdoc/index.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/index.js +2 -0
- package/dist/domain/docs/single-line-jsdoc/rule.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.edge-cases.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/rule.js +196 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts +4 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/rule.node-lookups.js +5 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-content.js +95 -0
- package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-utilities.d.ts +1 -1
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +1 -0
- package/dist/domain/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +140 -0
- package/dist/domain/docs/test-helpers.d.ts.map +1 -0
- package/dist/domain/docs/test-helpers.js +107 -0
- package/dist/domain/index.d.ts +6 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +6 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts +92 -0
- package/dist/domain/testing/aaa/analyzer.analysis.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.analysis.helpers.js +4 -0
- package/dist/domain/testing/aaa/analyzer.analysis.js +247 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts +93 -0
- package/dist/domain/testing/aaa/analyzer.assertions.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.assertions.js +283 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts +75 -0
- package/dist/domain/testing/aaa/analyzer.classification.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.js +201 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts +9 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.classification.member-patterns.js +10 -0
- package/dist/domain/testing/aaa/analyzer.d.ts +46 -0
- package/dist/domain/testing/aaa/analyzer.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.js +59 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts +107 -0
- package/dist/domain/testing/aaa/analyzer.super.d.ts.map +1 -0
- package/dist/domain/testing/aaa/analyzer.super.js +228 -0
- package/dist/{testing → domain/testing}/aaa/index.d.ts +2 -2
- package/dist/domain/testing/aaa/index.d.ts.map +1 -0
- package/dist/domain/testing/aaa/index.js +2 -0
- package/dist/domain/testing/aaa/types.d.ts +58 -0
- package/dist/domain/testing/aaa/types.d.ts.map +1 -0
- package/dist/domain/testing/aaa/types.js +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts +2 -0
- package/dist/domain/testing/assert-actual-expected-names/index.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/index.js +2 -0
- package/dist/{testing → domain/testing}/assert-actual-expected-names/rule.d.ts +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.d.ts.map +1 -0
- package/dist/domain/testing/assert-actual-expected-names/rule.js +113 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/index.js +2 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts +13 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/pattern-identifiers.js +134 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts +25 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-identifiers.js +138 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.behavior.js +4 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts +14 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/phase-purity-reporting.js +180 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts +42 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule-test-helpers.js +188 -0
- package/dist/{testing → domain/testing}/enforce-aaa-phase-purity/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-phase-purity/rule.js +34 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts +2 -0
- package/dist/domain/testing/enforce-aaa-structure/index.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/index.js +2 -0
- package/dist/{testing → domain/testing}/enforce-aaa-structure/rule.d.ts +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.d.ts.map +1 -0
- package/dist/domain/testing/enforce-aaa-structure/rule.js +85 -0
- package/dist/{testing → domain/testing}/index.d.ts +9 -8
- package/dist/domain/testing/index.d.ts.map +1 -0
- package/dist/domain/testing/index.js +10 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts +29 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-statements.js +90 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts +31 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-import-updates.js +43 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts +16 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix-imports.js +205 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts +28 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/fix.js +171 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/index.js +2 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-bindings.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-bindings.js +52 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-declarations.d.ts +2 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-declarations.js +131 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-helpers.js +102 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-imports.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-imports.js +156 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-rewrites.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-rewrites.js +119 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match-walk.js +62 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts +26 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/match.js +198 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts +20 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule-test-helpers.js +39 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/rule.js +36 -0
- package/dist/{testing → domain/testing}/prefer-vi-mocked-import/types.d.ts +1 -1
- package/dist/domain/testing/prefer-vi-mocked-import/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vi-mocked-import/types.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts +86 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/ast-helpers.js +150 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/index.js +2 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts +14 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match-input.js +81 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts +13 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/match.js +189 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts +25 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/replacement-helpers.js +92 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts +32 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule-test-helpers.js +164 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts +5 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.guardrails.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.input-shapes.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.js +62 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/rule.signature-fallback.js +4 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts +24 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-helpers.js +113 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts +36 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/type-shape-helpers.js +138 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts +203 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.d.ts.map +1 -0
- package/dist/domain/testing/prefer-vitest-incremental-casts/types.js +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts +2 -0
- package/dist/domain/testing/require-aaa-sections/index.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/index.js +2 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts +17 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/missing-section-fixes.js +150 -0
- package/dist/{testing → domain/testing}/require-aaa-sections/rule.d.ts +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.js +129 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts +104 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.d.ts.map +1 -0
- package/dist/domain/testing/require-aaa-sections/rule.reporting.js +217 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts +2 -0
- package/dist/domain/testing/require-act-result-capture/index.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/index.js +2 -0
- package/dist/{testing → domain/testing}/require-act-result-capture/rule.d.ts +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-act-result-capture/rule.js +106 -0
- package/dist/domain/testing/require-test-companion/index.d.ts +3 -0
- package/dist/domain/testing/require-test-companion/index.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/index.js +3 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-listeners.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-listeners.js +145 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-options.js +113 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-test-helpers.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-test-helpers.js +184 -0
- package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-utilities.d.ts +1 -1
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/require-test-companion-utilities.js +26 -0
- package/dist/domain/testing/require-test-companion/rule.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/rule.js +57 -0
- package/dist/domain/testing/require-test-companion/types.d.ts.map +1 -0
- package/dist/domain/testing/require-test-companion/types.js +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts +2 -0
- package/dist/domain/testing/single-act-statement/index.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/index.js +2 -0
- package/dist/{testing → domain/testing}/single-act-statement/rule.d.ts +1 -0
- package/dist/domain/testing/single-act-statement/rule.d.ts.map +1 -0
- package/dist/domain/testing/single-act-statement/rule.js +34 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -6
- package/dist/{codeperfect-plugin.d.ts → infrastructure/codeperfect-plugin.d.ts} +2 -0
- package/dist/infrastructure/codeperfect-plugin.d.ts.map +1 -0
- package/dist/infrastructure/codeperfect-plugin.js +30 -0
- package/dist/infrastructure/index.d.ts +5 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +4 -0
- package/dist/infrastructure/presets.d.ts +18 -0
- package/dist/infrastructure/presets.d.ts.map +1 -0
- package/dist/infrastructure/presets.js +81 -0
- package/package.json +54 -27
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-listeners.js +0 -131
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts +0 -48
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/consistent-barrel-files-options.js +0 -126
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/exports-only-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/exports-only-rule.js +0 -218
- package/dist/architecture/consistent-barrel-files/index.d.ts +0 -5
- package/dist/architecture/consistent-barrel-files/index.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/index.js +0 -4
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-rule.js +0 -100
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-test-utilities.js +0 -90
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/no-reexports-outside-barrels-utilities.js +0 -154
- package/dist/architecture/consistent-barrel-files/rule.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/rule.js +0 -58
- package/dist/architecture/consistent-barrel-files/test-helpers.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/test-helpers.js +0 -229
- package/dist/architecture/consistent-barrel-files/types.d.ts +0 -25
- package/dist/architecture/consistent-barrel-files/types.d.ts.map +0 -1
- package/dist/architecture/consistent-barrel-files/types.js +0 -2
- package/dist/architecture/index.d.ts.map +0 -1
- package/dist/architecture/index.js +0 -2
- package/dist/benchmark-rules.d.ts +0 -83
- package/dist/benchmark-rules.d.ts.map +0 -1
- package/dist/benchmark-rules.js +0 -175
- package/dist/codeperfect-plugin.d.ts.map +0 -1
- package/dist/codeperfect-plugin.js +0 -29
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -3
- package/dist/core/no-multiple-declarators/index.d.ts +0 -2
- package/dist/core/no-multiple-declarators/index.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/index.js +0 -2
- package/dist/core/no-multiple-declarators/rule.d.ts.map +0 -1
- package/dist/core/no-multiple-declarators/rule.js +0 -100
- package/dist/core/prefer-interface-types/index.d.ts +0 -2
- package/dist/core/prefer-interface-types/index.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/index.js +0 -2
- package/dist/core/prefer-interface-types/rule.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/rule.js +0 -145
- package/dist/core/prefer-interface-types/test-helpers.d.ts.map +0 -1
- package/dist/core/prefer-interface-types/test-helpers.js +0 -116
- package/dist/custom-rule-documentation.d.ts.map +0 -1
- package/dist/custom-rule-documentation.js +0 -35
- package/dist/custom-rules.d.ts.map +0 -1
- package/dist/custom-rules.js +0 -70
- package/dist/docs/index.d.ts +0 -4
- package/dist/docs/index.d.ts.map +0 -1
- package/dist/docs/index.js +0 -4
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities-test-helpers.js +0 -129
- package/dist/docs/no-interface-member-docs/comment-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/comment-utilities.js +0 -146
- package/dist/docs/no-interface-member-docs/index.d.ts +0 -2
- package/dist/docs/no-interface-member-docs/index.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/index.js +0 -2
- package/dist/docs/no-interface-member-docs/parameter-tags.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-tags.js +0 -101
- package/dist/docs/no-interface-member-docs/parameter-utilities.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/parameter-utilities.js +0 -125
- package/dist/docs/no-interface-member-docs/rule.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/rule.js +0 -168
- package/dist/docs/no-interface-member-docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/test-helpers.js +0 -157
- package/dist/docs/no-interface-member-docs/types.d.ts.map +0 -1
- package/dist/docs/no-interface-member-docs/types.js +0 -2
- package/dist/docs/require-example-language/empty-fence-fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/empty-fence-fixes.js +0 -169
- package/dist/docs/require-example-language/example-utilities.d.ts.map +0 -1
- package/dist/docs/require-example-language/example-utilities.js +0 -76
- package/dist/docs/require-example-language/examples.d.ts.map +0 -1
- package/dist/docs/require-example-language/examples.js +0 -181
- package/dist/docs/require-example-language/fixes.d.ts.map +0 -1
- package/dist/docs/require-example-language/fixes.js +0 -182
- package/dist/docs/require-example-language/index.d.ts +0 -3
- package/dist/docs/require-example-language/index.d.ts.map +0 -1
- package/dist/docs/require-example-language/index.js +0 -2
- package/dist/docs/require-example-language/reporting.d.ts.map +0 -1
- package/dist/docs/require-example-language/reporting.js +0 -145
- package/dist/docs/require-example-language/rule.d.ts.map +0 -1
- package/dist/docs/require-example-language/rule.js +0 -34
- package/dist/docs/require-example-language/types.d.ts.map +0 -1
- package/dist/docs/require-example-language/types.js +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts +0 -2
- package/dist/docs/single-line-jsdoc/index.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/index.js +0 -2
- package/dist/docs/single-line-jsdoc/rule.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/rule.js +0 -196
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-content.js +0 -95
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.d.ts.map +0 -1
- package/dist/docs/single-line-jsdoc/single-line-jsdoc-utilities.js +0 -140
- package/dist/docs/test-helpers.d.ts.map +0 -1
- package/dist/docs/test-helpers.js +0 -107
- package/dist/presets.d.ts +0 -10
- package/dist/presets.d.ts.map +0 -1
- package/dist/presets.js +0 -50
- package/dist/rules/index.d.ts +0 -5
- package/dist/rules/index.d.ts.map +0 -1
- package/dist/rules/index.js +0 -6
- package/dist/testing/aaa/analyzer.d.ts +0 -36
- package/dist/testing/aaa/analyzer.d.ts.map +0 -1
- package/dist/testing/aaa/analyzer.js +0 -490
- package/dist/testing/aaa/index.d.ts.map +0 -1
- package/dist/testing/aaa/index.js +0 -2
- package/dist/testing/aaa/types.d.ts +0 -31
- package/dist/testing/aaa/types.d.ts.map +0 -1
- package/dist/testing/aaa/types.js +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts +0 -2
- package/dist/testing/assert-actual-expected-names/index.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/index.js +0 -2
- package/dist/testing/assert-actual-expected-names/rule.d.ts.map +0 -1
- package/dist/testing/assert-actual-expected-names/rule.js +0 -54
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-phase-purity/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/index.js +0 -2
- package/dist/testing/enforce-aaa-phase-purity/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-phase-purity/rule.js +0 -110
- package/dist/testing/enforce-aaa-structure/index.d.ts +0 -2
- package/dist/testing/enforce-aaa-structure/index.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/index.js +0 -2
- package/dist/testing/enforce-aaa-structure/rule.d.ts.map +0 -1
- package/dist/testing/enforce-aaa-structure/rule.js +0 -48
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -9
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts +0 -16
- package/dist/testing/prefer-vi-mocked-import/fix.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/fix.js +0 -224
- package/dist/testing/prefer-vi-mocked-import/index.d.ts +0 -2
- package/dist/testing/prefer-vi-mocked-import/index.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/index.js +0 -2
- package/dist/testing/prefer-vi-mocked-import/match-bindings.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-bindings.js +0 -52
- package/dist/testing/prefer-vi-mocked-import/match-declarations.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-declarations.js +0 -99
- package/dist/testing/prefer-vi-mocked-import/match-helpers.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-helpers.js +0 -102
- package/dist/testing/prefer-vi-mocked-import/match-imports.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-imports.js +0 -156
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-rewrites.js +0 -119
- package/dist/testing/prefer-vi-mocked-import/match-walk.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match-walk.js +0 -62
- package/dist/testing/prefer-vi-mocked-import/match.d.ts +0 -15
- package/dist/testing/prefer-vi-mocked-import/match.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/match.js +0 -193
- package/dist/testing/prefer-vi-mocked-import/rule.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/rule.js +0 -32
- package/dist/testing/prefer-vi-mocked-import/types.d.ts.map +0 -1
- package/dist/testing/prefer-vi-mocked-import/types.js +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts +0 -2
- package/dist/testing/require-aaa-sections/index.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/index.js +0 -2
- package/dist/testing/require-aaa-sections/rule.d.ts.map +0 -1
- package/dist/testing/require-aaa-sections/rule.js +0 -111
- package/dist/testing/require-act-result-capture/index.d.ts +0 -2
- package/dist/testing/require-act-result-capture/index.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/index.js +0 -2
- package/dist/testing/require-act-result-capture/rule.d.ts.map +0 -1
- package/dist/testing/require-act-result-capture/rule.js +0 -34
- package/dist/testing/require-test-companion/index.d.ts +0 -3
- package/dist/testing/require-test-companion/index.d.ts.map +0 -1
- package/dist/testing/require-test-companion/index.js +0 -3
- package/dist/testing/require-test-companion/require-test-companion-listeners.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-listeners.js +0 -145
- package/dist/testing/require-test-companion/require-test-companion-options.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-options.js +0 -112
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-test-helpers.js +0 -183
- package/dist/testing/require-test-companion/require-test-companion-utilities.d.ts.map +0 -1
- package/dist/testing/require-test-companion/require-test-companion-utilities.js +0 -26
- package/dist/testing/require-test-companion/rule.d.ts.map +0 -1
- package/dist/testing/require-test-companion/rule.js +0 -57
- package/dist/testing/require-test-companion/types.d.ts.map +0 -1
- package/dist/testing/require-test-companion/types.js +0 -2
- package/dist/testing/single-act-statement/index.d.ts +0 -2
- package/dist/testing/single-act-statement/index.d.ts.map +0 -1
- package/dist/testing/single-act-statement/index.js +0 -2
- package/dist/testing/single-act-statement/rule.d.ts.map +0 -1
- package/dist/testing/single-act-statement/rule.js +0 -33
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/exports-only-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/no-reexports-outside-barrels-rule.d.ts +0 -0
- /package/dist/{architecture → domain/architecture}/consistent-barrel-files/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/rule.d.ts +0 -0
- /package/dist/{core → domain/core}/prefer-interface-types/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/comment-utilities-test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/no-interface-member-docs/test-helpers.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/empty-fence-fixes.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/example-utilities.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/require-example-language/types.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/rule.d.ts +0 -0
- /package/dist/{docs → domain/docs}/single-line-jsdoc/single-line-jsdoc-content.d.ts +0 -0
- /package/dist/{docs → domain/docs}/test-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-helpers.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/match-walk.d.ts +0 -0
- /package/dist/{testing → domain/testing}/prefer-vi-mocked-import/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/require-test-companion-options.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/rule.d.ts +0 -0
- /package/dist/{testing → domain/testing}/require-test-companion/types.d.ts +0 -0
package/dist/benchmark-rules.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import { Linter } from "eslint";
|
|
2
|
-
import { performance } from "node:perf_hooks";
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
4
|
-
import { parser } from "typescript-eslint";
|
|
5
|
-
import { consistentBarrelFilesRule, preferInterfaceTypesRule, preferViMockedImportRule, requireExampleLanguageRule, } from "./rules";
|
|
6
|
-
/** Iteration count for each benchmark case. */
|
|
7
|
-
const iterations = 25;
|
|
8
|
-
/** Shared TypeScript language options for benchmark runs. */
|
|
9
|
-
const languageOptions = {
|
|
10
|
-
ecmaVersion: 2022,
|
|
11
|
-
parser,
|
|
12
|
-
sourceType: "module",
|
|
13
|
-
};
|
|
14
|
-
/** Benchmark cases covering the heavier package-owned rules. */
|
|
15
|
-
const benchmarkCases = [
|
|
16
|
-
{
|
|
17
|
-
code: Array.from({ length: 200 }, (_unused, index) => {
|
|
18
|
-
return `export interface Feature${index} { value: string }`;
|
|
19
|
-
}).join("\n"),
|
|
20
|
-
filename: "src/features.ts",
|
|
21
|
-
ruleName: "prefer-interface-types",
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
code: Array.from({ length: 150 }, (_unused, index) => {
|
|
25
|
-
return [
|
|
26
|
-
"/**",
|
|
27
|
-
` * @example feature${index}()`,
|
|
28
|
-
" * ```typescript",
|
|
29
|
-
` * feature${index}();`,
|
|
30
|
-
" * ```",
|
|
31
|
-
" */",
|
|
32
|
-
`export function feature${index}(): void {}`,
|
|
33
|
-
].join("\n");
|
|
34
|
-
}).join("\n"),
|
|
35
|
-
filename: "src/docs.ts",
|
|
36
|
-
ruleName: "require-example-language",
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
code: Array.from({ length: 100 }, (_unused, index) => {
|
|
40
|
-
return [
|
|
41
|
-
`const mockedFeature${index} = vi.fn();`,
|
|
42
|
-
`vi.mock("./feature-${index}", () => ({ feature${index}: mockedFeature${index} }));`,
|
|
43
|
-
].join("\n");
|
|
44
|
-
}).join("\n"),
|
|
45
|
-
filename: "src/example.spec.ts",
|
|
46
|
-
ruleName: "prefer-vi-mocked-import",
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
code: Array.from({ length: 150 }, (_unused, index) => {
|
|
50
|
-
return `export * from "./feature-${index}";`;
|
|
51
|
-
}).join("\n"),
|
|
52
|
-
filename: "src/index.ts",
|
|
53
|
-
ruleName: "consistent-barrel-files",
|
|
54
|
-
},
|
|
55
|
-
];
|
|
56
|
-
/**
|
|
57
|
-
* Formats a benchmark summary for console output.
|
|
58
|
-
* @param summary Summary to format.
|
|
59
|
-
* @returns Return value output.
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* const line = formatBenchmarkSummary({
|
|
63
|
-
* elapsedMilliseconds: 10,
|
|
64
|
-
* iterations: 1,
|
|
65
|
-
* ruleName: "prefer-interface-types",
|
|
66
|
-
* });
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
function formatBenchmarkSummary(summary) {
|
|
70
|
-
return `${summary.ruleName}: ${summary.elapsedMilliseconds}ms total for ${summary.iterations} iterations`;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Resolves the rule module used for a benchmark case.
|
|
74
|
-
* @param ruleName Internal rule name.
|
|
75
|
-
* @returns Return value output.
|
|
76
|
-
* @throws {TypeError} When the benchmark case references an unsupported rule.
|
|
77
|
-
* @example
|
|
78
|
-
* ```typescript
|
|
79
|
-
* const rule = getRuleModule("prefer-interface-types");
|
|
80
|
-
* ```
|
|
81
|
-
*/
|
|
82
|
-
function getRuleModule(ruleName) {
|
|
83
|
-
switch (ruleName) {
|
|
84
|
-
case "consistent-barrel-files": {
|
|
85
|
-
return consistentBarrelFilesRule;
|
|
86
|
-
}
|
|
87
|
-
case "prefer-interface-types": {
|
|
88
|
-
return preferInterfaceTypesRule;
|
|
89
|
-
}
|
|
90
|
-
case "prefer-vi-mocked-import": {
|
|
91
|
-
return preferViMockedImportRule;
|
|
92
|
-
}
|
|
93
|
-
case "require-example-language": {
|
|
94
|
-
return requireExampleLanguageRule;
|
|
95
|
-
}
|
|
96
|
-
default: {
|
|
97
|
-
throw new TypeError(`Unsupported benchmark rule: ${ruleName}`);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Runs the benchmark command and prints each summary.
|
|
103
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
104
|
-
* @example
|
|
105
|
-
* ```typescript
|
|
106
|
-
* main(1);
|
|
107
|
-
* ```
|
|
108
|
-
*/
|
|
109
|
-
function main(iterationsOverride = iterations) {
|
|
110
|
-
for (const summary of runBenchmarks(iterationsOverride)) {
|
|
111
|
-
process.stdout.write(`${formatBenchmarkSummary(summary)}\n`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Runs a benchmark case and returns the elapsed milliseconds.
|
|
116
|
-
* @param benchmarkCase Benchmark definition.
|
|
117
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
118
|
-
* @returns Return value output.
|
|
119
|
-
* @example
|
|
120
|
-
* ```typescript
|
|
121
|
-
* const summary = runBenchmark(benchmarkCases[0], 1);
|
|
122
|
-
* ```
|
|
123
|
-
*/
|
|
124
|
-
function runBenchmark(benchmarkCase, iterationsOverride = iterations) {
|
|
125
|
-
const linter = new Linter({ configType: "flat" });
|
|
126
|
-
const pluginRules = Object.fromEntries([
|
|
127
|
-
[benchmarkCase.ruleName, getRuleModule(benchmarkCase.ruleName)],
|
|
128
|
-
]);
|
|
129
|
-
const start = performance.now();
|
|
130
|
-
for (let iteration = 0; iteration < iterationsOverride; iteration += 1) {
|
|
131
|
-
void linter.verify(benchmarkCase.code, [
|
|
132
|
-
{
|
|
133
|
-
files: ["**/*.ts"],
|
|
134
|
-
languageOptions,
|
|
135
|
-
plugins: {
|
|
136
|
-
codeperfect: {
|
|
137
|
-
rules: pluginRules,
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
rules: {
|
|
141
|
-
[`codeperfect/${benchmarkCase.ruleName}`]: "error",
|
|
142
|
-
},
|
|
143
|
-
},
|
|
144
|
-
], benchmarkCase.filename);
|
|
145
|
-
}
|
|
146
|
-
return {
|
|
147
|
-
elapsedMilliseconds: Number((performance.now() - start).toFixed(2)),
|
|
148
|
-
iterations: iterationsOverride,
|
|
149
|
-
ruleName: benchmarkCase.ruleName,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Runs all benchmark cases and returns their summaries.
|
|
154
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
155
|
-
* @returns Return value output.
|
|
156
|
-
* @example
|
|
157
|
-
* ```typescript
|
|
158
|
-
* const summaries = runBenchmarks(1);
|
|
159
|
-
* ```
|
|
160
|
-
*/
|
|
161
|
-
function runBenchmarks(iterationsOverride = iterations) {
|
|
162
|
-
return benchmarkCases.map((benchmarkCase) => runBenchmark(benchmarkCase, iterationsOverride));
|
|
163
|
-
}
|
|
164
|
-
/** Current CLI entry file when invoked from the terminal. */
|
|
165
|
-
const [, currentEntry] = process.argv;
|
|
166
|
-
/** Iteration count used by the CLI entry point. */
|
|
167
|
-
const cliIterations = Number(process.env["BENCHMARK_RULE_ITERATIONS"] ?? iterations);
|
|
168
|
-
if (currentEntry !== void 0 &&
|
|
169
|
-
import.meta.url === pathToFileURL(currentEntry).href) {
|
|
170
|
-
main(Number.isNaN(cliIterations) || cliIterations < 1
|
|
171
|
-
? iterations
|
|
172
|
-
: cliIterations);
|
|
173
|
-
}
|
|
174
|
-
export { benchmarkCases, formatBenchmarkSummary, main, runBenchmark, runBenchmarks, };
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLXJ1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JlbmNobWFyay1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDeEIsMEJBQTBCLEdBQzNCLE1BQU0sU0FBUyxDQUFDO0FBMEJqQiwrQ0FBK0M7QUFDL0MsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBRXRCLDZEQUE2RDtBQUM3RCxNQUFNLGVBQWUsR0FBRztJQUN0QixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNO0lBQ04sVUFBVSxFQUFFLFFBQVE7Q0FDWixDQUFDO0FBRVgsZ0VBQWdFO0FBQ2hFLE1BQU0sY0FBYyxHQUFHO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkQsT0FBTywyQkFBMkIsS0FBSyxvQkFBb0IsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2IsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixRQUFRLEVBQUUsd0JBQXdCO0tBQ25DO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNuRCxPQUFPO2dCQUNMLEtBQUs7Z0JBQ0ws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QU0sQ0FDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLFVBQVUsQ0FDdkQsQ0FBQztBQUVGLElBQ0UsWUFBWSxLQUFLLEtBQUssQ0FBQztJQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxFQUNwRCxDQUFDO0lBQ0QsSUFBSSxDQUNGLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxHQUFHLENBQUM7UUFDOUMsQ0FBQyxDQUFDLFVBQVU7UUFDWixDQUFDLENBQUMsYUFBYSxDQUNsQixDQUFDO0FBQ0osQ0FBQztBQUVELE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tIFwiZXNsaW50XCI7XG5cbmltcG9ydCB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IHBlcmZvcm1hbmNlIH0gZnJvbSBcIm5vZGU6cGVyZl9ob29rc1wiO1xuaW1wb3J0IHsgcGF0aFRvRmlsZVVSTCB9IGZyb20gXCJub2RlOnVybFwiO1xuaW1wb3J0IHsgcGFyc2VyIH0gZnJvbSBcInR5cGVzY3JpcHQtZXNsaW50XCI7XG5cbmltcG9ydCB7XG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIHByZWZlckludGVyZmFjZVR5cGVzUnVsZSxcbiAgcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbn0gZnJvbSBcIi4vcnVsZXNcIjtcblxuLyoqIFNoYXBlIG9mIGEgYmVuY2htYXJrIGNhc2UuICovXG5pbnRlcmZhY2UgQmVuY2htYXJrQ2FzZSB7XG4gIC8qKiBTb3VyY2UgY29kZSBwYXNzZWQgdG8gRVNMaW50LiAqL1xuICBjb2RlOiBzdHJpbmc7XG5cbiAgLyoqIEZpbGVuYW1lIHVzZWQgZm9yIHRoZSBsaW50IHJ1bi4gKi9cbiAgZmlsZW5hbWU6IHN0cmluZztcblxuICAvKiogUnVsZSBpZCBpbnNpZGUgdGhlIGludGVybmFsIHBsdWdpbi4gKi9cbiAgcnVsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqIFN1bW1hcnkgcmV0dXJuZWQgYnkgYSBiZW5jaG1hcmsgcnVuLiAqL1xuaW50ZXJmYWNlIEJlbmNobWFya1N1bW1hcnkge1xuICAvKiogRWxhcHNlZCBtaWxsaXNlY29uZHMgYWNyb3NzIGFsbCBpdGVyYXRpb25zLiAqL1xuICBlbGFwc2VkTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqIEl0ZXJhdGlvbiBjb3VudCB1c2VkIGJ5IHRoZSBydW4uICovXG4gIGl0ZXJhdGlvbnM6IG51bWJlcjtcblxuICAvKiogUnVsZSBuYW1lIHVuZGVyIHRlc3QuICovXG4gIHJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBJdGVyYXRpb24gY291bnQgZm9yIGVhY2ggYmVuY2htYXJrIGNhc2UuICovXG5jb25zdCBpdGVyYXRpb25zID0gMjU7XG5cbi8qKiBTaGFyZWQgVHlwZVNjcmlwdCBsYW5ndWFnZSBvcHRpb25zIGZvciBiZW5jaG1hcmsgcnVucy4gKi9cbmNvbnN0IGxhbmd1YWdlT3B0aW9ucyA9IHtcbiAgZWNtYVZlcnNpb246IDIwMjIsXG4gIHBhcnNlcixcbiAgc291cmNlVHlwZTogXCJtb2R1bGVcIixcbn0gYXMgY29uc3Q7XG5cbi8qKiBCZW5jaG1hcmsgY2FzZXMgY292ZXJpbmcgdGhlIGhlYXZpZXIgcGFja2FnZS1vd25lZCBydWxlcy4gKi9cbmNvbnN0IGJlbmNobWFya0Nhc2VzID0gW1xuICB7XG4gICAgY29kZTogQXJyYXkuZnJvbSh7IGxlbmd0aDogMjAwIH0sIChfdW51c2VkLCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIGBleHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUke2luZGV4fSB7IHZhbHVlOiBzdHJpbmcgfWA7XG4gICAgfSkuam9pbihcIlxcblwiKSxcbiAgICBmaWxlbmFtZTogXCJzcmMvZmVhdHVyZXMudHNcIixcbiAgICBydWxlTmFtZTogXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG4gIH0sXG4gIHtcbiAgICBjb2RlOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxNTAgfSwgKF91bnVzZWQsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcIi8qKlwiLFxuICAgICAgICBgICogQGV4YW1wbGUgZmVhdHVyZSR7aW5kZXh9KClgLFxuICAgICAgICBcIiAqIGBgYHR5cGVzY3JpcHRcIixcbiAgICAgICAgYCAqIGZlYXR1cmUke2luZGV4fSgpO2AsXG4gICAgICAgIFwiICogYGBgXCIsXG4gICAgICAgIFwiICovXCIsXG4gICAgICAgIGBleHBvcnQgZnVuY3Rpb24gZmVhdHVyZSR7aW5kZXh9KCk6IHZvaWQge31gLFxuICAgICAgXS5qb2luKFwiXFxuXCIpO1xuICAgIH0pLmpvaW4oXCJcXG5cIiksXG4gICAgZmlsZW5hbWU6IFwic3JjL2RvY3MudHNcIixcbiAgICBydWxlTmFtZTogXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIixcbiAgfSxcbiAge1xuICAgIGNvZGU6IEFycmF5LmZyb20oeyBsZW5ndGg6IDEwMCB9LCAoX3VudXNlZCwgaW5kZXgpID0+IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGBjb25zdCBtb2NrZWRGZWF0dXJlJHtpbmRleH0gPSB2aS5mbigpO2AsXG4gICAgICAgIGB2aS5tb2NrKFwiLi9mZWF0dXJlLSR7aW5kZXh9XCIsICgpID0+ICh7IGZlYXR1cmUke2luZGV4fTogbW9ja2VkRmVhdHVyZSR7aW5kZXh9IH0pKTtgLFxuICAgICAgXS5qb2luKFwiXFxuXCIpO1xuICAgIH0pLmpvaW4oXCJcXG5cIiksXG4gICAgZmlsZW5hbWU6IFwic3JjL2V4YW1wbGUuc3BlYy50c1wiLFxuICAgIHJ1bGVOYW1lOiBcInByZWZlci12aS1tb2NrZWQtaW1wb3J0XCIsXG4gIH0sXG4gIHtcbiAgICBjb2RlOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxNTAgfSwgKF91bnVzZWQsIGluZGV4KSA9PiB7XG4gICAgICByZXR1cm4gYGV4cG9ydCAqIGZyb20gXCIuL2ZlYXR1cmUtJHtpbmRleH1cIjtgO1xuICAgIH0pLmpvaW4oXCJcXG5cIiksXG4gICAgZmlsZW5hbWU6IFwic3JjL2luZGV4LnRzXCIsXG4gICAgcnVsZU5hbWU6IFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgfSxcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IFtCZW5jaG1hcmtDYXNlLCAuLi5CZW5jaG1hcmtDYXNlW11dO1xuXG4vKipcbiAqIEZvcm1hdHMgYSBiZW5jaG1hcmsgc3VtbWFyeSBmb3IgY29uc29sZSBvdXRwdXQuXG4gKiBAcGFyYW0gc3VtbWFyeSBTdW1tYXJ5IHRvIGZvcm1hdC5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbGluZSA9IGZvcm1hdEJlbmNobWFya1N1bW1hcnkoe1xuICogICBlbGFwc2VkTWlsbGlzZWNvbmRzOiAxMCxcbiAqICAgaXRlcmF0aW9uczogMSxcbiAqICAgcnVsZU5hbWU6IFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZm9ybWF0QmVuY2htYXJrU3VtbWFyeShzdW1tYXJ5OiBCZW5jaG1hcmtTdW1tYXJ5KTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke3N1bW1hcnkucnVsZU5hbWV9OiAke3N1bW1hcnkuZWxhcHNlZE1pbGxpc2Vjb25kc31tcyB0b3RhbCBmb3IgJHtzdW1tYXJ5Lml0ZXJhdGlvbnN9IGl0ZXJhdGlvbnNgO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBydWxlIG1vZHVsZSB1c2VkIGZvciBhIGJlbmNobWFyayBjYXNlLlxuICogQHBhcmFtIHJ1bGVOYW1lIEludGVybmFsIHJ1bGUgbmFtZS5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAdGhyb3dzIHtUeXBlRXJyb3J9IFdoZW4gdGhlIGJlbmNobWFyayBjYXNlIHJlZmVyZW5jZXMgYW4gdW5zdXBwb3J0ZWQgcnVsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBydWxlID0gZ2V0UnVsZU1vZHVsZShcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIik7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gZ2V0UnVsZU1vZHVsZShydWxlTmFtZTogQmVuY2htYXJrQ2FzZVtcInJ1bGVOYW1lXCJdKTogUnVsZS5SdWxlTW9kdWxlIHtcbiAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgIGNhc2UgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiOiB7XG4gICAgICByZXR1cm4gY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZTtcbiAgICB9XG4gICAgY2FzZSBcInByZWZlci1pbnRlcmZhY2UtdHlwZXNcIjoge1xuICAgICAgcmV0dXJuIHByZWZlckludGVyZmFjZVR5cGVzUnVsZTtcbiAgICB9XG4gICAgY2FzZSBcInByZWZlci12aS1tb2NrZWQtaW1wb3J0XCI6IHtcbiAgICAgIHJldHVybiBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGU7XG4gICAgfVxuICAgIGNhc2UgXCJyZXF1aXJlLWV4YW1wbGUtbGFuZ3VhZ2VcIjoge1xuICAgICAgcmV0dXJuIHJlcXVpcmVFeGFtcGxlTGFuZ3VhZ2VSdWxlO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCBiZW5jaG1hcmsgcnVsZTogJHtydWxlTmFtZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIHRoZSBiZW5jaG1hcmsgY29tbWFuZCBhbmQgcHJpbnRzIGVhY2ggc3VtbWFyeS5cbiAqIEBwYXJhbSBpdGVyYXRpb25zT3ZlcnJpZGUgT3B0aW9uYWwgaXRlcmF0aW9uIGNvdW50IHVzZWQgYnkgdGhlIHJ1bi5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBtYWluKDEpO1xuICogYGBgXG4gKi9cbmZ1bmN0aW9uIG1haW4oaXRlcmF0aW9uc092ZXJyaWRlID0gaXRlcmF0aW9ucyk6IHZvaWQge1xuICBmb3IgKGNvbnN0IHN1bW1hcnkgb2YgcnVuQmVuY2htYXJrcyhpdGVyYXRpb25zT3ZlcnJpZGUpKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7Zm9ybWF0QmVuY2htYXJrU3VtbWFyeShzdW1tYXJ5KX1cXG5gKTtcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgYSBiZW5jaG1hcmsgY2FzZSBhbmQgcmV0dXJucyB0aGUgZWxhcHNlZCBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gYmVuY2htYXJrQ2FzZSBCZW5jaG1hcmsgZGVmaW5pdGlvbi5cbiAqIEBwYXJhbSBpdGVyYXRpb25zT3ZlcnJpZGUgT3B0aW9uYWwgaXRlcmF0aW9uIGNvdW50IHVzZWQgYnkgdGhlIHJ1bi5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3VtbWFyeSA9IHJ1bkJlbmNobWFyayhiZW5jaG1hcmtDYXNlc1swXSwgMSk7XG4gKiBgYGBcbiAqL1xuZnVuY3Rpb24gcnVuQmVuY2htYXJrKFxuICBiZW5jaG1hcmtDYXNlOiBCZW5jaG1hcmtDYXNlLFxuICBpdGVyYXRpb25zT3ZlcnJpZGUgPSBpdGVyYXRpb25zLFxuKTogQmVuY2htYXJrU3VtbWFyeSB7XG4gIGNvbnN0IGxpbnRlciA9IG5ldyBMaW50ZXIoeyBjb25maWdUeXBlOiBcImZsYXRcIiB9KTtcbiAgY29uc3QgcGx1Z2luUnVsZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoW1xuICAgIFtiZW5jaG1hcmtDYXNlLnJ1bGVOYW1lLCBnZXRSdWxlTW9kdWxlKGJlbmNobWFya0Nhc2UucnVsZU5hbWUpXSxcbiAgXSkgYXMgUmVjb3JkPHN0cmluZywgUnVsZS5SdWxlTW9kdWxlPjtcbiAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcblxuICBmb3IgKGxldCBpdGVyYXRpb24gPSAwOyBpdGVyYXRpb24gPCBpdGVyYXRpb25zT3ZlcnJpZGU7IGl0ZXJhdGlvbiArPSAxKSB7XG4gICAgdm9pZCBsaW50ZXIudmVyaWZ5KFxuICAgICAgYmVuY2htYXJrQ2FzZS5jb2RlLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgZmlsZXM6IFtcIioqLyoudHNcIl0sXG4gICAgICAgICAgbGFuZ3VhZ2VPcHRpb25zLFxuICAgICAgICAgIHBsdWdpbnM6IHtcbiAgICAgICAgICAgIGNvZGVwZXJmZWN0OiB7XG4gICAgICAgICAgICAgIHJ1bGVzOiBwbHVnaW5SdWxlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBydWxlczoge1xuICAgICAgICAgICAgW2Bjb2RlcGVyZmVjdC8ke2JlbmNobWFya0Nhc2UucnVsZU5hbWV9YF06IFwiZXJyb3JcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGJlbmNobWFya0Nhc2UuZmlsZW5hbWUsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZWxhcHNlZE1pbGxpc2Vjb25kczogTnVtYmVyKChwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0KS50b0ZpeGVkKDIpKSxcbiAgICBpdGVyYXRpb25zOiBpdGVyYXRpb25zT3ZlcnJpZGUsXG4gICAgcnVsZU5hbWU6IGJlbmNobWFya0Nhc2UucnVsZU5hbWUsXG4gIH07XG59XG5cbi8qKlxuICogUnVucyBhbGwgYmVuY2htYXJrIGNhc2VzIGFuZCByZXR1cm5zIHRoZWlyIHN1bW1hcmllcy5cbiAqIEBwYXJhbSBpdGVyYXRpb25zT3ZlcnJpZGUgT3B0aW9uYWwgaXRlcmF0aW9uIGNvdW50IHVzZWQgYnkgdGhlIHJ1bi5cbiAqIEByZXR1cm5zIFJldHVybiB2YWx1ZSBvdXRwdXQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3VtbWFyaWVzID0gcnVuQmVuY2htYXJrcygxKTtcbiAqIGBgYFxuICovXG5mdW5jdGlvbiBydW5CZW5jaG1hcmtzKGl0ZXJhdGlvbnNPdmVycmlkZSA9IGl0ZXJhdGlvbnMpOiBCZW5jaG1hcmtTdW1tYXJ5W10ge1xuICByZXR1cm4gYmVuY2htYXJrQ2FzZXMubWFwKChiZW5jaG1hcmtDYXNlKSA9PlxuICAgIHJ1bkJlbmNobWFyayhiZW5jaG1hcmtDYXNlLCBpdGVyYXRpb25zT3ZlcnJpZGUpLFxuICApO1xufVxuXG4vKiogQ3VycmVudCBDTEkgZW50cnkgZmlsZSB3aGVuIGludm9rZWQgZnJvbSB0aGUgdGVybWluYWwuICovXG5jb25zdCBbLCBjdXJyZW50RW50cnldID0gcHJvY2Vzcy5hcmd2O1xuXG4vKiogSXRlcmF0aW9uIGNvdW50IHVzZWQgYnkgdGhlIENMSSBlbnRyeSBwb2ludC4gKi9cbmNvbnN0IGNsaUl0ZXJhdGlvbnMgPSBOdW1iZXIoXG4gIHByb2Nlc3MuZW52W1wiQkVOQ0hNQVJLX1JVTEVfSVRFUkFUSU9OU1wiXSA/PyBpdGVyYXRpb25zLFxuKTtcblxuaWYgKFxuICBjdXJyZW50RW50cnkgIT09IHZvaWQgMCAmJlxuICBpbXBvcnQubWV0YS51cmwgPT09IHBhdGhUb0ZpbGVVUkwoY3VycmVudEVudHJ5KS5ocmVmXG4pIHtcbiAgbWFpbihcbiAgICBOdW1iZXIuaXNOYU4oY2xpSXRlcmF0aW9ucykgfHwgY2xpSXRlcmF0aW9ucyA8IDFcbiAgICAgID8gaXRlcmF0aW9uc1xuICAgICAgOiBjbGlJdGVyYXRpb25zLFxuICApO1xufVxuXG5leHBvcnQge1xuICBiZW5jaG1hcmtDYXNlcyxcbiAgZm9ybWF0QmVuY2htYXJrU3VtbWFyeSxcbiAgbWFpbixcbiAgcnVuQmVuY2htYXJrLFxuICBydW5CZW5jaG1hcmtzLFxufTtcbmV4cG9ydCB0eXBlIHsgQmVuY2htYXJrQ2FzZSwgQmVuY2htYXJrU3VtbWFyeSB9O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codeperfect-plugin.d.ts","sourceRoot":"","sources":["../src/codeperfect-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,IAAI,EAAE,MAAM,QAAQ,CAAC;AAqB3C,mDAAmD;AACnD,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAiB8B,CAAC;AAErD,oDAAoD;AACpD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAKkC,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { assertActualExpectedNamesRule, barrelFilesExportsOnlyRule, consistentBarrelFilesRule, enforceAaaPhasePurityRule, enforceAaaStructureRule, noInterfaceMemberDocumentationRule, noMultipleDeclaratorsRule, noReexportsOutsideBarrelsRule, preferInterfaceTypesRule, preferViMockedImportRule, requireAaaSectionsRule, requireActResultCaptureRule, requireExampleLanguageRule, requireTestCompanionRule, singleActStatementRule, singleLineJsdocRule, } from "./rules";
|
|
2
|
-
/** Rule registry exposed by the package plugin. */
|
|
3
|
-
const codeperfectRules = {
|
|
4
|
-
"assert-actual-expected-names": assertActualExpectedNamesRule,
|
|
5
|
-
"barrel-files-exports-only": barrelFilesExportsOnlyRule,
|
|
6
|
-
"consistent-barrel-files": consistentBarrelFilesRule,
|
|
7
|
-
"enforce-aaa-phase-purity": enforceAaaPhasePurityRule,
|
|
8
|
-
"enforce-aaa-structure": enforceAaaStructureRule,
|
|
9
|
-
"no-interface-member-docs": noInterfaceMemberDocumentationRule,
|
|
10
|
-
"no-multiple-declarators": noMultipleDeclaratorsRule,
|
|
11
|
-
"no-reexports-outside-barrels": noReexportsOutsideBarrelsRule,
|
|
12
|
-
"prefer-interface-types": preferInterfaceTypesRule,
|
|
13
|
-
"prefer-vi-mocked-import": preferViMockedImportRule,
|
|
14
|
-
"require-aaa-sections": requireAaaSectionsRule,
|
|
15
|
-
"require-act-result-capture": requireActResultCaptureRule,
|
|
16
|
-
"require-example-language": requireExampleLanguageRule,
|
|
17
|
-
"require-test-companion": requireTestCompanionRule,
|
|
18
|
-
"single-act-statement": singleActStatementRule,
|
|
19
|
-
"single-line-jsdoc": singleLineJsdocRule,
|
|
20
|
-
};
|
|
21
|
-
/** ESLint plugin object exported by the package. */
|
|
22
|
-
const codeperfectPlugin = {
|
|
23
|
-
meta: {
|
|
24
|
-
name: "@codeperfect/eslint-plugin",
|
|
25
|
-
},
|
|
26
|
-
rules: codeperfectRules,
|
|
27
|
-
};
|
|
28
|
-
export { codeperfectPlugin, codeperfectRules };
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXBlcmZlY3QtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvZGVwZXJmZWN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixrQ0FBa0MsRUFDbEMseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUM3Qix3QkFBd0IsRUFDeEIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsbUJBQW1CLEdBQ3BCLE1BQU0sU0FBUyxDQUFDO0FBRWpCLG1EQUFtRDtBQUNuRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLDhCQUE4QixFQUFFLDZCQUE2QjtJQUM3RCwyQkFBMkIsRUFBRSwwQkFBMEI7SUFDdkQseUJBQXlCLEVBQUUseUJBQXlCO0lBQ3BELDBCQUEwQixFQUFFLHlCQUF5QjtJQUNyRCx1QkFBdUIsRUFBRSx1QkFBdUI7SUFDaEQsMEJBQTBCLEVBQUUsa0NBQWtDO0lBQzlELHlCQUF5QixFQUFFLHlCQUF5QjtJQUNwRCw4QkFBOEIsRUFBRSw2QkFBNkI7SUFDN0Qsd0JBQXdCLEVBQUUsd0JBQXdCO0lBQ2xELHlCQUF5QixFQUFFLHdCQUF3QjtJQUNuRCxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsNEJBQTRCLEVBQUUsMkJBQTJCO0lBQ3pELDBCQUEwQixFQUFFLDBCQUEwQjtJQUN0RCx3QkFBd0IsRUFBRSx3QkFBd0I7SUFDbEQsc0JBQXNCLEVBQUUsc0JBQXNCO0lBQzlDLG1CQUFtQixFQUFFLG1CQUFtQjtDQUNVLENBQUM7QUFFckQsb0RBQW9EO0FBQ3BELE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLDRCQUE0QjtLQUNuQztJQUNELEtBQUssRUFBRSxnQkFBZ0I7Q0FDZ0MsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGludGVyLCBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQge1xuICBhc3NlcnRBY3R1YWxFeHBlY3RlZE5hbWVzUnVsZSxcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIGVuZm9yY2VBYWFQaGFzZVB1cml0eVJ1bGUsXG4gIGVuZm9yY2VBYWFTdHJ1Y3R1cmVSdWxlLFxuICBub0ludGVyZmFjZU1lbWJlckRvY3VtZW50YXRpb25SdWxlLFxuICBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBub1JlZXhwb3J0c091dHNpZGVCYXJyZWxzUnVsZSxcbiAgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlLFxuICBwcmVmZXJWaU1vY2tlZEltcG9ydFJ1bGUsXG4gIHJlcXVpcmVBYWFTZWN0aW9uc1J1bGUsXG4gIHJlcXVpcmVBY3RSZXN1bHRDYXB0dXJlUnVsZSxcbiAgcmVxdWlyZUV4YW1wbGVMYW5ndWFnZVJ1bGUsXG4gIHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgc2luZ2xlQWN0U3RhdGVtZW50UnVsZSxcbiAgc2luZ2xlTGluZUpzZG9jUnVsZSxcbn0gZnJvbSBcIi4vcnVsZXNcIjtcblxuLyoqIFJ1bGUgcmVnaXN0cnkgZXhwb3NlZCBieSB0aGUgcGFja2FnZSBwbHVnaW4uICovXG5jb25zdCBjb2RlcGVyZmVjdFJ1bGVzID0ge1xuICBcImFzc2VydC1hY3R1YWwtZXhwZWN0ZWQtbmFtZXNcIjogYXNzZXJ0QWN0dWFsRXhwZWN0ZWROYW1lc1J1bGUsXG4gIFwiYmFycmVsLWZpbGVzLWV4cG9ydHMtb25seVwiOiBiYXJyZWxGaWxlc0V4cG9ydHNPbmx5UnVsZSxcbiAgXCJjb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiOiBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlLFxuICBcImVuZm9yY2UtYWFhLXBoYXNlLXB1cml0eVwiOiBlbmZvcmNlQWFhUGhhc2VQdXJpdHlSdWxlLFxuICBcImVuZm9yY2UtYWFhLXN0cnVjdHVyZVwiOiBlbmZvcmNlQWFhU3RydWN0dXJlUnVsZSxcbiAgXCJuby1pbnRlcmZhY2UtbWVtYmVyLWRvY3NcIjogbm9JbnRlcmZhY2VNZW1iZXJEb2N1bWVudGF0aW9uUnVsZSxcbiAgXCJuby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiOiBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlLFxuICBcIm5vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHNcIjogbm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1J1bGUsXG4gIFwicHJlZmVyLWludGVyZmFjZS10eXBlc1wiOiBwcmVmZXJJbnRlcmZhY2VUeXBlc1J1bGUsXG4gIFwicHJlZmVyLXZpLW1vY2tlZC1pbXBvcnRcIjogcHJlZmVyVmlNb2NrZWRJbXBvcnRSdWxlLFxuICBcInJlcXVpcmUtYWFhLXNlY3Rpb25zXCI6IHJlcXVpcmVBYWFTZWN0aW9uc1J1bGUsXG4gIFwicmVxdWlyZS1hY3QtcmVzdWx0LWNhcHR1cmVcIjogcmVxdWlyZUFjdFJlc3VsdENhcHR1cmVSdWxlLFxuICBcInJlcXVpcmUtZXhhbXBsZS1sYW5ndWFnZVwiOiByZXF1aXJlRXhhbXBsZUxhbmd1YWdlUnVsZSxcbiAgXCJyZXF1aXJlLXRlc3QtY29tcGFuaW9uXCI6IHJlcXVpcmVUZXN0Q29tcGFuaW9uUnVsZSxcbiAgXCJzaW5nbGUtYWN0LXN0YXRlbWVudFwiOiBzaW5nbGVBY3RTdGF0ZW1lbnRSdWxlLFxuICBcInNpbmdsZS1saW5lLWpzZG9jXCI6IHNpbmdsZUxpbmVKc2RvY1J1bGUsXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBSdWxlLlJ1bGVNb2R1bGU+O1xuXG4vKiogRVNMaW50IHBsdWdpbiBvYmplY3QgZXhwb3J0ZWQgYnkgdGhlIHBhY2thZ2UuICovXG5jb25zdCBjb2RlcGVyZmVjdFBsdWdpbiA9IHtcbiAgbWV0YToge1xuICAgIG5hbWU6IFwiQGNvZGVwZXJmZWN0L2VzbGludC1wbHVnaW5cIixcbiAgfSxcbiAgcnVsZXM6IGNvZGVwZXJmZWN0UnVsZXMsXG59IHNhdGlzZmllcyBOb25OdWxsYWJsZTxMaW50ZXIuQ29uZmlnW1wicGx1Z2luc1wiXT5bc3RyaW5nXTtcblxuZXhwb3J0IHsgY29kZXBlcmZlY3RQbHVnaW4sIGNvZGVwZXJmZWN0UnVsZXMgfTtcbiJdfQ==
|
package/dist/core/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/core/index.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { noMultipleDeclaratorsRule } from "./no-multiple-declarators";
|
|
2
|
-
export { preferInterfaceTypesRule } from "./prefer-interface-types";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IG5vTXVsdGlwbGVEZWNsYXJhdG9yc1J1bGUgfSBmcm9tIFwiLi9uby1tdWx0aXBsZS1kZWNsYXJhdG9yc1wiO1xuZXhwb3J0IHsgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlIH0gZnJvbSBcIi4vcHJlZmVyLWludGVyZmFjZS10eXBlc1wiO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/no-multiple-declarators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { noMultipleDeclaratorsRule } from "./rule";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9uby1tdWx0aXBsZS1kZWNsYXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlIH0gZnJvbSBcIi4vcnVsZVwiO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/core/no-multiple-declarators/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAkLnC,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAqBrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { createRuleDocumentation } from "../../custom-rule-documentation";
|
|
2
|
-
const commentPattern = /\/\/|\/\*/u;
|
|
3
|
-
const loopParentTypes = new Set(["ForInStatement", "ForOfStatement"]);
|
|
4
|
-
const getSourceCode = (context) => context.sourceCode;
|
|
5
|
-
const getSourceText = (sourceCode) => typeof sourceCode.text === "string" ? sourceCode.text : sourceCode.getText();
|
|
6
|
-
const hasRange = (node) => Array.isArray(node?.range) && node.range.length === 2;
|
|
7
|
-
const hasFixData = (node) => Array.isArray(node.range) &&
|
|
8
|
-
node.range.length === 2 &&
|
|
9
|
-
typeof node.kind === "string";
|
|
10
|
-
const isLoopInitializer = (node) => {
|
|
11
|
-
const { parent } = node;
|
|
12
|
-
if (parent?.type === "ForStatement") {
|
|
13
|
-
return parent.init === node;
|
|
14
|
-
}
|
|
15
|
-
if (parent !== void 0 && loopParentTypes.has(parent.type)) {
|
|
16
|
-
return parent.left === node;
|
|
17
|
-
}
|
|
18
|
-
return false;
|
|
19
|
-
};
|
|
20
|
-
const isWrappedExport = (node) => node.parent?.type === "ExportDefaultDeclaration" ||
|
|
21
|
-
node.parent?.type === "ExportNamedDeclaration";
|
|
22
|
-
const getLineIndent = (sourceText, start) => {
|
|
23
|
-
const lineStart = sourceText.lastIndexOf("\n", start - 1) + 1;
|
|
24
|
-
const linePrefix = sourceText.slice(lineStart, start);
|
|
25
|
-
return linePrefix.replace(/[^\t ].*$/u, "");
|
|
26
|
-
};
|
|
27
|
-
const hasSeparatorComment = (declarations, sourceText) => {
|
|
28
|
-
for (const [index, declaration] of declarations.entries()) {
|
|
29
|
-
const nextDeclaration = declarations[index + 1];
|
|
30
|
-
if (nextDeclaration === void 0) {
|
|
31
|
-
break;
|
|
32
|
-
}
|
|
33
|
-
if (!hasRange(declaration) || !hasRange(nextDeclaration)) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
const separatorText = sourceText.slice(declaration.range[1], nextDeclaration.range[0]);
|
|
37
|
-
if (commentPattern.test(separatorText)) {
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
};
|
|
43
|
-
const canFix = (node, declarations, sourceText) => {
|
|
44
|
-
if (!hasFixData(node)) {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
if (isLoopInitializer(node) || isWrappedExport(node)) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
return !hasSeparatorComment(declarations, sourceText);
|
|
51
|
-
};
|
|
52
|
-
const buildReplacement = (node, declarations, sourceCode) => {
|
|
53
|
-
const sourceText = getSourceText(sourceCode);
|
|
54
|
-
const indent = getLineIndent(sourceText, node.range[0]);
|
|
55
|
-
return declarations
|
|
56
|
-
.map((declaration) => `${node.kind} ${sourceCode.getText(declaration)};`)
|
|
57
|
-
.join(`\n${indent}`);
|
|
58
|
-
};
|
|
59
|
-
const reportVariableDeclaration = (context, node) => {
|
|
60
|
-
const declarations = node.declarations ?? [];
|
|
61
|
-
if (declarations.length <= 1) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
const sourceCode = getSourceCode(context);
|
|
65
|
-
const sourceText = getSourceText(sourceCode);
|
|
66
|
-
const fixable = canFix(node, declarations, sourceText);
|
|
67
|
-
if (fixable) {
|
|
68
|
-
const fixedNode = node;
|
|
69
|
-
context.report({
|
|
70
|
-
fix: (fixer) => fixer.replaceTextRange(fixedNode.range, buildReplacement(fixedNode, declarations, sourceCode)),
|
|
71
|
-
messageId: "singleDeclarator",
|
|
72
|
-
node: node,
|
|
73
|
-
});
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
context.report({
|
|
77
|
-
messageId: "singleDeclarator",
|
|
78
|
-
node: node,
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
const noMultipleDeclaratorsRule = {
|
|
82
|
-
create(context) {
|
|
83
|
-
return {
|
|
84
|
-
VariableDeclaration: (node) => {
|
|
85
|
-
reportVariableDeclaration(context, node);
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
},
|
|
89
|
-
meta: {
|
|
90
|
-
docs: createRuleDocumentation("no-multiple-declarators", "Require variable declarations to contain exactly one declarator per statement."),
|
|
91
|
-
fixable: "code",
|
|
92
|
-
messages: {
|
|
93
|
-
singleDeclarator: "Declare exactly one variable per declaration statement.",
|
|
94
|
-
},
|
|
95
|
-
schema: [],
|
|
96
|
-
type: "suggestion",
|
|
97
|
-
},
|
|
98
|
-
};
|
|
99
|
-
export { noMultipleDeclaratorsRule };
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL25vLW11bHRpcGxlLWRlY2xhcmF0b3JzL3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUE4QjFFLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUV0RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQXlCLEVBQW9CLEVBQUUsQ0FDcEUsT0FBTyxDQUFDLFVBQXlDLENBQUM7QUFFcEQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUE0QixFQUFVLEVBQUUsQ0FDN0QsT0FBTyxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRS9FLE1BQU0sUUFBUSxHQUFHLENBQ2YsSUFBMEIsRUFDVyxFQUFFLENBQ3ZDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUV4RCxNQUFNLFVBQVUsR0FBRyxDQUNqQixJQUE2QixFQUNxQyxFQUFFLENBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7QUFFaEMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQTZCLEVBQVcsRUFBRTtJQUNuRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBRXhCLElB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QjtJQUNqRCxNQUFNLENBQUMsT0FBeUI7UUFDOUIsT0FBTztZQUNMLG1CQUFtQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7Z0JBQzdDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxJQUErQixDQUFDLENBQUM7WUFDdEUsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLHVCQUF1QixDQUMzQix5QkFBeUIsRUFDekIsZ0ZBQWdGLENBQ2pGO1FBQ0QsT0FBTyxFQUFFLE1BQU07UUFDZixRQUFRLEVBQUU7WUFDUixnQkFBZ0IsRUFDZCx5REFBeUQ7U0FDNUQ7UUFDRCxNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO0tBQ25CO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbiB9IGZyb20gXCIuLi8uLi9jdXN0b20tcnVsZS1kb2N1bWVudGF0aW9uXCI7XG5cbnR5cGUgUmFuZ2UgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG5pbnRlcmZhY2UgQmFzZU5vZGUge1xuICBwYXJlbnQ/OiBCYXNlTm9kZTtcbiAgcmFuZ2U/OiBSYW5nZTtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRm9ySW5Pck9mU3RhdGVtZW50Tm9kZSBleHRlbmRzIEJhc2VOb2RlIHtcbiAgbGVmdD86IEJhc2VOb2RlO1xufVxuXG5pbnRlcmZhY2UgRm9yU3RhdGVtZW50Tm9kZSBleHRlbmRzIEJhc2VOb2RlIHtcbiAgaW5pdD86IEJhc2VOb2RlIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIFNvdXJjZUNvZGVBY2Nlc3Mge1xuICBnZXRUZXh0OiAobm9kZT86IEJhc2VOb2RlKSA9PiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSBleHRlbmRzIEJhc2VOb2RlIHtcbiAgZGVjbGFyYXRpb25zPzogVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdO1xuICBraW5kPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmFyaWFibGVEZWNsYXJhdG9yTm9kZSBleHRlbmRzIEJhc2VOb2RlIHt9XG5cbmNvbnN0IGNvbW1lbnRQYXR0ZXJuID0gL1xcL1xcL3xcXC9cXCovdTtcbmNvbnN0IGxvb3BQYXJlbnRUeXBlcyA9IG5ldyBTZXQoW1wiRm9ySW5TdGF0ZW1lbnRcIiwgXCJGb3JPZlN0YXRlbWVudFwiXSk7XG5cbmNvbnN0IGdldFNvdXJjZUNvZGUgPSAoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFNvdXJjZUNvZGVBY2Nlc3MgPT5cbiAgY29udGV4dC5zb3VyY2VDb2RlIGFzIHVua25vd24gYXMgU291cmNlQ29kZUFjY2VzcztcblxuY29uc3QgZ2V0U291cmNlVGV4dCA9IChzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzKTogc3RyaW5nID0+XG4gIHR5cGVvZiBzb3VyY2VDb2RlLnRleHQgPT09IFwic3RyaW5nXCIgPyBzb3VyY2VDb2RlLnRleHQgOiBzb3VyY2VDb2RlLmdldFRleHQoKTtcblxuY29uc3QgaGFzUmFuZ2UgPSAoXG4gIG5vZGU6IEJhc2VOb2RlIHwgdW5kZWZpbmVkLFxuKTogbm9kZSBpcyBCYXNlTm9kZSAmIHsgcmFuZ2U6IFJhbmdlIH0gPT5cbiAgQXJyYXkuaXNBcnJheShub2RlPy5yYW5nZSkgJiYgbm9kZS5yYW5nZS5sZW5ndGggPT09IDI7XG5cbmNvbnN0IGhhc0ZpeERhdGEgPSAoXG4gIG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuKTogbm9kZSBpcyBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSAmIHsga2luZDogc3RyaW5nOyByYW5nZTogUmFuZ2UgfSA9PlxuICBBcnJheS5pc0FycmF5KG5vZGUucmFuZ2UpICYmXG4gIG5vZGUucmFuZ2UubGVuZ3RoID09PSAyICYmXG4gIHR5cGVvZiBub2RlLmtpbmQgPT09IFwic3RyaW5nXCI7XG5cbmNvbnN0IGlzTG9vcEluaXRpYWxpemVyID0gKG5vZGU6IFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHsgcGFyZW50IH0gPSBub2RlO1xuXG4gIGlmIChwYXJlbnQ/LnR5cGUgPT09IFwiRm9yU3RhdGVtZW50XCIpIHtcbiAgICByZXR1cm4gKHBhcmVudCBhcyBGb3JTdGF0ZW1lbnROb2RlKS5pbml0ID09PSBub2RlO1xuICB9XG5cbiAgaWYgKHBhcmVudCAhPT0gdm9pZCAwICYmIGxvb3BQYXJlbnRUeXBlcy5oYXMocGFyZW50LnR5cGUpKSB7XG4gICAgcmV0dXJuIChwYXJlbnQgYXMgRm9ySW5Pck9mU3RhdGVtZW50Tm9kZSkubGVmdCA9PT0gbm9kZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzV3JhcHBlZEV4cG9ydCA9IChub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSk6IGJvb2xlYW4gPT5cbiAgbm9kZS5wYXJlbnQ/LnR5cGUgPT09IFwiRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uXCIgfHxcbiAgbm9kZS5wYXJlbnQ/LnR5cGUgPT09IFwiRXhwb3J0TmFtZWREZWNsYXJhdGlvblwiO1xuXG5jb25zdCBnZXRMaW5lSW5kZW50ID0gKHNvdXJjZVRleHQ6IHN0cmluZywgc3RhcnQ6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGxpbmVTdGFydCA9IHNvdXJjZVRleHQubGFzdEluZGV4T2YoXCJcXG5cIiwgc3RhcnQgLSAxKSArIDE7XG4gIGNvbnN0IGxpbmVQcmVmaXggPSBzb3VyY2VUZXh0LnNsaWNlKGxpbmVTdGFydCwgc3RhcnQpO1xuXG4gIHJldHVybiBsaW5lUHJlZml4LnJlcGxhY2UoL1teXFx0IF0uKiQvdSwgXCJcIik7XG59O1xuXG5jb25zdCBoYXNTZXBhcmF0b3JDb21tZW50ID0gKFxuICBkZWNsYXJhdGlvbnM6IHJlYWRvbmx5IFZhcmlhYmxlRGVjbGFyYXRvck5vZGVbXSxcbiAgc291cmNlVGV4dDogc3RyaW5nLFxuKTogYm9vbGVhbiA9PiB7XG4gIGZvciAoY29uc3QgW2luZGV4LCBkZWNsYXJhdGlvbl0gb2YgZGVjbGFyYXRpb25zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5leHREZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uc1tpbmRleCArIDFdO1xuXG4gICAgaWYgKG5leHREZWNsYXJhdGlvbiA9PT0gdm9pZCAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWhhc1JhbmdlKGRlY2xhcmF0aW9uKSB8fCAhaGFzUmFuZ2UobmV4dERlY2xhcmF0aW9uKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VwYXJhdG9yVGV4dCA9IHNvdXJjZVRleHQuc2xpY2UoXG4gICAgICBkZWNsYXJhdGlvbi5yYW5nZVsxXSxcbiAgICAgIG5leHREZWNsYXJhdGlvbi5yYW5nZVswXSxcbiAgICApO1xuXG4gICAgaWYgKGNvbW1lbnRQYXR0ZXJuLnRlc3Qoc2VwYXJhdG9yVGV4dCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGNhbkZpeCA9IChcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgVmFyaWFibGVEZWNsYXJhdG9yTm9kZVtdLFxuICBzb3VyY2VUZXh0OiBzdHJpbmcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKCFoYXNGaXhEYXRhKG5vZGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzTG9vcEluaXRpYWxpemVyKG5vZGUpIHx8IGlzV3JhcHBlZEV4cG9ydChub2RlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiAhaGFzU2VwYXJhdG9yQ29tbWVudChkZWNsYXJhdGlvbnMsIHNvdXJjZVRleHQpO1xufTtcblxuY29uc3QgYnVpbGRSZXBsYWNlbWVudCA9IChcbiAgbm9kZTogVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgJiB7IGtpbmQ6IHN0cmluZzsgcmFuZ2U6IFJhbmdlIH0sXG4gIGRlY2xhcmF0aW9uczogcmVhZG9ubHkgKFZhcmlhYmxlRGVjbGFyYXRvck5vZGUgJiB7IHJhbmdlOiBSYW5nZSB9KVtdLFxuICBzb3VyY2VDb2RlOiBTb3VyY2VDb2RlQWNjZXNzLFxuKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc291cmNlVGV4dCA9IGdldFNvdXJjZVRleHQoc291cmNlQ29kZSk7XG4gIGNvbnN0IGluZGVudCA9IGdldExpbmVJbmRlbnQoc291cmNlVGV4dCwgbm9kZS5yYW5nZVswXSk7XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uc1xuICAgIC5tYXAoKGRlY2xhcmF0aW9uKSA9PiBgJHtub2RlLmtpbmR9ICR7c291cmNlQ29kZS5nZXRUZXh0KGRlY2xhcmF0aW9uKX07YClcbiAgICAuam9pbihgXFxuJHtpbmRlbnR9YCk7XG59O1xuXG5jb25zdCByZXBvcnRWYXJpYWJsZURlY2xhcmF0aW9uID0gKFxuICBjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0LFxuICBub2RlOiBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBub2RlLmRlY2xhcmF0aW9ucyA/PyBbXTtcblxuICBpZiAoZGVjbGFyYXRpb25zLmxlbmd0aCA8PSAxKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc291cmNlQ29kZSA9IGdldFNvdXJjZUNvZGUoY29udGV4dCk7XG4gIGNvbnN0IHNvdXJjZVRleHQgPSBnZXRTb3VyY2VUZXh0KHNvdXJjZUNvZGUpO1xuICBjb25zdCBmaXhhYmxlID0gY2FuRml4KG5vZGUsIGRlY2xhcmF0aW9ucywgc291cmNlVGV4dCk7XG5cbiAgaWYgKGZpeGFibGUpIHtcbiAgICBjb25zdCBmaXhlZE5vZGUgPSBub2RlIGFzIFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlICYge1xuICAgICAga2luZDogc3RyaW5nO1xuICAgICAgcmFuZ2U6IFJhbmdlO1xuICAgIH07XG5cbiAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICBmaXg6IChmaXhlcjogUnVsZS5SdWxlRml4ZXIpOiBSdWxlLkZpeCA9PlxuICAgICAgICBmaXhlci5yZXBsYWNlVGV4dFJhbmdlKFxuICAgICAgICAgIGZpeGVkTm9kZS5yYW5nZSxcbiAgICAgICAgICBidWlsZFJlcGxhY2VtZW50KFxuICAgICAgICAgICAgZml4ZWROb2RlLFxuICAgICAgICAgICAgZGVjbGFyYXRpb25zIGFzIChWYXJpYWJsZURlY2xhcmF0b3JOb2RlICYgeyByYW5nZTogUmFuZ2UgfSlbXSxcbiAgICAgICAgICAgIHNvdXJjZUNvZGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIG1lc3NhZ2VJZDogXCJzaW5nbGVEZWNsYXJhdG9yXCIsXG4gICAgICBub2RlOiBub2RlIGFzIHVua25vd24gYXMgUnVsZS5Ob2RlLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29udGV4dC5yZXBvcnQoe1xuICAgIG1lc3NhZ2VJZDogXCJzaW5nbGVEZWNsYXJhdG9yXCIsXG4gICAgbm9kZTogbm9kZSBhcyB1bmtub3duIGFzIFJ1bGUuTm9kZSxcbiAgfSk7XG59O1xuXG5jb25zdCBub011bHRpcGxlRGVjbGFyYXRvcnNSdWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0OiBSdWxlLlJ1bGVDb250ZXh0KTogUnVsZS5SdWxlTGlzdGVuZXIge1xuICAgIHJldHVybiB7XG4gICAgICBWYXJpYWJsZURlY2xhcmF0aW9uOiAobm9kZTogUnVsZS5Ob2RlKTogdm9pZCA9PiB7XG4gICAgICAgIHJlcG9ydFZhcmlhYmxlRGVjbGFyYXRpb24oY29udGV4dCwgbm9kZSBhcyBWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbihcbiAgICAgIFwibm8tbXVsdGlwbGUtZGVjbGFyYXRvcnNcIixcbiAgICAgIFwiUmVxdWlyZSB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gY29udGFpbiBleGFjdGx5IG9uZSBkZWNsYXJhdG9yIHBlciBzdGF0ZW1lbnQuXCIsXG4gICAgKSxcbiAgICBmaXhhYmxlOiBcImNvZGVcIixcbiAgICBtZXNzYWdlczoge1xuICAgICAgc2luZ2xlRGVjbGFyYXRvcjpcbiAgICAgICAgXCJEZWNsYXJlIGV4YWN0bHkgb25lIHZhcmlhYmxlIHBlciBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgbm9NdWx0aXBsZURlY2xhcmF0b3JzUnVsZSB9O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/prefer-interface-types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { preferInterfaceTypesRule } from "./rule";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9wcmVmZXItaW50ZXJmYWNlLXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHByZWZlckludGVyZmFjZVR5cGVzUnVsZSB9IGZyb20gXCIuL3J1bGVcIjtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/core/prefer-interface-types/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA4LnC,2EAA2E;AAC3E,QAAA,MAAM,wBAAwB,EAAE,IAAI,CAAC,UA6BpC,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { createRuleDocumentation } from "../../custom-rule-documentation";
|
|
2
|
-
/**
|
|
3
|
-
* Gets a nested type annotation from parameter wrappers.
|
|
4
|
-
* @param node Parameter wrapper node.
|
|
5
|
-
* @returns The nested type annotation when present.
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const annotation = getNestedTypeAnnotation({ argument: node });
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
const getNestedTypeAnnotation = (node) => {
|
|
12
|
-
if (node.argument !== void 0) {
|
|
13
|
-
return getTypeAnnotationNode(node.argument);
|
|
14
|
-
}
|
|
15
|
-
if (node.parameter !== void 0) {
|
|
16
|
-
return getTypeAnnotationNode(node.parameter);
|
|
17
|
-
}
|
|
18
|
-
return void 0;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Extracts the type annotation from a node.
|
|
22
|
-
* @param node Node that may contain a type annotation.
|
|
23
|
-
* @returns The type annotation when present.
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* const annotation = getTypeAnnotationNode(node);
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
const getTypeAnnotationNode = (node) => {
|
|
30
|
-
if (node === null || typeof node !== "object") {
|
|
31
|
-
return void 0;
|
|
32
|
-
}
|
|
33
|
-
const directTypeAnnotation = node.typeAnnotation
|
|
34
|
-
?.typeAnnotation;
|
|
35
|
-
if (directTypeAnnotation !== void 0) {
|
|
36
|
-
return directTypeAnnotation;
|
|
37
|
-
}
|
|
38
|
-
return getNestedTypeAnnotation(node);
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Gets the return type annotation for a function-like node.
|
|
42
|
-
* @param node Node that may contain a return type.
|
|
43
|
-
* @returns The return type annotation when present.
|
|
44
|
-
* @example
|
|
45
|
-
* ```typescript
|
|
46
|
-
* const annotation = getReturnTypeAnnotation(node);
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
const getReturnTypeAnnotation = (node) => {
|
|
50
|
-
if (node === null || typeof node !== "object") {
|
|
51
|
-
return void 0;
|
|
52
|
-
}
|
|
53
|
-
const typedNode = node;
|
|
54
|
-
return typedNode.returnType?.typeAnnotation;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Gets getParameters.
|
|
58
|
-
* @param node Input node value.
|
|
59
|
-
* @returns Return value output.
|
|
60
|
-
* @example
|
|
61
|
-
* ```typescript
|
|
62
|
-
* getParameters();
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
const getParameters = (node) => {
|
|
66
|
-
if (node === null || typeof node !== "object") {
|
|
67
|
-
return [];
|
|
68
|
-
}
|
|
69
|
-
const typedNode = node;
|
|
70
|
-
return Array.isArray(typedNode.params) ? typedNode.params : [];
|
|
71
|
-
};
|
|
72
|
-
/**
|
|
73
|
-
* Checks whether the node represents a type literal.
|
|
74
|
-
* @param node Type annotation node to check.
|
|
75
|
-
* @returns True when the node is a type literal.
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const isLiteral = isTypeLiteral(annotation);
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
const isTypeLiteral = (node) => node?.type === "TSTypeLiteral";
|
|
82
|
-
/**
|
|
83
|
-
* Reports an inline object type annotation.
|
|
84
|
-
* @param context Rule execution context.
|
|
85
|
-
* @param typeAnnotation Type annotation node to report.
|
|
86
|
-
* @example
|
|
87
|
-
* ```typescript
|
|
88
|
-
* reportTypeLiteral(context, typeAnnotation);
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
const reportTypeLiteral = (context, typeAnnotation) => {
|
|
92
|
-
context.report({
|
|
93
|
-
messageId: "preferNamedObject",
|
|
94
|
-
node: typeAnnotation,
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Checks function-like nodes for inline object types.
|
|
99
|
-
* @param context Rule execution context.
|
|
100
|
-
* @param node Function-like node to check.
|
|
101
|
-
* @example
|
|
102
|
-
* ```typescript
|
|
103
|
-
* checkFunctionLike(context, node);
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
const checkFunctionLike = (context, node) => {
|
|
107
|
-
for (const parameter of getParameters(node)) {
|
|
108
|
-
const typeAnnotation = getTypeAnnotationNode(parameter);
|
|
109
|
-
if (isTypeLiteral(typeAnnotation)) {
|
|
110
|
-
reportTypeLiteral(context, typeAnnotation);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
const returnTypeAnnotation = getReturnTypeAnnotation(node);
|
|
114
|
-
if (isTypeLiteral(returnTypeAnnotation)) {
|
|
115
|
-
reportTypeLiteral(context, returnTypeAnnotation);
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
/** ESLint rule requiring named interface/type aliases for object types. */
|
|
119
|
-
const preferInterfaceTypesRule = {
|
|
120
|
-
create(context) {
|
|
121
|
-
const listener = (node) => {
|
|
122
|
-
checkFunctionLike(context, node);
|
|
123
|
-
};
|
|
124
|
-
return {
|
|
125
|
-
ArrowFunctionExpression: listener,
|
|
126
|
-
FunctionDeclaration: listener,
|
|
127
|
-
FunctionExpression: listener,
|
|
128
|
-
TSCallSignatureDeclaration: listener,
|
|
129
|
-
TSConstructSignatureDeclaration: listener,
|
|
130
|
-
TSDeclareFunction: listener,
|
|
131
|
-
TSFunctionType: listener,
|
|
132
|
-
TSMethodSignature: listener,
|
|
133
|
-
};
|
|
134
|
-
},
|
|
135
|
-
meta: {
|
|
136
|
-
docs: createRuleDocumentation("prefer-interface-types", "Require named interfaces or type aliases for object types in parameters and return types."),
|
|
137
|
-
messages: {
|
|
138
|
-
preferNamedObject: "Use a named interface or type alias instead of an inline object type.",
|
|
139
|
-
},
|
|
140
|
-
schema: [],
|
|
141
|
-
type: "suggestion",
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
export { preferInterfaceTypesRule };
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3ByZWZlci1pbnRlcmZhY2UtdHlwZXMvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQXFDMUU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQzlCLElBQXdCLEVBQ1EsRUFBRTtJQUNsQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM3QixPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQzVCLElBQWEsRUFDbUIsRUFBRTtJQUNsQyxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUMsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxvQkFBb0IsR0FBSSxJQUFnQyxDQUFDLGNBQWM7UUFDM0UsRUFBRSxjQUFjLENBQUM7SUFFbkIsSUFBSSxvQkFBb0IsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sdUJBQXVCLENBQUMsSUFBMEIsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQztBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxDQUM5QixJQUFhLEVB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ImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcblxuaW1wb3J0IHsgY3JlYXRlUnVsZURvY3VtZW50YXRpb24gfSBmcm9tIFwiLi4vLi4vY3VzdG9tLXJ1bGUtZG9jdW1lbnRhdGlvblwiO1xuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIEZ1bmN0aW9uTGlrZU5vZGUge1xuICAvKiogUGFyYW1zIGhlbHBlciB2YWx1ZS4gKi9cbiAgcGFyYW1zPzogdW5rbm93bltdO1xuXG4gIC8qKiBSZXR1cm5UeXBlIGhlbHBlciB2YWx1ZS4gKi9cbiAgcmV0dXJuVHlwZT86IHtcbiAgICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICAgIHR5cGVBbm5vdGF0aW9uPzogVHlwZUFubm90YXRpb25Ob2RlO1xuICB9O1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgUGFyYW1ldGVyQ29udGFpbmVyIHtcbiAgLyoqIEFyZ3VtZW50IGhlbHBlciB2YWx1ZS4gKi9cbiAgYXJndW1lbnQ/OiB1bmtub3duO1xuXG4gIC8qKiBQYXJhbWV0ZXIgaGVscGVyIHZhbHVlLiAqL1xuICBwYXJhbWV0ZXI/OiB1bmtub3duO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25Db250YWluZXIge1xuICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICB0eXBlQW5ub3RhdGlvbj86IHtcbiAgICAvKiogVHlwZUFubm90YXRpb24gaGVscGVyIHZhbHVlLiAqL1xuICAgIHR5cGVBbm5vdGF0aW9uPzogVHlwZUFubm90YXRpb25Ob2RlO1xuICB9O1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgVHlwZUFubm90YXRpb25Ob2RlIHtcbiAgLyoqIFR5cGUgZmllbGQgdmFsdWUuICovXG4gIHR5cGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZXRzIGEgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiBmcm9tIHBhcmFtZXRlciB3cmFwcGVycy5cbiAqIEBwYXJhbSBub2RlIFBhcmFtZXRlciB3cmFwcGVyIG5vZGUuXG4gKiBAcmV0dXJucyBUaGUgbmVzdGVkIHR5cGUgYW5ub3RhdGlvbiB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYW5ub3RhdGlvbiA9IGdldE5lc3RlZFR5cGVBbm5vdGF0aW9uKHsgYXJndW1lbnQ6IG5vZGUgfSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgZ2V0TmVzdGVkVHlwZUFubm90YXRpb24gPSAoXG4gIG5vZGU6IFBhcmFtZXRlckNvbnRhaW5lcixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlLmFyZ3VtZW50ICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUuYXJndW1lbnQpO1xuICB9XG5cbiAgaWYgKG5vZGUucGFyYW1ldGVyICE9PSB2b2lkIDApIHtcbiAgICByZXR1cm4gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUucGFyYW1ldGVyKTtcbiAgfVxuXG4gIHJldHVybiB2b2lkIDA7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSB0eXBlIGFubm90YXRpb24gZnJvbSBhIG5vZGUuXG4gKiBAcGFyYW0gbm9kZSBOb2RlIHRoYXQgbWF5IGNvbnRhaW4gYSB0eXBlIGFubm90YXRpb24uXG4gKiBAcmV0dXJucyBUaGUgdHlwZSBhbm5vdGF0aW9uIHdoZW4gcHJlc2VudC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBhbm5vdGF0aW9uID0gZ2V0VHlwZUFubm90YXRpb25Ob2RlKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFR5cGVBbm5vdGF0aW9uTm9kZSA9IChcbiAgbm9kZTogdW5rbm93bixcbik6IFR5cGVBbm5vdGF0aW9uTm9kZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmIChub2RlID09PSBudWxsIHx8IHR5cGVvZiBub2RlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIGNvbnN0IGRpcmVjdFR5cGVBbm5vdGF0aW9uID0gKG5vZGUgYXMgVHlwZUFubm90YXRpb25Db250YWluZXIpLnR5cGVBbm5vdGF0aW9uXG4gICAgPy50eXBlQW5ub3RhdGlvbjtcblxuICBpZiAoZGlyZWN0VHlwZUFubm90YXRpb24gIT09IHZvaWQgMCkge1xuICAgIHJldHVybiBkaXJlY3RUeXBlQW5ub3RhdGlvbjtcbiAgfVxuXG4gIHJldHVybiBnZXROZXN0ZWRUeXBlQW5ub3RhdGlvbihub2RlIGFzIFBhcmFtZXRlckNvbnRhaW5lcik7XG59O1xuXG4vKipcbiAqIEdldHMgdGhlIHJldHVybiB0eXBlIGFubm90YXRpb24gZm9yIGEgZnVuY3Rpb24tbGlrZSBub2RlLlxuICogQHBhcmFtIG5vZGUgTm9kZSB0aGF0IG1heSBjb250YWluIGEgcmV0dXJuIHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbiB3aGVuIHByZXNlbnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYW5ub3RhdGlvbiA9IGdldFJldHVyblR5cGVBbm5vdGF0aW9uKG5vZGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldFJldHVyblR5cGVBbm5vdGF0aW9uID0gKFxuICBub2RlOiB1bmtub3duLFxuKTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG5vZGUgPT09IG51bGwgfHwgdHlwZW9mIG5vZGUgIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG5cbiAgY29uc3QgdHlwZWROb2RlID0gbm9kZSBhcyBGdW5jdGlvbkxpa2VOb2RlO1xuXG4gIHJldHVybiB0eXBlZE5vZGUucmV0dXJuVHlwZT8udHlwZUFubm90YXRpb247XG59O1xuXG4vKipcbiAqIEdldHMgZ2V0UGFyYW1ldGVycy5cbiAqIEBwYXJhbSBub2RlIElucHV0IG5vZGUgdmFsdWUuXG4gKiBAcmV0dXJucyBSZXR1cm4gdmFsdWUgb3V0cHV0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGdldFBhcmFtZXRlcnMoKTtcbiAqIGBgYFxuICovXG5jb25zdCBnZXRQYXJhbWV0ZXJzID0gKG5vZGU6IHVua25vd24pOiB1bmtub3duW10gPT4ge1xuICBpZiAobm9kZSA9PT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHR5cGVkTm9kZSA9IG5vZGUgYXMgRnVuY3Rpb25MaWtlTm9kZTtcblxuICByZXR1cm4gQXJyYXkuaXNBcnJheSh0eXBlZE5vZGUucGFyYW1zKSA/IHR5cGVkTm9kZS5wYXJhbXMgOiBbXTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIG5vZGUgcmVwcmVzZW50cyBhIHR5cGUgbGl0ZXJhbC5cbiAqIEBwYXJhbSBub2RlIFR5cGUgYW5ub3RhdGlvbiBub2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBub2RlIGlzIGEgdHlwZSBsaXRlcmFsLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGlzTGl0ZXJhbCA9IGlzVHlwZUxpdGVyYWwoYW5ub3RhdGlvbik7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNUeXBlTGl0ZXJhbCA9IChcbiAgbm9kZTogVHlwZUFubm90YXRpb25Ob2RlIHwgdW5kZWZpbmVkLFxuKTogbm9kZSBpcyBUeXBlQW5ub3RhdGlvbk5vZGUgPT4gbm9kZT8udHlwZSA9PT0gXCJUU1R5cGVMaXRlcmFsXCI7XG5cbi8qKlxuICogUmVwb3J0cyBhbiBpbmxpbmUgb2JqZWN0IHR5cGUgYW5ub3RhdGlvbi5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gdHlwZUFubm90YXRpb24gVHlwZSBhbm5vdGF0aW9uIG5vZGUgdG8gcmVwb3J0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHJlcG9ydFR5cGVMaXRlcmFsKGNvbnRleHQsIHR5cGVBbm5vdGF0aW9uKTtcbiAqIGBgYFxuICovXG5jb25zdCByZXBvcnRUeXBlTGl0ZXJhbCA9IChcbiAgY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCxcbiAgdHlwZUFubm90YXRpb246IFR5cGVBbm5vdGF0aW9uTm9kZSxcbik6IHZvaWQgPT4ge1xuICBjb250ZXh0LnJlcG9ydCh7XG4gICAgbWVzc2FnZUlkOiBcInByZWZlck5hbWVkT2JqZWN0XCIsXG4gICAgbm9kZTogdHlwZUFubm90YXRpb24gYXMgdW5rbm93biBhcyBSdWxlLk5vZGUsXG4gIH0pO1xufTtcblxuLyoqXG4gKiBDaGVja3MgZnVuY3Rpb24tbGlrZSBub2RlcyBmb3IgaW5saW5lIG9iamVjdCB0eXBlcy5cbiAqIEBwYXJhbSBjb250ZXh0IFJ1bGUgZXhlY3V0aW9uIGNvbnRleHQuXG4gKiBAcGFyYW0gbm9kZSBGdW5jdGlvbi1saWtlIG5vZGUgdG8gY2hlY2suXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2hlY2tGdW5jdGlvbkxpa2UoY29udGV4dCwgbm9kZSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY2hlY2tGdW5jdGlvbkxpa2UgPSAoXG4gIGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQsXG4gIG5vZGU6IFJ1bGUuTm9kZSxcbik6IHZvaWQgPT4ge1xuICBmb3IgKGNvbnN0IHBhcmFtZXRlciBvZiBnZXRQYXJhbWV0ZXJzKG5vZGUpKSB7XG4gICAgY29uc3QgdHlwZUFubm90YXRpb24gPSBnZXRUeXBlQW5ub3RhdGlvbk5vZGUocGFyYW1ldGVyKTtcblxuICAgIGlmIChpc1R5cGVMaXRlcmFsKHR5cGVBbm5vdGF0aW9uKSkge1xuICAgICAgcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgdHlwZUFubm90YXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJldHVyblR5cGVBbm5vdGF0aW9uID0gZ2V0UmV0dXJuVHlwZUFubm90YXRpb24obm9kZSk7XG5cbiAgaWYgKGlzVHlwZUxpdGVyYWwocmV0dXJuVHlwZUFubm90YXRpb24pKSB7XG4gICAgcmVwb3J0VHlwZUxpdGVyYWwoY29udGV4dCwgcmV0dXJuVHlwZUFubm90YXRpb24pO1xuICB9XG59O1xuXG4vKiogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIG5hbWVkIGludGVyZmFjZS90eXBlIGFsaWFzZXMgZm9yIG9iamVjdCB0eXBlcy4gKi9cbmNvbnN0IHByZWZlckludGVyZmFjZVR5cGVzUnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBjcmVhdGUoY29udGV4dDogUnVsZS5SdWxlQ29udGV4dCk6IFJ1bGUuUnVsZUxpc3RlbmVyIHtcbiAgICBjb25zdCBsaXN0ZW5lciA9IChub2RlOiBSdWxlLk5vZGUpOiB2b2lkID0+IHtcbiAgICAgIGNoZWNrRnVuY3Rpb25MaWtlKGNvbnRleHQsIG5vZGUpO1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgQXJyb3dGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgRnVuY3Rpb25EZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBGdW5jdGlvbkV4cHJlc3Npb246IGxpc3RlbmVyLFxuICAgICAgVFNDYWxsU2lnbmF0dXJlRGVjbGFyYXRpb246IGxpc3RlbmVyLFxuICAgICAgVFNDb25zdHJ1Y3RTaWduYXR1cmVEZWNsYXJhdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0RlY2xhcmVGdW5jdGlvbjogbGlzdGVuZXIsXG4gICAgICBUU0Z1bmN0aW9uVHlwZTogbGlzdGVuZXIsXG4gICAgICBUU01ldGhvZFNpZ25hdHVyZTogbGlzdGVuZXIsXG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IGNyZWF0ZVJ1bGVEb2N1bWVudGF0aW9uKFxuICAgICAgXCJwcmVmZXItaW50ZXJmYWNlLXR5cGVzXCIsXG4gICAgICBcIlJlcXVpcmUgbmFtZWQgaW50ZXJmYWNlcyBvciB0eXBlIGFsaWFzZXMgZm9yIG9iamVjdCB0eXBlcyBpbiBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdHlwZXMuXCIsXG4gICAgKSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgcHJlZmVyTmFtZWRPYmplY3Q6XG4gICAgICAgIFwiVXNlIGEgbmFtZWQgaW50ZXJmYWNlIG9yIHR5cGUgYWxpYXMgaW5zdGVhZCBvZiBhbiBpbmxpbmUgb2JqZWN0IHR5cGUuXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6IFwic3VnZ2VzdGlvblwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgcHJlZmVySW50ZXJmYWNlVHlwZXNSdWxlIH07XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/prefer-interface-types/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC,qCAAqC;AACrC,UAAU,QAAQ;IAChB,iCAAiC;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAWD,qCAAqC;AACrC,UAAU,WAAW;IACnB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qCAAqC;AACrC,UAAU,gBAAgB;IACxB,2BAA2B;IAC3B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC;IAE1B,2BAA2B;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,qCAAqC;AACrC,UAAU,qBAAqB;IAC7B,kCAAkC;IAClC,cAAc,EAAE;QACd,wBAAwB;QACxB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,aAAa,QAAO,gBAczB,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,qBAE3C,CAAC;AAEH;;;;;;;;GAQG;AACH,QAAA,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,QAKxB,CAAC;AAEjB;;;;;;;GAOG;AACH,QAAA,MAAM,mBAAmB,QAAO,QAIhB,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,QAIhC,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,QAI5B,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,kBAAkB,GAAI,WAAW,OAAO,CAAC,QAAQ,CAAC,KAAG,QAK3C,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,GAAI,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,QAAQ,KAAG,IAOjE,CAAC;AAEF,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,GACZ,CAAC"}
|