@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
31 lines • 1.61 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.OriginQueryDefinition = void 0;
const ansi_1 = require("../../../util/text/ansi");
const time_1 = require("../../../util/text/time");
const joi_1 = __importDefault(require("joi"));
const origin_query_executor_1 = require("./origin-query-executor");
exports.OriginQueryDefinition = {
executor: origin_query_executor_1.executeResolveValueQuery,
asciiSummarizer: (formatter, _processed, queryResults, result) => {
const out = queryResults;
result.push(`Query: ${(0, ansi_1.bold)('origin', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
for (const [criteria, obj] of Object.entries(out.results)) {
result.push(` ╰ Origins for {${criteria}}`);
result.push(` ╰ ${obj?.map(o => JSON.stringify(o)).join(', ')}`);
}
return true;
},
schema: joi_1.default.object({
type: joi_1.default.string().valid('origin').required().description('The type of the query.'),
criterion: joi_1.default.string().required().description('The slicing criteria to use'),
}).description('The resolve value query used to get definitions of an identifier'),
flattenInvolvedNodes: (queryResults) => {
const out = queryResults;
return Object.entries(out.results).flatMap(([_, obj]) => obj?.map(origin => origin.id) ?? []);
}
};
//# sourceMappingURL=origin-query-format.js.map