UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

44 lines 2.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LinterQueryDefinition = void 0; const joi_1 = __importDefault(require("joi")); const linter_query_executor_1 = require("./linter-query-executor"); const linter_rules_1 = require("../../../linter/linter-rules"); const linter_format_1 = require("../../../linter/linter-format"); const ansi_1 = require("../../../util/text/ansi"); const time_1 = require("../../../util/text/time"); const doc_code_1 = require("../../../documentation/doc-util/doc-code"); exports.LinterQueryDefinition = { executor: linter_query_executor_1.executeLinterQuery, asciiSummarizer: (formatter, _processed, queryResults, result) => { const out = queryResults; result.push(`Query: ${(0, ansi_1.bold)('linter', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`); for (const [ruleName, results] of Object.entries(out.results)) { const rule = linter_rules_1.LintingRules[ruleName]; result.push(` ╰ ${ruleName}:`); for (const certainty of [linter_format_1.LintingCertainty.Definitely, linter_format_1.LintingCertainty.Maybe]) { const certaintyResults = results.results.filter(r => r.certainty === certainty); if (certaintyResults.length) { result.push(` ╰ ${certainty}:`); for (const res of certaintyResults) { result.push(` ╰ ${rule.prettyPrint(res)}`); } } } result.push(` ╰ _Metadata_: ${(0, doc_code_1.codeInline)(JSON.stringify(results['.meta']))}`); } return true; }, schema: joi_1.default.object({ type: joi_1.default.string().valid('linter').required().description('The type of the query.'), rules: joi_1.default.array().items(joi_1.default.string().valid(...Object.keys(linter_rules_1.LintingRules)), joi_1.default.object({ name: joi_1.default.string().valid(...Object.keys(linter_rules_1.LintingRules)).required(), config: joi_1.default.object() })).description('The rules to lint for. If unset, all rules will be included.') }).description('The linter query lints for the given set of rules and returns the result.'), flattenInvolvedNodes: () => [] }; //# sourceMappingURL=linter-query-format.js.map