From 4ee62c32ef5eba6e1b089ea3e5d4f1745cc39556 Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Wed, 10 Jul 2024 19:20:50 +0200 Subject: [PATCH] feat(providence-analytics): export MatchSubclassesAnalyzer for external usage (#2313) --- .changeset/old-emus-share.md | 5 ++++ .../src/program/analyzers/index.js | 1 + .../src/program/analyzers/match-subclasses.js | 23 ++++++++++--------- 3 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 .changeset/old-emus-share.md diff --git a/.changeset/old-emus-share.md b/.changeset/old-emus-share.md new file mode 100644 index 000000000..4e3555664 --- /dev/null +++ b/.changeset/old-emus-share.md @@ -0,0 +1,5 @@ +--- +'providence-analytics': patch +--- + +export MatchSubclassesAnalyzer for external usage diff --git a/packages-node/providence-analytics/src/program/analyzers/index.js b/packages-node/providence-analytics/src/program/analyzers/index.js index f77bd1e9d..4ff09cf68 100644 --- a/packages-node/providence-analytics/src/program/analyzers/index.js +++ b/packages-node/providence-analytics/src/program/analyzers/index.js @@ -5,6 +5,7 @@ export { Analyzer } from '../core/Analyzer.js'; export { default as FindExportsAnalyzer } from './find-exports.js'; export { default as FindImportsAnalyzer } from './find-imports.js'; export { default as MatchImportsAnalyzer } from './match-imports.js'; +export { default as MatchSubclassesAnalyzer } from './match-subclasses.js'; export { transformIntoIterableFindImportsOutput } from './helpers/transform-into-iterable-find-imports-output.js'; export { transformIntoIterableFindExportsOutput } from './helpers/transform-into-iterable-find-exports-output.js'; diff --git a/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js b/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js index 519ab39c0..83f336f65 100644 --- a/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js +++ b/packages-node/providence-analytics/src/program/analyzers/match-subclasses.js @@ -7,15 +7,17 @@ import { Analyzer } from '../core/Analyzer.js'; import { fromImportToExportPerspective } from '../utils/from-import-to-export-perspective.js'; /** + * @typedef {import('../../../types/index.js').ConciseMatchImportsAnalyzerResult} ConciseMatchImportsAnalyzerResult + * @typedef {import('../../../types/index.js').IterableFindExportsAnalyzerEntry} IterableFindExportsAnalyzerEntry + * @typedef {import('../../../types/index.js').IterableFindImportsAnalyzerEntry} IterableFindImportsAnalyzerEntry + * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').FindClassesAnalyzerResult} FindClassesAnalyzerResult * @typedef {import('../../../types/index.js').FindImportsAnalyzerResult} FindImportsAnalyzerResult * @typedef {import('../../../types/index.js').FindExportsAnalyzerResult} FindExportsAnalyzerResult - * @typedef {import('../../../types/index.js').IterableFindExportsAnalyzerEntry} IterableFindExportsAnalyzerEntry - * @typedef {import('../../../types/index.js').IterableFindImportsAnalyzerEntry} IterableFindImportsAnalyzerEntry - * @typedef {import('../../../types/index.js').ConciseMatchImportsAnalyzerResult} ConciseMatchImportsAnalyzerResult - * @typedef {import('../../../types/index.js').MatchImportsConfig} MatchImportsConfig - * @typedef {import('../../../types/index.js').PathRelativeFromProjectRoot} PathRelativeFromProjectRoot * @typedef {import('../../../types/index.js').PathFromSystemRoot} PathFromSystemRoot + * @typedef {import('../../../types/index.js').MatchImportsConfig} MatchImportsConfig + * @typedef {import('../../../types/index.js').AnalyzerName} AnalyzerName + * @typedef {import('../../../types/index.js').AnalyzerAst} AnalyzerAst */ function getMemberOverrides( @@ -276,13 +278,12 @@ async function matchSubclassesPostprocess( // } export default class MatchSubclassesAnalyzer extends Analyzer { - static get analyzerName() { - return 'match-subclasses'; - } + /** @type {AnalyzerName} */ + static analyzerName = 'match-subclasses'; - static get requiresReference() { - return true; - } + static requiredAst = /** @type {AnalyzerAst} */ ('babel'); + + static requiresReference = true; /** * Based on ExportsAnalyzerResult of reference project(s) (for instance lion-based-ui)