UNPKG

@rs-box/ez-flow

Version:
42 lines (41 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParallelFlow = void 0; const lib_util_1 = require("../utils/lib-util"); const parallel_work_report_1 = require("../work/parallel-work-report"); const abstract_work_flow_1 = require("./abstract-work-flow"); class ParallelFlow extends abstract_work_flow_1.AbstractWorkFlow { constructor(name, workList) { super(name); this.workList = workList; } async call(workContext) { const workReports = await Promise.all(this.workList.map(work => work.call(workContext))); return new parallel_work_report_1.ParallelWorkReport(workReports); } } exports.ParallelFlow = ParallelFlow; ParallelFlow.Builder = class { constructor() { this.name = lib_util_1.LibUtil.getUUID(); this.workList = []; } static newFlow() { return new ParallelFlow.Builder(); } withName(name) { this.name = name; return this; } addWork(work) { this.workList.push(work); return this; } withWorks(workList) { this.workList = workList; return this; } build() { return new ParallelFlow(this.name, this.workList); } };