diff --git a/data-extraction/src/js/Extractors/GetDebugVisualizationDataExtractor.ts b/data-extraction/src/js/Extractors/GetDebugVisualizationDataExtractor.ts new file mode 100644 index 0000000..0ba68b9 --- /dev/null +++ b/data-extraction/src/js/Extractors/GetDebugVisualizationDataExtractor.ts @@ -0,0 +1,27 @@ +import { ExtractedData } from "../../DataExtractionResult"; +import { DataExtractor, ExtractionCollector } from ".."; + +export class GetDebugVisualizationDataExtractor + implements DataExtractor { + readonly id = "get-debug-visualization"; + getExtractions( + data: unknown, + extractionCollector: ExtractionCollector, + evalFn: (expression: string) => TEval + ): void { + if ( + typeof data === "object" && + data && + "getDebugVisualization" in data + ) { + extractionCollector.addExtraction({ + id: this.id, + name: "getDebugVisualization", + priority: 500, + extractData() { + return (data as any).getDebugVisualization(); + }, + }); + } + } +} diff --git a/data-extraction/src/js/Extractors/index.ts b/data-extraction/src/js/Extractors/index.ts index 1afe5a5..962be70 100644 --- a/data-extraction/src/js/Extractors/index.ts +++ b/data-extraction/src/js/Extractors/index.ts @@ -1,14 +1,20 @@ import { getDataExtractorApi } from "../DataExtractorApi"; import { TypeScriptAstDataExtractor } from "./TypeScriptDataExtractors"; import { AsIsDataExtractor } from "./AsIsDataExtractor"; +import { GetDebugVisualizationDataExtractor } from "./GetDebugVisualizationDataExtractor"; -export { AsIsDataExtractor, TypeScriptAstDataExtractor }; +export { + AsIsDataExtractor, + TypeScriptAstDataExtractor, + GetDebugVisualizationDataExtractor, +}; export function registerAll() { const api = getDataExtractorApi(); for (const item of [ new TypeScriptAstDataExtractor(), new AsIsDataExtractor(), + new GetDebugVisualizationDataExtractor(), ]) { api.registerExtractor(item); }