@textlint/kernel
Version:
textlint kernel is core logic by pure JavaScript.
56 lines • 2.72 kB
JavaScript
// 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 TextlintFilterRuleContextImpl_1 = require("../context/TextlintFilterRuleContextImpl");
const TextlintRuleContextImpl_1 = require("../context/TextlintRuleContextImpl");
const debug_1 = __importDefault(require("debug"));
const debug = (0, debug_1.default)("textlint:TextLintCoreTask");
class TextLintCoreTask extends textlint_core_task_1.default {
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_1.TextlintRuleContextImpl({
ruleId: this.fixableRuleDescriptor.id,
severityLevel: (0, rule_severity_1.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_1.TextlintFilterRuleContextImpl({
ruleId: filterRuleDescriptor.id,
severityLevel: (0, rule_severity_1.getSeverity)(filterRuleDescriptor.normalizedOptions),
sourceCode,
ignoreReport,
configBaseDir: this.configBaseDir
});
this.tryToAddListenRule(filterRuleDescriptor.filter, ruleContext, filterRuleDescriptor.normalizedOptions);
});
}
}
exports.default = TextLintCoreTask;
//# sourceMappingURL=fixer-task.js.map