@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
36 lines • 1.98 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClusterQueryDefinition = void 0;
const ansi_1 = require("../../../util/text/ansi");
const joi_1 = __importDefault(require("joi"));
const cluster_query_executor_1 = require("./cluster-query-executor");
const dfg_1 = require("../../../util/mermaid/dfg");
const query_print_1 = require("../../query-print");
exports.ClusterQueryDefinition = {
executor: cluster_query_executor_1.executeDataflowClusterQuery,
asciiSummarizer: (formatter, processed, queryResults, result) => {
const out = queryResults;
result.push(`Query: ${(0, ansi_1.bold)('dataflow-cluster', formatter)} (${out['.meta'].timing.toFixed(0)}ms)`);
result.push(` ╰ Found ${out.clusters.length} cluster${out.clusters.length === 1 ? '' : 's'}`);
for (const cluster of out.clusters) {
const unknownSideEffects = cluster.hasUnknownSideEffects ? '(has unknown side effect)' : '';
let suffix = '';
if (formatter === ansi_1.markdownFormatter) {
suffix = `([marked](${(0, dfg_1.graphToMermaidUrl)(processed.dataflow.graph, false, new Set(cluster.members))}))`;
}
result.push(` ╰ ${unknownSideEffects} {${(0, query_print_1.summarizeIdsIfTooLong)(formatter, cluster.members)}} ${suffix}`);
}
return true;
},
schema: joi_1.default.object({
type: joi_1.default.string().valid('dataflow-cluster').required().description('The type of the query.'),
}).description('The cluster query calculates and returns all clusters in the dataflow graph.'),
flattenInvolvedNodes: (queryResults) => {
const out = queryResults;
return out.clusters.flatMap(({ members }) => members);
}
};
//# sourceMappingURL=cluster-query-format.js.map