UNPKG

@boost/core

Version:

Robust pipeline for creating dev tools that separate logic into routines and tasks.

22 lines (21 loc) 870 B
"use strict"; 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;