@boost/core
Version:
Robust pipeline for creating dev tools that separate logic into routines and tasks.
22 lines (21 loc) • 870 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Executor_1 = __importDefault(require("../Executor"));
class SyncExecutor extends Executor_1.default {
constructor() {
super(...arguments);
this.parallel = true;
}
/**
* Execute tasks in parallel with a value being passed to each task.
* Tasks will synchronize regardless of race conditions and errors.
*/
async run(handler, tasks, value) {
this.debug('Synchronizing %d tasks', tasks.length);
return Promise.all(tasks.map(task => handler(task, value).catch(error => error))).then(responses => Promise.resolve(this.aggregateResponse(responses)));
}
}
exports.default = SyncExecutor;