@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
26 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeLintingRule = executeLintingRule;
const linter_rules_1 = require("./linter-rules");
const flowr_search_executor_1 = require("../search/flowr-search-executor");
const flowr_search_1 = require("../search/flowr-search");
function executeLintingRule(ruleName, input, config) {
const rule = linter_rules_1.LintingRules[ruleName];
const fullConfig = { ...rule.defaultConfig, ...config };
const ruleSearch = rule.createSearch(fullConfig, input);
const searchStart = Date.now();
const searchResult = (0, flowr_search_executor_1.runSearch)(ruleSearch, input);
const searchTime = Date.now() - searchStart;
const processStart = Date.now();
const result = rule.processSearchResult(new flowr_search_1.FlowrSearchElements(searchResult), fullConfig, input);
const processTime = Date.now() - processStart;
return {
...result,
'.meta': {
...result['.meta'],
searchTimeMs: searchTime,
processTimeMs: processTime
}
};
}
//# sourceMappingURL=linter-executor.js.map