@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
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { minimatch } from "minimatch";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
/** Default value used by this module. */
|
|
4
|
-
const DEFAULT_BARREL_NAMES = ["index.ts", "index.tsx", "index.js", "index.jsx"];
|
|
5
|
-
/** Default folder globs for non-barrel re-export checks. */
|
|
6
|
-
const DEFAULT_FOLDER_GLOBS = ["src/*/**"];
|
|
7
|
-
/**
|
|
8
|
-
* Normalizes a string list option into a clean list.
|
|
9
|
-
* @param value Raw option value.
|
|
10
|
-
* @param defaults Default list when the option is empty.
|
|
11
|
-
* @returns Normalized string list.
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* const names = normalizeList("index.ts", ["index.ts"]);
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
const normalizeList = (value, defaults) => {
|
|
18
|
-
if (Array.isArray(value)) {
|
|
19
|
-
return value
|
|
20
|
-
.filter((entry) => typeof entry === "string")
|
|
21
|
-
.map((entry) => entry.trim())
|
|
22
|
-
.filter((entry) => entry.length > 0);
|
|
23
|
-
}
|
|
24
|
-
if (typeof value === "string") {
|
|
25
|
-
const trimmed = value.trim();
|
|
26
|
-
return trimmed.length === 0 ? [] : [trimmed];
|
|
27
|
-
}
|
|
28
|
-
return [...defaults];
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Builds the rule options state from raw options.
|
|
32
|
-
* @param options Raw rule options.
|
|
33
|
-
* @returns Normalized rule options.
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* const state = getOptions([{}]);
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
const getOptions = (options) => {
|
|
40
|
-
const rawOptions = options[0];
|
|
41
|
-
const folders = normalizeList(rawOptions?.folders, DEFAULT_FOLDER_GLOBS);
|
|
42
|
-
const names = normalizeList(rawOptions?.names, DEFAULT_BARREL_NAMES);
|
|
43
|
-
return { folders, names, namesSet: new Set(names) };
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* Checks whether the filename is valid for linting.
|
|
47
|
-
* @param filename Absolute filename.
|
|
48
|
-
* @returns True when the filename is lintable.
|
|
49
|
-
* @example
|
|
50
|
-
* ```typescript
|
|
51
|
-
* const ok = isLintableFilename("/repo/src/index.ts");
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
const isLintableFilename = (filename) => filename.length > 0 && path.isAbsolute(filename);
|
|
55
|
-
/**
|
|
56
|
-
* Normalizes a filename to a repo-relative path.
|
|
57
|
-
* @param filename Absolute filename.
|
|
58
|
-
* @returns Relative path using forward slashes.
|
|
59
|
-
* @example
|
|
60
|
-
* ```typescript
|
|
61
|
-
* const relative = normalizeRelativePath("/repo/src/index.ts");
|
|
62
|
-
* ```
|
|
63
|
-
*/
|
|
64
|
-
const normalizeRelativePath = (filename) => path.relative(process.cwd(), filename).split(path.sep).join("/");
|
|
65
|
-
/**
|
|
66
|
-
* Checks whether a file path matches any configured folder globs.
|
|
67
|
-
* @param filename Absolute filename.
|
|
68
|
-
* @param folders Folder glob patterns.
|
|
69
|
-
* @returns True when the filename is within configured folders.
|
|
70
|
-
* @example
|
|
71
|
-
* ```typescript
|
|
72
|
-
* const ok = isPathInFolders("/repo/src/index.ts", ["src/**"]);
|
|
73
|
-
* ```
|
|
74
|
-
*/
|
|
75
|
-
const isPathInFolders = (filename, folders) => {
|
|
76
|
-
const relativePath = normalizeRelativePath(filename);
|
|
77
|
-
if (relativePath.startsWith("..") || path.isAbsolute(relativePath)) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
return folders.some((folder) => minimatch(relativePath, folder, { dot: true }));
|
|
81
|
-
};
|
|
82
|
-
/**
|
|
83
|
-
* Determines whether a file should be linted by this rule.
|
|
84
|
-
* @param filename Absolute filename.
|
|
85
|
-
* @param options Normalized rule options.
|
|
86
|
-
* @returns True when the file should be checked.
|
|
87
|
-
* @example
|
|
88
|
-
* ```typescript
|
|
89
|
-
* const ok = shouldLintFile("/repo/src/index.ts", state);
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
const shouldLintFile = (filename, options) => {
|
|
93
|
-
if (!isLintableFilename(filename)) {
|
|
94
|
-
return false;
|
|
95
|
-
}
|
|
96
|
-
if (options.folders.length === 0 || options.names.length === 0) {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
return isPathInFolders(filename, options.folders);
|
|
100
|
-
};
|
|
101
|
-
/**
|
|
102
|
-
* Determines whether a file is a barrel file under the rule options.
|
|
103
|
-
* @param filename Absolute filename.
|
|
104
|
-
* @param options Normalized rule options.
|
|
105
|
-
* @returns True when the file is a barrel file.
|
|
106
|
-
* @example
|
|
107
|
-
* ```typescript
|
|
108
|
-
* const ok = isBarrelFile("/repo/src/index.ts", state);
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
const isBarrelFile = (filename, options) => {
|
|
112
|
-
return options.namesSet.has(path.basename(filename));
|
|
113
|
-
};
|
|
114
|
-
/**
|
|
115
|
-
* Collects imported identifiers from the program body.
|
|
116
|
-
* @param body Program body statements.
|
|
117
|
-
* @returns Set of local imported identifiers.
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* const names = collectImportedNames(program.body);
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
const collectImportedNames = (body) => {
|
|
124
|
-
const importedNames = new Set();
|
|
125
|
-
for (const statement of body) {
|
|
126
|
-
if (statement.type === "ImportDeclaration") {
|
|
127
|
-
for (const specifier of statement.specifiers) {
|
|
128
|
-
importedNames.add(specifier.local.name);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return importedNames;
|
|
133
|
-
};
|
|
134
|
-
/**
|
|
135
|
-
* Checks whether an export specifier references an imported identifier.
|
|
136
|
-
* @param statement Export named declaration statement.
|
|
137
|
-
* @param importedNames Set of imported identifiers.
|
|
138
|
-
* @returns True when any export specifier references an import.
|
|
139
|
-
* @example
|
|
140
|
-
* ```typescript
|
|
141
|
-
* const ok = hasImportedExport(statement, names);
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
const hasImportedExport = (statement, importedNames) => {
|
|
145
|
-
if (statement.type !== "ExportNamedDeclaration" ||
|
|
146
|
-
(statement.source !== null && statement.source !== void 0) ||
|
|
147
|
-
(statement.declaration !== null && statement.declaration !== void 0)) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
return statement.specifiers.some((specifier) => specifier.local.type === "Identifier" &&
|
|
151
|
-
importedNames.has(specifier.local.name));
|
|
152
|
-
};
|
|
153
|
-
export { collectImportedNames, getOptions, hasImportedExport, isBarrelFile, shouldLintFile, };
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVleHBvcnRzLW91dHNpZGUtYmFycmVscy11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL25vLXJlZXhwb3J0cy1vdXRzaWRlLWJhcnJlbHMtdXRpbGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBSTdCLHlDQUF5QztBQUN6QyxNQUFNLG9CQUFvQixHQUFHLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFaEYsNERBQTREO0FBQzVELE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQWMxQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWMsRUFBRSxRQUFrQixFQUFZLEVBQUU7SUFDckUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxLQUFLO2FBQ1QsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFtQixFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO2FBQzdELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzVCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMs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LEVBQUUsQ0FBQztRQUM3QixJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztZQUMzQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDN0MsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0saUJBQWlCLEdBQUcsQ0FDeEIsU0FBc0MsRUFDdEMsYUFBMEIsRUFDakIsRUFBRTtJQUNYLElBQ0UsU0FBUyxDQUFDLElBQUksS0FBSyx3QkFBd0I7UUFDM0MsQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQzFELENBQUMsU0FBUyxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksU0FBUyxDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUNwRSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDOUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNaLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVk7UUFDckMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixjQUFjLEdBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVNUIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBtaW5pbWF0Y2ggfSBmcm9tIFwibWluaW1hdGNoXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB0eXBlIHsgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKiogRGVmYXVsdCB2YWx1ZSB1c2VkIGJ5IHRoaXMgbW9kdWxlLiAqL1xuY29uc3QgREVGQVVMVF9CQVJSRUxfTkFNRVMgPSBbXCJpbmRleC50c1wiLCBcImluZGV4LnRzeFwiLCBcImluZGV4LmpzXCIsIFwiaW5kZXguanN4XCJdO1xuXG4vKiogRGVmYXVsdCBmb2xkZXIgZ2xvYnMgZm9yIG5vbi1iYXJyZWwgcmUtZXhwb3J0IGNoZWNrcy4gKi9cbmNvbnN0IERFRkFVTFRfRk9MREVSX0dMT0JTID0gW1wic3JjLyovKipcIl07XG5cbi8qKiBUeXBlIGRlZmluaXRpb24gZm9yIHJ1bGUgZGF0YS4gKi9cbmludGVyZmFjZSBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzU3RhdGUge1xuICAvKiogRm9sZGVycyBmaWVsZCB2YWx1ZS4gKi9cbiAgZm9sZGVyczogc3RyaW5nW107XG5cbiAgLyoqIE5hbWVzIGZpZWxkIHZhbHVlLiAqL1xuICBuYW1lczogc3RyaW5nW107XG5cbiAgLyoqIE5hbWVzU2V0IGZpZWxkIHZhbHVlLiAqL1xuICBuYW1lc1NldDogU2V0PHN0cmluZz47XG59XG5cbi8qKlxuICogTm9ybWFsaXplcyBhIHN0cmluZyBsaXN0IG9wdGlvbiBpbnRvIGEgY2xlYW4gbGlzdC5cbiAqIEBwYXJhbSB2YWx1ZSBSYXcgb3B0aW9uIHZhbHVlLlxuICogQHBhcmFtIGRlZmF1bHRzIERlZmF1bHQgbGlzdCB3aGVuIHRoZSBvcHRpb24gaXMgZW1wdHkuXG4gKiBAcmV0dXJucyBOb3JtYWxpemVkIHN0cmluZyBsaXN0LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVzID0gbm9ybWFsaXplTGlzdChcImluZGV4LnRzXCIsIFtcImluZGV4LnRzXCJdKTtcbiAqIGBgYFxuICovXG5jb25zdCBub3JtYWxpemVMaXN0ID0gKHZhbHVlOiB1bmtub3duLCBkZWZhdWx0czogc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgLmZpbHRlcigoZW50cnkpOiBlbnRyeSBpcyBzdHJpbmcgPT4gdHlwZW9mIGVudHJ5ID09PSBcInN0cmluZ1wiKVxuICAgICAgLm1hcCgoZW50cnkpID0+IGVudHJ5LnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeS5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpO1xuICAgIHJldHVybiB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IFtdIDogW3RyaW1tZWRdO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5kZWZhdWx0c107XG59O1xuXG4vKipcbiAqIEJ1aWxkcyB0aGUgcnVsZSBvcHRpb25zIHN0YXRlIGZyb20gcmF3IG9wdGlvbnMuXG4gKiBAcGFyYW0gb3B0aW9ucyBSYXcgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgTm9ybWFsaXplZCBydWxlIG9wdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc3RhdGUgPSBnZXRPcHRpb25zKFt7fV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGdldE9wdGlvbnMgPSAoXG4gIG9wdGlvbnM6IHJlYWRvbmx5IHVua25vd25bXSxcbik6IE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNTdGF0ZSA9PiB7XG4gIGNvbnN0IHJhd09wdGlvbnMgPSBvcHRpb25zWzBdIGFzIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCBmb2xkZXJzID0gbm9ybWFsaXplTGlzdChyYXdPcHRpb25zPy5mb2xkZXJzLCBERUZBVUxUX0ZPTERFUl9HTE9CUyk7XG4gIGNvbnN0IG5hbWVzID0gbm9ybWFsaXplTGlzdChyYXdPcHRpb25zPy5uYW1lcywgREVGQVVMVF9CQVJSRUxfTkFNRVMpO1xuXG4gIHJldHVybiB7IGZvbGRlcnMsIG5hbWVzLCBuYW1lc1NldDogbmV3IFNldChuYW1lcykgfTtcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGZpbGVuYW1lIGlzIHZhbGlkIGZvciBsaW50aW5nLlxuICogQHBhcmFtIGZpbGVuYW1lIEFic29sdXRlIGZpbGVuYW1lLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlbmFtZSBpcyBsaW50YWJsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBvayA9IGlzTGludGFibGVGaWxlbmFtZShcIi9yZXBvL3NyYy9pbmRleC50c1wiKTtcbiAqIGBgYFxuICovXG5jb25zdCBpc0xpbnRhYmxlRmlsZW5hbWUgPSAoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgZmlsZW5hbWUubGVuZ3RoID4gMCAmJiBwYXRoLmlzQWJzb2x1dGUoZmlsZW5hbWUpO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBmaWxlbmFtZSB0byBhIHJlcG8tcmVsYXRpdmUgcGF0aC5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZS5cbiAqIEByZXR1cm5zIFJlbGF0aXZlIHBhdGggdXNpbmcgZm9yd2FyZCBzbGFzaGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlbGF0aXZlID0gbm9ybWFsaXplUmVsYXRpdmVQYXRoKFwiL3JlcG8vc3JjL2luZGV4LnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IG5vcm1hbGl6ZVJlbGF0aXZlUGF0aCA9IChmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZW5hbWUpLnNwbGl0KHBhdGguc2VwKS5qb2luKFwiL1wiKTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGZpbGUgcGF0aCBtYXRjaGVzIGFueSBjb25maWd1cmVkIGZvbGRlciBnbG9icy5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZS5cbiAqIEBwYXJhbSBmb2xkZXJzIEZvbGRlciBnbG9iIHBhdHRlcm5zLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlbmFtZSBpcyB3aXRoaW4gY29uZmlndXJlZCBmb2xkZXJzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gaXNQYXRoSW5Gb2xkZXJzKFwiL3JlcG8vc3JjL2luZGV4LnRzXCIsIFtcInNyYy8qKlwiXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgaXNQYXRoSW5Gb2xkZXJzID0gKGZpbGVuYW1lOiBzdHJpbmcsIGZvbGRlcnM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IHJlbGF0aXZlUGF0aCA9IG5vcm1hbGl6ZVJlbGF0aXZlUGF0aChmaWxlbmFtZSk7XG5cbiAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKFwiLi5cIikgfHwgcGF0aC5pc0Fic29sdXRlKHJlbGF0aXZlUGF0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZm9sZGVycy5zb21lKChmb2xkZXIpID0+XG4gICAgbWluaW1hdGNoKHJlbGF0aXZlUGF0aCwgZm9sZGVyLCB7IGRvdDogdHJ1ZSB9KSxcbiAgKTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZmlsZSBzaG91bGQgYmUgbGludGVkIGJ5IHRoaXMgcnVsZS5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZS5cbiAqIEBwYXJhbSBvcHRpb25zIE5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIHNob3VsZCBiZSBjaGVja2VkLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG9rID0gc2hvdWxkTGludEZpbGUoXCIvcmVwby9zcmMvaW5kZXgudHNcIiwgc3RhdGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IHNob3VsZExpbnRGaWxlID0gKFxuICBmaWxlbmFtZTogc3RyaW5nLFxuICBvcHRpb25zOiBOb1JlZXhwb3J0c091dHNpZGVCYXJyZWxzU3RhdGUsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKCFpc0xpbnRhYmxlRmlsZW5hbWUoZmlsZW5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuZm9sZGVycy5sZW5ndGggPT09IDAgfHwgb3B0aW9ucy5uYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNQYXRoSW5Gb2xkZXJzKGZpbGVuYW1lLCBvcHRpb25zLmZvbGRlcnMpO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBmaWxlIGlzIGEgYmFycmVsIGZpbGUgdW5kZXIgdGhlIHJ1bGUgb3B0aW9ucy5cbiAqIEBwYXJhbSBmaWxlbmFtZSBBYnNvbHV0ZSBmaWxlbmFtZS5cbiAqIEBwYXJhbSBvcHRpb25zIE5vcm1hbGl6ZWQgcnVsZSBvcHRpb25zLlxuICogQHJldHVybnMgVHJ1ZSB3aGVuIHRoZSBmaWxlIGlzIGEgYmFycmVsIGZpbGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBpc0JhcnJlbEZpbGUoXCIvcmVwby9zcmMvaW5kZXgudHNcIiwgc3RhdGUpO1xuICogYGBgXG4gKi9cbmNvbnN0IGlzQmFycmVsRmlsZSA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc1N0YXRlLFxuKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBvcHRpb25zLm5hbWVzU2V0LmhhcyhwYXRoLmJhc2VuYW1lKGZpbGVuYW1lKSk7XG59O1xuXG4vKipcbiAqIENvbGxlY3RzIGltcG9ydGVkIGlkZW50aWZpZXJzIGZyb20gdGhlIHByb2dyYW0gYm9keS5cbiAqIEBwYXJhbSBib2R5IFByb2dyYW0gYm9keSBzdGF0ZW1lbnRzLlxuICogQHJldHVybnMgU2V0IG9mIGxvY2FsIGltcG9ydGVkIGlkZW50aWZpZXJzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hbWVzID0gY29sbGVjdEltcG9ydGVkTmFtZXMocHJvZ3JhbS5ib2R5KTtcbiAqIGBgYFxuICovXG5jb25zdCBjb2xsZWN0SW1wb3J0ZWROYW1lcyA9IChib2R5OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl0pOiBTZXQ8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IGltcG9ydGVkTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBib2R5KSB7XG4gICAgaWYgKHN0YXRlbWVudC50eXBlID09PSBcIkltcG9ydERlY2xhcmF0aW9uXCIpIHtcbiAgICAgIGZvciAoY29uc3Qgc3BlY2lmaWVyIG9mIHN0YXRlbWVudC5zcGVjaWZpZXJzKSB7XG4gICAgICAgIGltcG9ydGVkTmFtZXMuYWRkKHNwZWNpZmllci5sb2NhbC5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gaW1wb3J0ZWROYW1lcztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYW4gZXhwb3J0IHNwZWNpZmllciByZWZlcmVuY2VzIGFuIGltcG9ydGVkIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gc3RhdGVtZW50IEV4cG9ydCBuYW1lZCBkZWNsYXJhdGlvbiBzdGF0ZW1lbnQuXG4gKiBAcGFyYW0gaW1wb3J0ZWROYW1lcyBTZXQgb2YgaW1wb3J0ZWQgaWRlbnRpZmllcnMuXG4gKiBAcmV0dXJucyBUcnVlIHdoZW4gYW55IGV4cG9ydCBzcGVjaWZpZXIgcmVmZXJlbmNlcyBhbiBpbXBvcnQuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgb2sgPSBoYXNJbXBvcnRlZEV4cG9ydChzdGF0ZW1lbnQsIG5hbWVzKTtcbiAqIGBgYFxuICovXG5jb25zdCBoYXNJbXBvcnRlZEV4cG9ydCA9IChcbiAgc3RhdGVtZW50OiBBU1QuUHJvZ3JhbVtcImJvZHlcIl1bbnVtYmVyXSxcbiAgaW1wb3J0ZWROYW1lczogU2V0PHN0cmluZz4sXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKFxuICAgIHN0YXRlbWVudC50eXBlICE9PSBcIkV4cG9ydE5hbWVkRGVjbGFyYXRpb25cIiB8fFxuICAgIChzdGF0ZW1lbnQuc291cmNlICE9PSBudWxsICYmIHN0YXRlbWVudC5zb3VyY2UgIT09IHZvaWQgMCkgfHxcbiAgICAoc3RhdGVtZW50LmRlY2xhcmF0aW9uICE9PSBudWxsICYmIHN0YXRlbWVudC5kZWNsYXJhdGlvbiAhPT0gdm9pZCAwKVxuICApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50LnNwZWNpZmllcnMuc29tZShcbiAgICAoc3BlY2lmaWVyKSA9PlxuICAgICAgc3BlY2lmaWVyLmxvY2FsLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICBpbXBvcnRlZE5hbWVzLmhhcyhzcGVjaWZpZXIubG9jYWwubmFtZSksXG4gICk7XG59O1xuXG5leHBvcnQge1xuICBjb2xsZWN0SW1wb3J0ZWROYW1lcyxcbiAgZ2V0T3B0aW9ucyxcbiAgaGFzSW1wb3J0ZWRFeHBvcnQsXG4gIGlzQmFycmVsRmlsZSxcbiAgc2hvdWxkTGludEZpbGUsXG59O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/architecture/consistent-barrel-files/rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AASnC;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAoDrC,CAAC;AAEF,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { createRuleDocumentation } from "../../custom-rule-documentation";
|
|
2
|
-
import { buildListenerForFile } from "./consistent-barrel-files-listeners";
|
|
3
|
-
import { getOptions, isLintableFilename, } from "./consistent-barrel-files-options";
|
|
4
|
-
/**
|
|
5
|
-
* ESLint rule requiring consistent barrel file usage by folder.
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const rule = consistentBarrelFilesRule;
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
const consistentBarrelFilesRule = {
|
|
12
|
-
create(context) {
|
|
13
|
-
const { filename, options } = context;
|
|
14
|
-
if (!isLintableFilename(filename)) {
|
|
15
|
-
return {};
|
|
16
|
-
}
|
|
17
|
-
return buildListenerForFile(context, filename, getOptions(options));
|
|
18
|
-
},
|
|
19
|
-
meta: {
|
|
20
|
-
docs: createRuleDocumentation("consistent-barrel-files", "Enforce or forbid barrel files with consistent, allowed names."),
|
|
21
|
-
messages: {
|
|
22
|
-
forbiddenBarrel: "Barrel files are forbidden. Remove the barrel file '{{name}}'.",
|
|
23
|
-
missingBarrel: "Each folder must include a barrel file named one of: {{names}}.",
|
|
24
|
-
},
|
|
25
|
-
schema: [
|
|
26
|
-
{
|
|
27
|
-
additionalProperties: false,
|
|
28
|
-
properties: {
|
|
29
|
-
enforce: { type: "boolean" },
|
|
30
|
-
folders: {
|
|
31
|
-
oneOf: [
|
|
32
|
-
{ type: "string" },
|
|
33
|
-
{
|
|
34
|
-
items: { type: "string" },
|
|
35
|
-
minItems: 1,
|
|
36
|
-
type: "array",
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
names: {
|
|
41
|
-
oneOf: [
|
|
42
|
-
{ type: "string" },
|
|
43
|
-
{
|
|
44
|
-
items: { type: "string" },
|
|
45
|
-
minItems: 1,
|
|
46
|
-
type: "array",
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
type: "object",
|
|
52
|
-
},
|
|
53
|
-
],
|
|
54
|
-
type: "problem",
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
export { consistentBarrelFilesRule };
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXRlY3R1cmUvY29uc2lzdGVudC1iYXJyZWwtZmlsZXMvcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixNQUFNLG1DQUFtQyxDQUFDO0FBRTNDOzs7Ozs7R0FNRztBQUNILE1BQU0seUJBQXlCLEdBQW9CO0lBQ2pELE1BQU0sQ0FBQyxPQUF5QjtRQUM5QixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUV0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELElBQUksRUFBRTtRQUNKLElBQUksRUFBRSx1QkFBdUIsQ0FDM0IseUJBQXlCLEVBQ3pCLGdFQUFnRSxDQUNqRTtRQUNELFFBQVEsRUFBRTtZQUNSLGVBQWUsRUFDYixnRUFBZ0U7WUFDbEUsYUFBYSxFQUNYLGlFQUFpRTtTQUNwRTtRQUNELE1BQU0sRUFBRTtZQUNOO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUM1QixPQUFPLEVBQUU7d0JBQ1AsS0FBSyxFQUFFOzRCQUNMLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTs0QkFDbEI7Z0NBQ0UsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQ0FDekIsUUFBUSxFQUFFLENBQUM7Z0NBQ1gsSUFBSSxFQUFFLE9BQU87NkJBQ2Q7eUJBQ0Y7cUJBQ0Y7b0JBQ0QsS0FBSyxFQUFFO3dCQUNMLEtBQUssRUFBRTs0QkFDTCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7NEJBQ2xCO2dDQUNFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0NBQ3pCLFFBQVEsRUFBRSxDQUFDO2dDQUNYLElBQUksRUFBRSxPQUFPOzZCQUNkO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxTQUFTO0tBQ2hCO0NBQ0YsQ0FBQztBQUVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSBcImVzbGludFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbiB9IGZyb20gXCIuLi8uLi9jdXN0b20tcnVsZS1kb2N1bWVudGF0aW9uXCI7XG5pbXBvcnQgeyBidWlsZExpc3RlbmVyRm9yRmlsZSB9IGZyb20gXCIuL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzLWxpc3RlbmVyc1wiO1xuaW1wb3J0IHtcbiAgZ2V0T3B0aW9ucyxcbiAgaXNMaW50YWJsZUZpbGVuYW1lLFxufSBmcm9tIFwiLi9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy1vcHRpb25zXCI7XG5cbi8qKlxuICogRVNMaW50IHJ1bGUgcmVxdWlyaW5nIGNvbnNpc3RlbnQgYmFycmVsIGZpbGUgdXNhZ2UgYnkgZm9sZGVyLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJ1bGUgPSBjb25zaXN0ZW50QmFycmVsRmlsZXNSdWxlO1xuICogYGBgXG4gKi9cbmNvbnN0IGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGU6IFJ1bGUuUnVsZU1vZHVsZSA9IHtcbiAgY3JlYXRlKGNvbnRleHQ6IFJ1bGUuUnVsZUNvbnRleHQpOiBSdWxlLlJ1bGVMaXN0ZW5lciB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgb3B0aW9ucyB9ID0gY29udGV4dDtcblxuICAgIGlmICghaXNMaW50YWJsZUZpbGVuYW1lKGZpbGVuYW1lKSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiBidWlsZExpc3RlbmVyRm9yRmlsZShjb250ZXh0LCBmaWxlbmFtZSwgZ2V0T3B0aW9ucyhvcHRpb25zKSk7XG4gIH0sXG4gIG1ldGE6IHtcbiAgICBkb2NzOiBjcmVhdGVSdWxlRG9jdW1lbnRhdGlvbihcbiAgICAgIFwiY29uc2lzdGVudC1iYXJyZWwtZmlsZXNcIixcbiAgICAgIFwiRW5mb3JjZSBvciBmb3JiaWQgYmFycmVsIGZpbGVzIHdpdGggY29uc2lzdGVudCwgYWxsb3dlZCBuYW1lcy5cIixcbiAgICApLFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBmb3JiaWRkZW5CYXJyZWw6XG4gICAgICAgIFwiQmFycmVsIGZpbGVzIGFyZSBmb3JiaWRkZW4uIFJlbW92ZSB0aGUgYmFycmVsIGZpbGUgJ3t7bmFtZX19Jy5cIixcbiAgICAgIG1pc3NpbmdCYXJyZWw6XG4gICAgICAgIFwiRWFjaCBmb2xkZXIgbXVzdCBpbmNsdWRlIGEgYmFycmVsIGZpbGUgbmFtZWQgb25lIG9mOiB7e25hbWVzfX0uXCIsXG4gICAgfSxcbiAgICBzY2hlbWE6IFtcbiAgICAgIHtcbiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgZW5mb3JjZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgIGZvbGRlcnM6IHtcbiAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgIHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICAgIG1pbkl0ZW1zOiAxLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBuYW1lczoge1xuICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgICAgbWluSXRlbXM6IDEsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHR5cGU6IFwicHJvYmxlbVwiLFxuICB9LFxufTtcblxuZXhwb3J0IHsgY29uc2lzdGVudEJhcnJlbEZpbGVzUnVsZSB9O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../../src/architecture/consistent-barrel-files/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKtC;;;;;;;;GAQG;AACH,QAAA,MAAM,mBAAmB,GAAI,MAAM,KAAK,GAAG,KAAK,KAAG,MAIlD,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,aAAa,GAAI,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAG,GAAG,CAAC,OAWxD,CAAC;AA8BH;;;;;;;;;GASG;AACH,QAAA,MAAM,qBAAqB,GACzB,WAAW,MAAM,EACjB,qBAAwB,KACvB,MAAM,CAAC,eAK2B,CAAC;AAEtC;;;;;;;;;GASG;AACH,QAAA,MAAM,qBAAqB,GACzB,WAAW,MAAM,EACjB,qBAAwB,KACvB,MAAM,CAAC,eAK2B,CAAC;AAEtC;;;;;;;;GAQG;AACH,QAAA,MAAM,4BAA4B,GAChC,WAAW,MAAM,KAChB,MAAM,CAAC,sBAIkC,CAAC;AAE7C;;;;;;;;GAQG;AACH,QAAA,MAAM,uBAAuB,GAC3B,aAAY,MAAM,CAAC,iBAAiB,CAAC,YAAY,CAAM,KACtD,MAAM,CAAC,iBAM6B,CAAC;AAExC;;;;;;;GAOG;AACH,QAAA,MAAM,eAAe,QAAO,MAAM,CAAC,oBAMO,CAAC;AAE3C;;;;;;;GAOG;AACH,QAAA,MAAM,qBAAqB,QAAO,MAAM,CAAC,sBAMG,CAAC;AAE7C;;;;;;;GAOG;AACH,QAAA,MAAM,2BAA2B,QAAO,MAAM,CAAC,sBAa9C,CAAC;AAEF;;;;;;;;GAQG;AACH,QAAA,MAAM,yBAAyB,GAC7B,aAAY,MAAM,CAAC,eAAe,EAAO,KACxC,MAAM,CAAC,sBAKkC,CAAC;AAE7C;;;;;;;;GAQG;AACH,QAAA,MAAM,6BAA6B,GACjC,MAAM,MAAM,KACX,MAAM,CAAC,wBAIoC,CAAC;AAE/C;;;;;;;;GAQG;AACH,QAAA,MAAM,UAAU,GACd,GAAG,YAAY,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,KAC9C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAe,CAAC;AAExC;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,GAAI,UAAU,MAAM,KAAG,IAEvC,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,YAAY,GAAI,UAAU,MAAM,KAAG,IAExC,CAAC;AAEF,OAAO,EACL,UAAU,EACV,eAAe,EACf,6BAA6B,EAC7B,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,YAAY,GACb,CAAC"}
|
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
/**
|
|
4
|
-
* Creates a temporary repo directory under the given root.
|
|
5
|
-
* @param root Root folder for temp files.
|
|
6
|
-
* @returns The generated directory path.
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const directory = createRepoDirectory("tmp");
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
const createRepoDirectory = (root) => {
|
|
13
|
-
const baseDirectory = path.join(process.cwd(), root);
|
|
14
|
-
fs.mkdirSync(baseDirectory, { recursive: true });
|
|
15
|
-
return fs.mkdtempSync(path.join(baseDirectory, "barrel-files-"));
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Creates a program wrapper around the supplied AST body.
|
|
19
|
-
* @param body Program body statements.
|
|
20
|
-
* @returns The AST program.
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const program = createProgram([]);
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
const createProgram = (body) => ({
|
|
27
|
-
body,
|
|
28
|
-
comments: [],
|
|
29
|
-
loc: {
|
|
30
|
-
end: { column: 0, line: 1 },
|
|
31
|
-
start: { column: 0, line: 1 },
|
|
32
|
-
},
|
|
33
|
-
range: [0, 0],
|
|
34
|
-
sourceType: "module",
|
|
35
|
-
tokens: [],
|
|
36
|
-
type: "Program",
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* Creates an ESTree literal node.
|
|
40
|
-
* @param value Literal string to wrap.
|
|
41
|
-
* @returns The literal node.
|
|
42
|
-
* @example
|
|
43
|
-
* ```typescript
|
|
44
|
-
* const literal = createLiteral("./feature");
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
const createLiteral = (value) => ({
|
|
48
|
-
raw: `'${value}'`,
|
|
49
|
-
type: "Literal",
|
|
50
|
-
value,
|
|
51
|
-
});
|
|
52
|
-
/**
|
|
53
|
-
* Creates an ESTree identifier node.
|
|
54
|
-
* @param name Identifier to create.
|
|
55
|
-
* @returns The identifier node.
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* const id = createIdentifier("all");
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
const createIdentifier = (name) => ({ name, type: "Identifier" });
|
|
62
|
-
/**
|
|
63
|
-
* Creates an ESTree export specifier.
|
|
64
|
-
* @param localName Local identifier name.
|
|
65
|
-
* @param exportedName Exported identifier name.
|
|
66
|
-
* @returns Export specifier node.
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* const specifier = createExportSpecifier("feature");
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
|
-
const createExportSpecifier = (localName, exportedName = localName) => ({
|
|
73
|
-
exported: createIdentifier(exportedName),
|
|
74
|
-
local: createIdentifier(localName),
|
|
75
|
-
type: "ExportSpecifier",
|
|
76
|
-
});
|
|
77
|
-
/**
|
|
78
|
-
* Creates an ESTree import specifier.
|
|
79
|
-
* @param localName Local identifier name.
|
|
80
|
-
* @param importedName Imported identifier name.
|
|
81
|
-
* @returns Import specifier node.
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* const specifier = createImportSpecifier("feature");
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
const createImportSpecifier = (localName, importedName = localName) => ({
|
|
88
|
-
imported: createIdentifier(importedName),
|
|
89
|
-
local: createIdentifier(localName),
|
|
90
|
-
type: "ImportSpecifier",
|
|
91
|
-
});
|
|
92
|
-
/**
|
|
93
|
-
* Creates an ESTree import default specifier.
|
|
94
|
-
* @param localName Local identifier name.
|
|
95
|
-
* @returns Import default specifier node.
|
|
96
|
-
* @example
|
|
97
|
-
* ```typescript
|
|
98
|
-
* const specifier = createImportDefaultSpecifier("feature");
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
const createImportDefaultSpecifier = (localName) => ({
|
|
102
|
-
local: createIdentifier(localName),
|
|
103
|
-
type: "ImportDefaultSpecifier",
|
|
104
|
-
});
|
|
105
|
-
/**
|
|
106
|
-
* Creates an import declaration for test fixtures.
|
|
107
|
-
* @param specifiers Specifiers to include.
|
|
108
|
-
* @returns Import declaration node for tests.
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* const node = createImportDeclaration([createImportSpecifier("feature")]);
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
const createImportDeclaration = (specifiers = []) => ({
|
|
115
|
-
attributes: [],
|
|
116
|
-
source: createLiteral("./feature"),
|
|
117
|
-
specifiers,
|
|
118
|
-
type: "ImportDeclaration",
|
|
119
|
-
});
|
|
120
|
-
/**
|
|
121
|
-
* Creates an export-all declaration for test fixtures.
|
|
122
|
-
* @returns The export-all declaration node.
|
|
123
|
-
* @example
|
|
124
|
-
* ```typescript
|
|
125
|
-
* const node = createExportAll();
|
|
126
|
-
* ```
|
|
127
|
-
*/
|
|
128
|
-
const createExportAll = () => ({
|
|
129
|
-
attributes: [],
|
|
130
|
-
exported: createIdentifier("all"),
|
|
131
|
-
source: createLiteral("./feature"),
|
|
132
|
-
type: "ExportAllDeclaration",
|
|
133
|
-
});
|
|
134
|
-
/**
|
|
135
|
-
* Creates a named export-from declaration for test fixtures.
|
|
136
|
-
* @returns Export declaration node for tests.
|
|
137
|
-
* @example
|
|
138
|
-
* ```typescript
|
|
139
|
-
* const node = createExportNamedFrom();
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
const createExportNamedFrom = () => ({
|
|
143
|
-
attributes: [],
|
|
144
|
-
source: createLiteral("./feature"),
|
|
145
|
-
specifiers: [],
|
|
146
|
-
type: "ExportNamedDeclaration",
|
|
147
|
-
});
|
|
148
|
-
/**
|
|
149
|
-
* Creates a named export with a local declaration.
|
|
150
|
-
* @returns Export declaration node for tests.
|
|
151
|
-
* @example
|
|
152
|
-
* ```typescript
|
|
153
|
-
* const node = createExportWithDeclaration();
|
|
154
|
-
* ```
|
|
155
|
-
*/
|
|
156
|
-
const createExportWithDeclaration = () => {
|
|
157
|
-
const declaration = {
|
|
158
|
-
declarations: [],
|
|
159
|
-
kind: "const",
|
|
160
|
-
type: "VariableDeclaration",
|
|
161
|
-
};
|
|
162
|
-
return {
|
|
163
|
-
attributes: [],
|
|
164
|
-
declaration,
|
|
165
|
-
specifiers: [],
|
|
166
|
-
type: "ExportNamedDeclaration",
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* Creates a named export without a source value.
|
|
171
|
-
* @param specifiers Export specifiers to include.
|
|
172
|
-
* @returns Export declaration node for tests.
|
|
173
|
-
* @example
|
|
174
|
-
* ```typescript
|
|
175
|
-
* const node = createExportWithoutSource([createExportSpecifier("feature")]);
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
const createExportWithoutSource = (specifiers = []) => ({
|
|
179
|
-
attributes: [],
|
|
180
|
-
specifiers,
|
|
181
|
-
type: "ExportNamedDeclaration",
|
|
182
|
-
});
|
|
183
|
-
/**
|
|
184
|
-
* Creates a default export for an identifier.
|
|
185
|
-
* @param name Identifier to export.
|
|
186
|
-
* @returns Export default declaration node for tests.
|
|
187
|
-
* @example
|
|
188
|
-
* ```typescript
|
|
189
|
-
* const node = createExportDefaultIdentifier("feature");
|
|
190
|
-
* ```
|
|
191
|
-
*/
|
|
192
|
-
const createExportDefaultIdentifier = (name) => ({
|
|
193
|
-
declaration: createIdentifier(name),
|
|
194
|
-
type: "ExportDefaultDeclaration",
|
|
195
|
-
});
|
|
196
|
-
/**
|
|
197
|
-
* Collects statements into a program body array.
|
|
198
|
-
* @param statements Statements to include in the program.
|
|
199
|
-
* @returns The program body array.
|
|
200
|
-
* @example
|
|
201
|
-
* ```typescript
|
|
202
|
-
* const body = createBody(createImportDeclaration());
|
|
203
|
-
* ```
|
|
204
|
-
*/
|
|
205
|
-
const createBody = (...statements) => statements;
|
|
206
|
-
/**
|
|
207
|
-
* Writes a barrel file to the given path.
|
|
208
|
-
* @param filePath Path for the barrel file.
|
|
209
|
-
* @example
|
|
210
|
-
* ```typescript
|
|
211
|
-
* writeBarrel("/tmp/index.ts");
|
|
212
|
-
* ```
|
|
213
|
-
*/
|
|
214
|
-
const writeBarrel = (filePath) => {
|
|
215
|
-
fs.writeFileSync(filePath, "export * from './feature';", "utf8");
|
|
216
|
-
};
|
|
217
|
-
/**
|
|
218
|
-
* Writes a feature file to the given path.
|
|
219
|
-
* @param filePath Path for the feature file.
|
|
220
|
-
* @example
|
|
221
|
-
* ```typescript
|
|
222
|
-
* writeFeature("/tmp/feature.ts");
|
|
223
|
-
* ```
|
|
224
|
-
*/
|
|
225
|
-
const writeFeature = (filePath) => {
|
|
226
|
-
fs.writeFileSync(filePath, "export const feature = 1;", "utf8");
|
|
227
|
-
};
|
|
228
|
-
export { createBody, createExportAll, createExportDefaultIdentifier, createExportNamedFrom, createExportSpecifier, createExportWithDeclaration, createExportWithoutSource, createImportDeclaration, createImportDefaultSpecifier, createImportSpecifier, createProgram, createRepoDirectory, writeBarrel, writeFeature, };
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdGVjdHVyZS9jb25zaXN0ZW50LWJhcnJlbC1maWxlcy90ZXN0LWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pCLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUU3Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFtQixFQUFVLEVBQUU7SUFDMUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsRUFBRSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRCxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFFRjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBNEIsRUFBZSxFQUFFLENBQUMsQ0FBQztJQUNwRSxJQUFJO0lBQ0osUUFBUSxFQUFFLEVBQUU7SUFDWixHQUFHLEVBQUU7UUFDSCxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDM0IsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0tBQzlCO0lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNiLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxFQUFFLFNBQVM7Q0FDaEIsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7O0dB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NkJBQTZCLEdBQUcsQ0FDcEMsSUFBWSxFQUNxQixFQUFFLENBQ25DLENBQUM7SUFDQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ25DLElBQUksRUFBRSwwQkFBMEI7Q0FDakMsQ0FBMkMsQ0FBQztBQUUvQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQ2pCLEdBQUcsVUFBNEMsRUFDdkIsRUFBRSxDQUFDLFVBQVUsQ0FBQztBQUV4Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFnQixFQUFRLEVBQUU7SUFDN0MsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbkUsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBZ0IsRUFBUSxFQUFFO0lBQzlDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGLE9BQU8sRUFDTCxVQUFVLEVBQ1YsZUFBZSxFQUNmLDZCQUE2QixFQUM3QixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDJCQUEyQixFQUMzQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsWUFBWSxHQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFTVCB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB0eXBlICogYXMgRVNUcmVlIGZyb20gXCJlc3RyZWVcIjtcblxuaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHRlbXBvcmFyeSByZXBvIGRpcmVjdG9yeSB1bmRlciB0aGUgZ2l2ZW4gcm9vdC5cbiAqIEBwYXJhbSByb290IFJvb3QgZm9sZGVyIGZvciB0ZW1wIGZpbGVzLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBkaXJlY3RvcnkgcGF0aC5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkaXJlY3RvcnkgPSBjcmVhdGVSZXBvRGlyZWN0b3J5KFwidG1wXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZVJlcG9EaXJlY3RvcnkgPSAocm9vdDogXCJzcmNcIiB8IFwidG1wXCIpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBiYXNlRGlyZWN0b3J5ID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIHJvb3QpO1xuICBmcy5ta2RpclN5bmMoYmFzZURpcmVjdG9yeSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIHJldHVybiBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4oYmFzZURpcmVjdG9yeSwgXCJiYXJyZWwtZmlsZXMtXCIpKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHByb2dyYW0gd3JhcHBlciBhcm91bmQgdGhlIHN1cHBsaWVkIEFTVCBib2R5LlxuICogQHBhcmFtIGJvZHkgUHJvZ3JhbSBib2R5IHN0YXRlbWVudHMuXG4gKiBAcmV0dXJucyBUaGUgQVNUIHByb2dyYW0uXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcHJvZ3JhbSA9IGNyZWF0ZVByb2dyYW0oW10pO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZVByb2dyYW0gPSAoYm9keTogRVNUcmVlLlByb2dyYW1bXCJib2R5XCJdKTogQVNULlByb2dyYW0gPT4gKHtcbiAgYm9keSxcbiAgY29tbWVudHM6IFtdLFxuICBsb2M6IHtcbiAgICBlbmQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gICAgc3RhcnQ6IHsgY29sdW1uOiAwLCBsaW5lOiAxIH0sXG4gIH0sXG4gIHJhbmdlOiBbMCwgMF0sXG4gIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gIHRva2VuczogW10sXG4gIHR5cGU6IFwiUHJvZ3JhbVwiLFxufSk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFU1RyZWUgbGl0ZXJhbCBub2RlLlxuICogQHBhcmFtIHZhbHVlIExpdGVyYWwgc3RyaW5nIHRvIHdyYXAuXG4gKiBAcmV0dXJucyBUaGUgbGl0ZXJhbCBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGxpdGVyYWwgPSBjcmVhdGVMaXRlcmFsKFwiLi9mZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUxpdGVyYWwgPSAodmFsdWU6IHN0cmluZyk6IEVTVHJlZS5MaXRlcmFsID0+XG4gICh7XG4gICAgcmF3OiBgJyR7dmFsdWV9J2AsXG4gICAgdHlwZTogXCJMaXRlcmFsXCIsXG4gICAgdmFsdWUsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuTGl0ZXJhbDtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVTVHJlZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAcGFyYW0gbmFtZSBJZGVudGlmaWVyIHRvIGNyZWF0ZS5cbiAqIEByZXR1cm5zIFRoZSBpZGVudGlmaWVyIG5vZGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgaWQgPSBjcmVhdGVJZGVudGlmaWVyKFwiYWxsXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUlkZW50aWZpZXIgPSAobmFtZTogc3RyaW5nKTogRVNUcmVlLklkZW50aWZpZXIgPT5cbiAgKHsgbmFtZSwgdHlwZTogXCJJZGVudGlmaWVyXCIgfSkgc2F0aXNmaWVzIEVTVHJlZS5JZGVudGlmaWVyO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gRVNUcmVlIGV4cG9ydCBzcGVjaWZpZXIuXG4gKiBAcGFyYW0gbG9jYWxOYW1lIExvY2FsIGlkZW50aWZpZXIgbmFtZS5cbiAqIEBwYXJhbSBleHBvcnRlZE5hbWUgRXhwb3J0ZWQgaWRlbnRpZmllciBuYW1lLlxuICogQHJldHVybnMgRXhwb3J0IHNwZWNpZmllciBub2RlLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNwZWNpZmllciA9IGNyZWF0ZUV4cG9ydFNwZWNpZmllcihcImZlYXR1cmVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0U3BlY2lmaWVyID0gKFxuICBsb2NhbE5hbWU6IHN0cmluZyxcbiAgZXhwb3J0ZWROYW1lID0gbG9jYWxOYW1lLFxuKTogRVNUcmVlLkV4cG9ydFNwZWNpZmllciA9PlxuICAoe1xuICAgIGV4cG9ydGVkOiBjcmVhdGVJZGVudGlmaWVyKGV4cG9ydGVkTmFtZSksXG4gICAgbG9jYWw6IGNyZWF0ZUlkZW50aWZpZXIobG9jYWxOYW1lKSxcbiAgICB0eXBlOiBcIkV4cG9ydFNwZWNpZmllclwiLFxuICB9KSBzYXRpc2ZpZXMgRVNUcmVlLkV4cG9ydFNwZWNpZmllcjtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIEVTVHJlZSBpbXBvcnQgc3BlY2lmaWVyLlxuICogQHBhcmFtIGxvY2FsTmFtZSBMb2NhbCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcGFyYW0gaW1wb3J0ZWROYW1lIEltcG9ydGVkIGlkZW50aWZpZXIgbmFtZS5cbiAqIEByZXR1cm5zIEltcG9ydCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzcGVjaWZpZXIgPSBjcmVhdGVJbXBvcnRTcGVjaWZpZXIoXCJmZWF0dXJlXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUltcG9ydFNwZWNpZmllciA9IChcbiAgbG9jYWxOYW1lOiBzdHJpbmcsXG4gIGltcG9ydGVkTmFtZSA9IGxvY2FsTmFtZSxcbik6IEVTVHJlZS5JbXBvcnRTcGVjaWZpZXIgPT5cbiAgKHtcbiAgICBpbXBvcnRlZDogY3JlYXRlSWRlbnRpZmllcihpbXBvcnRlZE5hbWUpLFxuICAgIGxvY2FsOiBjcmVhdGVJZGVudGlmaWVyKGxvY2FsTmFtZSksXG4gICAgdHlwZTogXCJJbXBvcnRTcGVjaWZpZXJcIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnRTcGVjaWZpZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBFU1RyZWUgaW1wb3J0IGRlZmF1bHQgc3BlY2lmaWVyLlxuICogQHBhcmFtIGxvY2FsTmFtZSBMb2NhbCBpZGVudGlmaWVyIG5hbWUuXG4gKiBAcmV0dXJucyBJbXBvcnQgZGVmYXVsdCBzcGVjaWZpZXIgbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzcGVjaWZpZXIgPSBjcmVhdGVJbXBvcnREZWZhdWx0U3BlY2lmaWVyKFwiZmVhdHVyZVwiKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVJbXBvcnREZWZhdWx0U3BlY2lmaWVyID0gKFxuICBsb2NhbE5hbWU6IHN0cmluZyxcbik6IEVTVHJlZS5JbXBvcnREZWZhdWx0U3BlY2lmaWVyID0+XG4gICh7XG4gICAgbG9jYWw6IGNyZWF0ZUlkZW50aWZpZXIobG9jYWxOYW1lKSxcbiAgICB0eXBlOiBcIkltcG9ydERlZmF1bHRTcGVjaWZpZXJcIixcbiAgfSkgc2F0aXNmaWVzIEVTVHJlZS5JbXBvcnREZWZhdWx0U3BlY2lmaWVyO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW1wb3J0IGRlY2xhcmF0aW9uIGZvciB0ZXN0IGZpeHR1cmVzLlxuICogQHBhcmFtIHNwZWNpZmllcnMgU3BlY2lmaWVycyB0byBpbmNsdWRlLlxuICogQHJldHVybnMgSW1wb3J0IGRlY2xhcmF0aW9uIG5vZGUgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBjcmVhdGVJbXBvcnREZWNsYXJhdGlvbihbY3JlYXRlSW1wb3J0U3BlY2lmaWVyKFwiZmVhdHVyZVwiKV0pO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uID0gKFxuICBzcGVjaWZpZXJzOiBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb25bXCJzcGVjaWZpZXJzXCJdID0gW10sXG4pOiBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzb3VyY2U6IGNyZWF0ZUxpdGVyYWwoXCIuL2ZlYXR1cmVcIiksXG4gICAgc3BlY2lmaWVycyxcbiAgICB0eXBlOiBcIkltcG9ydERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuSW1wb3J0RGVjbGFyYXRpb247XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBleHBvcnQtYWxsIGRlY2xhcmF0aW9uIGZvciB0ZXN0IGZpeHR1cmVzLlxuICogQHJldHVybnMgVGhlIGV4cG9ydC1hbGwgZGVjbGFyYXRpb24gbm9kZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlID0gY3JlYXRlRXhwb3J0QWxsKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0QWxsID0gKCk6IEVTVHJlZS5FeHBvcnRBbGxEZWNsYXJhdGlvbiA9PlxuICAoe1xuICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgIGV4cG9ydGVkOiBjcmVhdGVJZGVudGlmaWVyKFwiYWxsXCIpLFxuICAgIHNvdXJjZTogY3JlYXRlTGl0ZXJhbChcIi4vZmVhdHVyZVwiKSxcbiAgICB0eXBlOiBcIkV4cG9ydEFsbERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0QWxsRGVjbGFyYXRpb247XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5hbWVkIGV4cG9ydC1mcm9tIGRlY2xhcmF0aW9uIGZvciB0ZXN0IGZpeHR1cmVzLlxuICogQHJldHVybnMgRXhwb3J0IGRlY2xhcmF0aW9uIG5vZGUgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBjcmVhdGVFeHBvcnROYW1lZEZyb20oKTtcbiAqIGBgYFxuICovXG5jb25zdCBjcmVhdGVFeHBvcnROYW1lZEZyb20gPSAoKTogRVNUcmVlLkV4cG9ydE5hbWVkRGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBzb3VyY2U6IGNyZWF0ZUxpdGVyYWwoXCIuL2ZlYXR1cmVcIiksXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmFtZWQgZXhwb3J0IHdpdGggYSBsb2NhbCBkZWNsYXJhdGlvbi5cbiAqIEByZXR1cm5zIEV4cG9ydCBkZWNsYXJhdGlvbiBub2RlIGZvciB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBub2RlID0gY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uKCk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uID0gKCk6IEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uID0+IHtcbiAgY29uc3QgZGVjbGFyYXRpb24gPSB7XG4gICAgZGVjbGFyYXRpb25zOiBbXSxcbiAgICBraW5kOiBcImNvbnN0XCIsXG4gICAgdHlwZTogXCJWYXJpYWJsZURlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5WYXJpYWJsZURlY2xhcmF0aW9uO1xuXG4gIHJldHVybiB7XG4gICAgYXR0cmlidXRlczogW10sXG4gICAgZGVjbGFyYXRpb24sXG4gICAgc3BlY2lmaWVyczogW10sXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0gc2F0aXNmaWVzIEVTVHJlZS5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmFtZWQgZXhwb3J0IHdpdGhvdXQgYSBzb3VyY2UgdmFsdWUuXG4gKiBAcGFyYW0gc3BlY2lmaWVycyBFeHBvcnQgc3BlY2lmaWVycyB0byBpbmNsdWRlLlxuICogQHJldHVybnMgRXhwb3J0IGRlY2xhcmF0aW9uIG5vZGUgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBjcmVhdGVFeHBvcnRXaXRob3V0U291cmNlKFtjcmVhdGVFeHBvcnRTcGVjaWZpZXIoXCJmZWF0dXJlXCIpXSk7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0V2l0aG91dFNvdXJjZSA9IChcbiAgc3BlY2lmaWVyczogRVNUcmVlLkV4cG9ydFNwZWNpZmllcltdID0gW10sXG4pOiBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbiA9PlxuICAoe1xuICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgIHNwZWNpZmllcnMsXG4gICAgdHlwZTogXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIsXG4gIH0pIHNhdGlzZmllcyBFU1RyZWUuRXhwb3J0TmFtZWREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGVmYXVsdCBleHBvcnQgZm9yIGFuIGlkZW50aWZpZXIuXG4gKiBAcGFyYW0gbmFtZSBJZGVudGlmaWVyIHRvIGV4cG9ydC5cbiAqIEByZXR1cm5zIEV4cG9ydCBkZWZhdWx0IGRlY2xhcmF0aW9uIG5vZGUgZm9yIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5vZGUgPSBjcmVhdGVFeHBvcnREZWZhdWx0SWRlbnRpZmllcihcImZlYXR1cmVcIik7XG4gKiBgYGBcbiAqL1xuY29uc3QgY3JlYXRlRXhwb3J0RGVmYXVsdElkZW50aWZpZXIgPSAoXG4gIG5hbWU6IHN0cmluZyxcbik6IEVTVHJlZS5FeHBvcnREZWZhdWx0RGVjbGFyYXRpb24gPT5cbiAgKHtcbiAgICBkZWNsYXJhdGlvbjogY3JlYXRlSWRlbnRpZmllcihuYW1lKSxcbiAgICB0eXBlOiBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiLFxuICB9KSBzYXRpc2ZpZXMgRVNUcmVlLkV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjtcblxuLyoqXG4gKiBDb2xsZWN0cyBzdGF0ZW1lbnRzIGludG8gYSBwcm9ncmFtIGJvZHkgYXJyYXkuXG4gKiBAcGFyYW0gc3RhdGVtZW50cyBTdGF0ZW1lbnRzIHRvIGluY2x1ZGUgaW4gdGhlIHByb2dyYW0uXG4gKiBAcmV0dXJucyBUaGUgcHJvZ3JhbSBib2R5IGFycmF5LlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGJvZHkgPSBjcmVhdGVCb2R5KGNyZWF0ZUltcG9ydERlY2xhcmF0aW9uKCkpO1xuICogYGBgXG4gKi9cbmNvbnN0IGNyZWF0ZUJvZHkgPSAoXG4gIC4uLnN0YXRlbWVudHM6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXVtudW1iZXJdW11cbik6IEVTVHJlZS5Qcm9ncmFtW1wiYm9keVwiXSA9PiBzdGF0ZW1lbnRzO1xuXG4vKipcbiAqIFdyaXRlcyBhIGJhcnJlbCBmaWxlIHRvIHRoZSBnaXZlbiBwYXRoLlxuICogQHBhcmFtIGZpbGVQYXRoIFBhdGggZm9yIHRoZSBiYXJyZWwgZmlsZS5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiB3cml0ZUJhcnJlbChcIi90bXAvaW5kZXgudHNcIik7XG4gKiBgYGBcbiAqL1xuY29uc3Qgd3JpdGVCYXJyZWwgPSAoZmlsZVBhdGg6IHN0cmluZyk6IHZvaWQgPT4ge1xuICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBcImV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZSc7XCIsIFwidXRmOFwiKTtcbn07XG5cbi8qKlxuICogV3JpdGVzIGEgZmVhdHVyZSBmaWxlIHRvIHRoZSBnaXZlbiBwYXRoLlxuICogQHBhcmFtIGZpbGVQYXRoIFBhdGggZm9yIHRoZSBmZWF0dXJlIGZpbGUuXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogd3JpdGVGZWF0dXJlKFwiL3RtcC9mZWF0dXJlLnRzXCIpO1xuICogYGBgXG4gKi9cbmNvbnN0IHdyaXRlRmVhdHVyZSA9IChmaWxlUGF0aDogc3RyaW5nKTogdm9pZCA9PiB7XG4gIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIFwiZXhwb3J0IGNvbnN0IGZlYXR1cmUgPSAxO1wiLCBcInV0ZjhcIik7XG59O1xuXG5leHBvcnQge1xuICBjcmVhdGVCb2R5LFxuICBjcmVhdGVFeHBvcnRBbGwsXG4gIGNyZWF0ZUV4cG9ydERlZmF1bHRJZGVudGlmaWVyLFxuICBjcmVhdGVFeHBvcnROYW1lZEZyb20sXG4gIGNyZWF0ZUV4cG9ydFNwZWNpZmllcixcbiAgY3JlYXRlRXhwb3J0V2l0aERlY2xhcmF0aW9uLFxuICBjcmVhdGVFeHBvcnRXaXRob3V0U291cmNlLFxuICBjcmVhdGVJbXBvcnREZWNsYXJhdGlvbixcbiAgY3JlYXRlSW1wb3J0RGVmYXVsdFNwZWNpZmllcixcbiAgY3JlYXRlSW1wb3J0U3BlY2lmaWVyLFxuICBjcmVhdGVQcm9ncmFtLFxuICBjcmVhdGVSZXBvRGlyZWN0b3J5LFxuICB3cml0ZUJhcnJlbCxcbiAgd3JpdGVGZWF0dXJlLFxufTtcbiJdfQ==
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/** Type definition for rule data. */
|
|
2
|
-
interface BarrelFilesExportsOnlyOptions {
|
|
3
|
-
/** Folders helper value. */
|
|
4
|
-
folders?: string | string[];
|
|
5
|
-
/** Names helper value. */
|
|
6
|
-
names?: string | string[];
|
|
7
|
-
}
|
|
8
|
-
/** Type definition for rule data. */
|
|
9
|
-
interface ConsistentBarrelFilesOptions {
|
|
10
|
-
/** Enforce helper value. */
|
|
11
|
-
enforce?: boolean;
|
|
12
|
-
/** Folders helper value. */
|
|
13
|
-
folders?: string | string[];
|
|
14
|
-
/** Names helper value. */
|
|
15
|
-
names?: string | string[];
|
|
16
|
-
}
|
|
17
|
-
/** Type definition for rule data. */
|
|
18
|
-
interface NoReexportsOutsideBarrelsOptions {
|
|
19
|
-
/** Folders helper value. */
|
|
20
|
-
folders?: string | string[];
|
|
21
|
-
/** Names helper value. */
|
|
22
|
-
names?: string | string[];
|
|
23
|
-
}
|
|
24
|
-
export type { BarrelFilesExportsOnlyOptions, ConsistentBarrelFilesOptions, NoReexportsOutsideBarrelsOptions, };
|
|
25
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/architecture/consistent-barrel-files/types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,UAAU,6BAA6B;IACrC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,qCAAqC;AACrC,UAAU,4BAA4B;IACpC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,qCAAqC;AACrC,UAAU,gCAAgC;IACxC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,GACjC,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl0ZWN0dXJlL2NvbnNpc3RlbnQtYmFycmVsLWZpbGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQmFycmVsRmlsZXNFeHBvcnRzT25seU9wdGlvbnMge1xuICAvKiogRm9sZGVycyBoZWxwZXIgdmFsdWUuICovXG4gIGZvbGRlcnM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICAvKiogTmFtZXMgaGVscGVyIHZhbHVlLiAqL1xuICBuYW1lcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKiogVHlwZSBkZWZpbml0aW9uIGZvciBydWxlIGRhdGEuICovXG5pbnRlcmZhY2UgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyB7XG4gIC8qKiBFbmZvcmNlIGhlbHBlciB2YWx1ZS4gKi9cbiAgZW5mb3JjZT86IGJvb2xlYW47XG5cbiAgLyoqIEZvbGRlcnMgaGVscGVyIHZhbHVlLiAqL1xuICBmb2xkZXJzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIE5hbWVzIGhlbHBlciB2YWx1ZS4gKi9cbiAgbmFtZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqIFR5cGUgZGVmaW5pdGlvbiBmb3IgcnVsZSBkYXRhLiAqL1xuaW50ZXJmYWNlIE5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNPcHRpb25zIHtcbiAgLyoqIEZvbGRlcnMgaGVscGVyIHZhbHVlLiAqL1xuICBmb2xkZXJzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIE5hbWVzIGhlbHBlciB2YWx1ZS4gKi9cbiAgbmFtZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUge1xuICBCYXJyZWxGaWxlc0V4cG9ydHNPbmx5T3B0aW9ucyxcbiAgQ29uc2lzdGVudEJhcnJlbEZpbGVzT3B0aW9ucyxcbiAgTm9SZWV4cG9ydHNPdXRzaWRlQmFycmVsc09wdGlvbnMsXG59O1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/architecture/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { barrelFilesExportsOnlyRule, consistentBarrelFilesRule, noReexportsOutsideBarrelsRule, } from "./consistent-barrel-files";
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl0ZWN0dXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDZCQUE2QixHQUM5QixNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgYmFycmVsRmlsZXNFeHBvcnRzT25seVJ1bGUsXG4gIGNvbnNpc3RlbnRCYXJyZWxGaWxlc1J1bGUsXG4gIG5vUmVleHBvcnRzT3V0c2lkZUJhcnJlbHNSdWxlLFxufSBmcm9tIFwiLi9jb25zaXN0ZW50LWJhcnJlbC1maWxlc1wiO1xuIl19
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/** Shape of a benchmark case. */
|
|
2
|
-
interface BenchmarkCase {
|
|
3
|
-
/** Source code passed to ESLint. */
|
|
4
|
-
code: string;
|
|
5
|
-
/** Filename used for the lint run. */
|
|
6
|
-
filename: string;
|
|
7
|
-
/** Rule id inside the internal plugin. */
|
|
8
|
-
ruleName: string;
|
|
9
|
-
}
|
|
10
|
-
/** Summary returned by a benchmark run. */
|
|
11
|
-
interface BenchmarkSummary {
|
|
12
|
-
/** Elapsed milliseconds across all iterations. */
|
|
13
|
-
elapsedMilliseconds: number;
|
|
14
|
-
/** Iteration count used by the run. */
|
|
15
|
-
iterations: number;
|
|
16
|
-
/** Rule name under test. */
|
|
17
|
-
ruleName: string;
|
|
18
|
-
}
|
|
19
|
-
/** Benchmark cases covering the heavier package-owned rules. */
|
|
20
|
-
declare const benchmarkCases: readonly [{
|
|
21
|
-
readonly code: string;
|
|
22
|
-
readonly filename: "src/features.ts";
|
|
23
|
-
readonly ruleName: "prefer-interface-types";
|
|
24
|
-
}, {
|
|
25
|
-
readonly code: string;
|
|
26
|
-
readonly filename: "src/docs.ts";
|
|
27
|
-
readonly ruleName: "require-example-language";
|
|
28
|
-
}, {
|
|
29
|
-
readonly code: string;
|
|
30
|
-
readonly filename: "src/example.spec.ts";
|
|
31
|
-
readonly ruleName: "prefer-vi-mocked-import";
|
|
32
|
-
}, {
|
|
33
|
-
readonly code: string;
|
|
34
|
-
readonly filename: "src/index.ts";
|
|
35
|
-
readonly ruleName: "consistent-barrel-files";
|
|
36
|
-
}];
|
|
37
|
-
/**
|
|
38
|
-
* Formats a benchmark summary for console output.
|
|
39
|
-
* @param summary Summary to format.
|
|
40
|
-
* @returns Return value output.
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* const line = formatBenchmarkSummary({
|
|
44
|
-
* elapsedMilliseconds: 10,
|
|
45
|
-
* iterations: 1,
|
|
46
|
-
* ruleName: "prefer-interface-types",
|
|
47
|
-
* });
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
declare function formatBenchmarkSummary(summary: BenchmarkSummary): string;
|
|
51
|
-
/**
|
|
52
|
-
* Runs the benchmark command and prints each summary.
|
|
53
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
54
|
-
* @example
|
|
55
|
-
* ```typescript
|
|
56
|
-
* main(1);
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
declare function main(iterationsOverride?: number): void;
|
|
60
|
-
/**
|
|
61
|
-
* Runs a benchmark case and returns the elapsed milliseconds.
|
|
62
|
-
* @param benchmarkCase Benchmark definition.
|
|
63
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
64
|
-
* @returns Return value output.
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* const summary = runBenchmark(benchmarkCases[0], 1);
|
|
68
|
-
* ```
|
|
69
|
-
*/
|
|
70
|
-
declare function runBenchmark(benchmarkCase: BenchmarkCase, iterationsOverride?: number): BenchmarkSummary;
|
|
71
|
-
/**
|
|
72
|
-
* Runs all benchmark cases and returns their summaries.
|
|
73
|
-
* @param iterationsOverride Optional iteration count used by the run.
|
|
74
|
-
* @returns Return value output.
|
|
75
|
-
* @example
|
|
76
|
-
* ```typescript
|
|
77
|
-
* const summaries = runBenchmarks(1);
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
declare function runBenchmarks(iterationsOverride?: number): BenchmarkSummary[];
|
|
81
|
-
export { benchmarkCases, formatBenchmarkSummary, main, runBenchmark, runBenchmarks, };
|
|
82
|
-
export type { BenchmarkCase, BenchmarkSummary };
|
|
83
|
-
//# sourceMappingURL=benchmark-rules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark-rules.d.ts","sourceRoot":"","sources":["../src/benchmark-rules.ts"],"names":[],"mappings":"AAcA,iCAAiC;AACjC,UAAU,aAAa;IACrB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAEjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,UAAU,gBAAgB;IACxB,kDAAkD;IAClD,mBAAmB,EAAE,MAAM,CAAC;IAE5B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAYD,gEAAgE;AAChE,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;EAwC6C,CAAC;AAElE;;;;;;;;;;;;GAYG;AACH,iBAAS,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEjE;AAgCD;;;;;;;GAOG;AACH,iBAAS,IAAI,CAAC,kBAAkB,SAAa,GAAG,IAAI,CAInD;AAED;;;;;;;;;GASG;AACH,iBAAS,YAAY,CACnB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,SAAa,GAC9B,gBAAgB,CAiClB;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,kBAAkB,SAAa,GAAG,gBAAgB,EAAE,CAI1E;AAqBD,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,IAAI,EACJ,YAAY,EACZ,aAAa,GACd,CAAC;AACF,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC"}
|