UNPKG

@textlint/kernel

Version:
43 lines 1.88 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 linter_task_1 = __importDefault(require("../task/linter-task")); const task_runner_1 = __importDefault(require("../task/task-runner")); const invariant_1 = require("../util/invariant"); class LinterProcessor { /** * @param {Processor} processor * @param {MessageProcessManager} messageProcessManager */ constructor(processor, messageProcessManager) { this.processor = processor; this.messageProcessManager = messageProcessManager; } /** * Run linter process */ async process({ config, configBaseDir, ruleDescriptors, filterRuleDescriptors, sourceCode }) { const { preProcess, postProcess } = this.processor.processor(sourceCode.ext); (0, invariant_1.invariant)(typeof preProcess === "function" && typeof postProcess === "function", "processor should implement {preProcess, postProcess}"); const task = new linter_task_1.default({ config, ruleDescriptors, filterRuleDescriptors, sourceCode, configBaseDir }); const messages = await task_runner_1.default.process(task); const result = await postProcess(messages, sourceCode.filePath); result.messages = this.messageProcessManager.process(result.messages); if (result.filePath == null) { result.filePath = `<Unknown{sourceCode.ext}>`; } (0, invariant_1.invariant)(result.filePath && result.messages.length >= 0, "postProcess should return { messages, filePath } "); return result; } } exports.default = LinterProcessor; //# sourceMappingURL=linter-processor.js.map