UNPKG

@textlint/kernel

Version:
41 lines 1.26 kB
// LICENSE : MIT "use strict"; export default class MessageProcessManager { /** * Preprossor */ constructor(preProcessors) { this._preProcessors = preProcessors || []; this._processors = []; } add(messageProcessor) { this._processors.push(messageProcessor); } remove(process) { const index = this._processors.indexOf(process); if (index !== -1) { this._processors.splice(index, 1); } } /** * process `messages` with registered processes * @param {TextlintMessage[]} messages * @returns {TextlintMessage[]} */ process(messages) { const originalMessages = messages; if (this._preProcessors.length === 0) { throw new Error("pre process should be > 0"); } const preProcessedMesssages = this._preProcessors.reduce((messages, filter) => { return filter(messages); }, originalMessages); if (this._processors.length === 0) { return preProcessedMesssages; } return this._processors.reduce((messages, filter) => { return filter(messages); }, preProcessedMesssages); } } //# sourceMappingURL=MessageProcessManager.js.map