@textlint/kernel
Version:
textlint kernel is core logic by pure JavaScript.
32 lines (30 loc) • 965 B
text/typescript
// LICENSE : MIT
;
import CoreTask, {
default as TextLintCoreTask,
IgnoreReportedMessage,
LintReportedMessage
} from "./textlint-core-task";
export default class TaskRunner {
/**
* Task and return promise
* @param {TextLintCoreTask} task
* @returns {Promise}
*/
static process(task: TextLintCoreTask): Promise<Array<LintReportedMessage | IgnoreReportedMessage>> {
return new Promise((resolve, reject) => {
const messages: Array<LintReportedMessage | IgnoreReportedMessage> = [];
task.on(CoreTask.events.message, (message) => {
messages.push(message);
});
task.on(CoreTask.events.error, (error) => {
reject(error);
});
task.on(CoreTask.events.complete, () => {
task.removeAllListeners();
resolve(messages);
});
task.start();
});
}
}