UNPKG

@textlint/kernel

Version:
51 lines 2.29 kB
// LICENSE : MIT "use strict"; import CoreTask from "./textlint-core-task"; import { getSeverity } from "../shared/rule-severity"; import { TextlintFilterRuleContextImpl } from "../context/TextlintFilterRuleContextImpl"; import { TextlintRuleContextImpl } from "../context/TextlintRuleContextImpl"; import _debug from "debug"; const debug = _debug("textlint:TextLintCoreTask"); export default class TextLintCoreTask extends CoreTask { constructor({ config, configBaseDir, fixableRuleDescriptor, filterRuleDescriptors, sourceCode }) { super(); this.config = config; this.configBaseDir = configBaseDir; this.fixableRuleDescriptor = fixableRuleDescriptor; this.filterRuleDescriptors = filterRuleDescriptors; this.sourceCode = sourceCode; this._setupRules(); } start() { this.startTraverser(this.sourceCode); } _setupRules() { // rule const sourceCode = this.sourceCode; const report = this.createReporter(sourceCode); const ignoreReport = this.createShouldIgnore(); // setup "rules" field by using a single fixerRule debug("fixerRule", this.fixableRuleDescriptor); const ruleContext = new TextlintRuleContextImpl({ ruleId: this.fixableRuleDescriptor.id, severityLevel: getSeverity(this.fixableRuleDescriptor.normalizedOptions), sourceCode, report, configBaseDir: this.configBaseDir }); this.tryToAddListenRule(this.fixableRuleDescriptor.fixer, ruleContext, this.fixableRuleDescriptor.normalizedOptions); // setup "filters" field debug("filterRules", this.filterRuleDescriptors); this.filterRuleDescriptors.descriptors.forEach((filterRuleDescriptor) => { const ruleContext = new TextlintFilterRuleContextImpl({ ruleId: filterRuleDescriptor.id, severityLevel: getSeverity(filterRuleDescriptor.normalizedOptions), sourceCode, ignoreReport, configBaseDir: this.configBaseDir }); this.tryToAddListenRule(filterRuleDescriptor.filter, ruleContext, filterRuleDescriptor.normalizedOptions); }); } } //# sourceMappingURL=fixer-task.js.map