From ffa3c3f335b12c68c9978493068af2728619d392 Mon Sep 17 00:00:00 2001 From: Henning Dieterichs Date: Sun, 6 Oct 2019 11:33:36 +0200 Subject: [PATCH] Implements GetDebugVisualizationDataExtractor --- .../GetDebugVisualizationDataExtractor.ts | 27 +++++++++++++++++++ data-extraction/src/js/Extractors/index.ts | 8 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 data-extraction/src/js/Extractors/GetDebugVisualizationDataExtractor.ts 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); }