UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

49 lines 2.13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResolveValueQueryDefinition = void 0; const ansi_1 = require("../../../util/ansi"); const time_1 = require("../../../util/time"); const joi_1 = __importDefault(require("joi")); const resolve_value_query_executor_1 = require("./resolve-value-query-executor"); function rValueToAscii(value) { if (value === null || value === undefined) { return 'undefined'; } else if (typeof value === 'string') { return value; } else if (typeof value === 'object') { if ('num' in value) { return value.num.toString(); } else if ('str' in value) { return `${value.quotes}${value.str}${value.quotes}`; } else { console.warn('omega lul'); return JSON.stringify(value); } } return value; } exports.ResolveValueQueryDefinition = { executor: resolve_value_query_executor_1.executeResolveValueQuery, asciiSummarizer: (formatter, _processed, queryResults, result) => { const out = queryResults; result.push(`Query: ${(0, ansi_1.bold)('resolve-value', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`); for (const [fingerprint, obj] of Object.entries(out.results)) { const { criteria } = JSON.parse(fingerprint); result.push(` ╰ Values for {${criteria.join(', ')}}`); result.push(` ╰ ${obj.values.map(v => rValueToAscii(v)).join(', ')}`); } return true; }, schema: joi_1.default.object({ type: joi_1.default.string().valid('resolve-value').required().description('The type of the query.'), criteria: joi_1.default.array().items(joi_1.default.string()).min(1).required().description('The slicing criteria to use.'), }).description('The resolve value query used to get definitions of an identifier') }; //# sourceMappingURL=resolve-value-query-format.js.map