UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

34 lines 1.39 kB
"use strict"; 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 objects_1 = require("../util/objects"); function executeLintingRule(ruleName, input, lintingRuleConfig) { try { const rule = linter_rules_1.LintingRules[ruleName]; const fullConfig = (0, objects_1.deepMergeObject)(rule.info.defaultConfig, lintingRuleConfig); 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(searchResult, fullConfig, input); const processTime = Date.now() - processStart; return { ...result, '.meta': { ...result['.meta'], searchTimeMs: searchTime, processTimeMs: processTime } }; } catch (e) { const msg = typeof e === 'string' ? e : e instanceof Error ? e.message : JSON.stringify(e); return { error: msg }; } } //# sourceMappingURL=linter-executor.js.map