UNPKG

@textlint/kernel

Version:
57 lines 2.67 kB
// LICENSE : MIT "use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const textlint_core_task_1 = __importDefault(require("./textlint-core-task")); const rule_severity_1 = require("../shared/rule-severity"); const TextlintRuleContextImpl_1 = require("../context/TextlintRuleContextImpl"); const TextlintFilterRuleContextImpl_1 = require("../context/TextlintFilterRuleContextImpl"); class TextLintCoreTask extends textlint_core_task_1.default { constructor({ config, configBaseDir, ruleDescriptors, filterRuleDescriptors: filterRuleDescriptors, sourceCode }) { super(); this.config = config; this.configBaseDir = configBaseDir; this.ruleDescriptors = ruleDescriptors; 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 // filter duplicated rules for improving experience // see https://github.com/textlint/textlint/issues/219 this.ruleDescriptors.lintableDescriptors.forEach((ruleDescriptor) => { const ruleOptions = ruleDescriptor.normalizedOptions; const ruleContext = new TextlintRuleContextImpl_1.TextlintRuleContextImpl({ ruleId: ruleDescriptor.id, severityLevel: (0, rule_severity_1.getSeverity)(ruleOptions), sourceCode, report, configBaseDir: this.configBaseDir }); this.tryToAddListenRule(ruleDescriptor.linter, ruleContext, ruleOptions); }); // setup "filters" field this.filterRuleDescriptors.descriptors.forEach((filterDescriptor) => { const ruleContext = new TextlintFilterRuleContextImpl_1.TextlintFilterRuleContextImpl({ ruleId: filterDescriptor.id, sourceCode, ignoreReport, configBaseDir: this.configBaseDir, severityLevel: (0, rule_severity_1.getSeverity)(filterDescriptor.normalizedOptions) }); this.tryToAddListenRule(filterDescriptor.filter, ruleContext, filterDescriptor.normalizedOptions); }); } } exports.default = TextLintCoreTask; //# sourceMappingURL=linter-task.js.map