UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

51 lines 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.flowrScriptSummarizer = flowrScriptSummarizer; const summarizer_1 = require("../../statistics/summarizer/summarizer"); const summarizer_2 = require("../../benchmark/summarizer/summarizer"); const auto_detect_1 = require("../../statistics/summarizer/auto-detect"); const feature_1 = require("../../statistics/features/feature"); function getBenchmarkSummarizer(options, outputBase) { return new summarizer_2.BenchmarkSummarizer({ graphOutputPath: options.graph ? `${outputBase}-graph.json` : undefined, inputPath: options.input, intermediateOutputPath: outputBase, outputPath: `${outputBase}-ultimate.json`, logger: console.log }); } function getStatisticsSummarizer(options, outputBase) { return new summarizer_1.StatisticsSummarizer({ inputPath: options.input, outputPath: `${outputBase}-final`, intermediateOutputPath: `${outputBase}-intermediate/`, projectSkip: options['project-skip'], featuresToUse: feature_1.allFeatureNames, logger: console.log }); } async function retrieveSummarizer(options, outputBase) { const type = options.type === 'auto' ? await (0, auto_detect_1.detectSummarizationType)(options.input) : options.type; if (type === "benchmark" /* SummarizerType.Benchmark */) { console.log('Summarizing benchmark'); return getBenchmarkSummarizer(options, outputBase); } else if (type === "statistics" /* SummarizerType.Statistics */) { console.log('Summarizing statistics'); return getStatisticsSummarizer(options, outputBase); } else { console.error('Unknown type', type, 'either give "benchmark" or "statistics"'); process.exit(1); } } async function flowrScriptSummarizer(options) { const outputBase = (options.output ?? options.input).replace(/\.json$|\/$/, '-summary'); console.log(`Writing outputs to base ${outputBase}`); const summarizer = await retrieveSummarizer(options, outputBase); if (!options['ultimate-only']) { await summarizer.preparationPhase(options.categorize); } await summarizer.summarizePhase(); } //# sourceMappingURL=summarizer-core.js.map