@pogodisco/zephyr 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/workflow-composer.d.ts +5 -2
- package/dist/workflow-composer.js +44 -54
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -78,18 +78,21 @@ export declare class WorkflowBuilder<Reg extends ActionRegistry, Input = unknown
|
|
|
78
78
|
], Results & {
|
|
79
79
|
[K in ID]: StepResultFromResolve<Reg, ActionName, ResolveOut>;
|
|
80
80
|
}>;
|
|
81
|
-
seq<ID extends string, ActionName extends keyof Reg & string, ResolveOut extends ResolvedStepInput = ResolvedStepInput>(id: ID, action: ActionName, resolve?: (ctx: {
|
|
81
|
+
seq<ID extends string = string, ActionName extends keyof Reg & string = any, ResolveOut extends ResolvedStepInput = ResolvedStepInput>(id: ID, action: ActionName, resolve?: (ctx: {
|
|
82
82
|
input: Input;
|
|
83
83
|
results: Results;
|
|
84
84
|
context: Context;
|
|
85
85
|
} & CallHelpers<Reg, ActionName>) => ResolveOut, options?: {}): WorkflowBuilder<Reg, Input, Context, [...Steps, StepDef<Reg, ID, ActionName>], Results & { [K in ID]: StepResultFromResolve<Reg, ActionName, ResolveOut>; }, undefined>;
|
|
86
|
+
as<NewType>(): WorkflowBuilder<Reg, Input, Context, Steps, Steps extends [...infer Rest, infer Last] ? Last extends StepDef<Reg, infer ID, any> ? Omit<Results, ID> & {
|
|
87
|
+
[K in ID]: NewType;
|
|
88
|
+
} : Results : Results, Output>;
|
|
86
89
|
parallel<Branches extends WorkflowBuilder<Reg, Input, Context, any, any>[]>(...branches: {
|
|
87
90
|
[K in keyof Branches]: (builder: WorkflowBuilder<Reg, Input, Context, [], Results>) => Branches[K];
|
|
88
91
|
}): WorkflowBuilder<Reg, Input, Context, [
|
|
89
92
|
...Steps,
|
|
90
93
|
...(Branches[number] extends WorkflowBuilder<Reg, any, any, infer S, any> ? S : never)
|
|
91
94
|
], Results & (Branches[number] extends WorkflowBuilder<Reg, any, any, any, infer R> ? UnionToIntersection<R> : {})>;
|
|
92
|
-
join<ID extends string, ActionName extends keyof Reg & string, ResolveOut extends ResolvedStepInput = ResolvedStepInput>(id: ID, action: ActionName, resolve?: (ctx: {
|
|
95
|
+
join<ID extends string = string, ActionName extends keyof Reg & string = any, ResolveOut extends ResolvedStepInput = ResolvedStepInput>(id: ID, action: ActionName, resolve?: (ctx: {
|
|
93
96
|
input: Input;
|
|
94
97
|
results: Results;
|
|
95
98
|
context: Context;
|
|
@@ -376,6 +376,44 @@ export class WorkflowBuilder {
|
|
|
376
376
|
/* ------------------------------------------------ */
|
|
377
377
|
/* Base Step */
|
|
378
378
|
/* ------------------------------------------------ */
|
|
379
|
+
// step<
|
|
380
|
+
// ID extends string,
|
|
381
|
+
// ActionName extends keyof Reg & string,
|
|
382
|
+
// ResolveOut extends ResolvedStepInput = ResolvedStepInput,
|
|
383
|
+
// >(
|
|
384
|
+
// id: ID,
|
|
385
|
+
// action: ActionName,
|
|
386
|
+
// resolve?: (
|
|
387
|
+
// ctx: {
|
|
388
|
+
// input: Input;
|
|
389
|
+
// results: Results;
|
|
390
|
+
// context: Context;
|
|
391
|
+
// } & CallHelpers<Reg, ActionName>,
|
|
392
|
+
// ) => ResolveOut,
|
|
393
|
+
// dependsOn?: string[],
|
|
394
|
+
// options?: {},
|
|
395
|
+
// ): WorkflowBuilder<
|
|
396
|
+
// Reg,
|
|
397
|
+
// Input,
|
|
398
|
+
// Context,
|
|
399
|
+
// [...Steps, StepDef<Reg, ID, ActionName>],
|
|
400
|
+
// Results & {
|
|
401
|
+
// [K in ID]: StepResultFromResolve<Reg, ActionName, ResolveOut>;
|
|
402
|
+
// }
|
|
403
|
+
// > {
|
|
404
|
+
// const deps = dependsOn ?? [...this.frontier];
|
|
405
|
+
//
|
|
406
|
+
// this.steps.push({
|
|
407
|
+
// id,
|
|
408
|
+
// action,
|
|
409
|
+
// resolve: resolve ?? (() => ({ kind: "none" })),
|
|
410
|
+
// dependsOn: deps,
|
|
411
|
+
// });
|
|
412
|
+
//
|
|
413
|
+
// this.frontier = [id];
|
|
414
|
+
//
|
|
415
|
+
// return this as any;
|
|
416
|
+
// }
|
|
379
417
|
step(id, action, resolve, dependsOn, options) {
|
|
380
418
|
const deps = dependsOn ?? [...this.frontier];
|
|
381
419
|
this.steps.push({
|
|
@@ -394,6 +432,12 @@ export class WorkflowBuilder {
|
|
|
394
432
|
return this.step(id, action, resolve, undefined, options);
|
|
395
433
|
}
|
|
396
434
|
/* ------------------------------------------------ */
|
|
435
|
+
/* Override the result of the last step */
|
|
436
|
+
/* ------------------------------------------------ */
|
|
437
|
+
as() {
|
|
438
|
+
return this;
|
|
439
|
+
}
|
|
440
|
+
/* ------------------------------------------------ */
|
|
397
441
|
/* Parallel branches */
|
|
398
442
|
/* ------------------------------------------------ */
|
|
399
443
|
parallel(...branches) {
|
|
@@ -418,60 +462,6 @@ export class WorkflowBuilder {
|
|
|
418
462
|
/* ------------------------------------------------ */
|
|
419
463
|
/* Subflow */
|
|
420
464
|
/* ------------------------------------------------ */
|
|
421
|
-
// subflow<
|
|
422
|
-
// Prefix extends string,
|
|
423
|
-
// SubInput,
|
|
424
|
-
// SubResults,
|
|
425
|
-
// SubSteps extends StepDef<Reg, any, any>[],
|
|
426
|
-
// SubOutput,
|
|
427
|
-
// >(
|
|
428
|
-
// prefix: Prefix,
|
|
429
|
-
// workflow: WorkflowDef<Reg, SubInput, SubResults, SubSteps, SubOutput>,
|
|
430
|
-
// resolveInput?: (ctx: {
|
|
431
|
-
// input: Input;
|
|
432
|
-
// results: Results;
|
|
433
|
-
// context: Context;
|
|
434
|
-
// }) => SubInput,
|
|
435
|
-
// options?: { loop?: boolean },
|
|
436
|
-
// ): WorkflowBuilder<
|
|
437
|
-
// Reg,
|
|
438
|
-
// Input,
|
|
439
|
-
// Context,
|
|
440
|
-
// [...Steps, ...SubSteps],
|
|
441
|
-
// Results & { [K in Prefix]: SubflowResult<SubResults, SubOutput> }
|
|
442
|
-
// > {
|
|
443
|
-
// const idMap = new Map<string, string>();
|
|
444
|
-
//
|
|
445
|
-
// workflow.steps.forEach((step) => {
|
|
446
|
-
// idMap.set(step.id, `${prefix}.${step.id}`);
|
|
447
|
-
// });
|
|
448
|
-
//
|
|
449
|
-
// workflow.steps.forEach((step) => {
|
|
450
|
-
// const newStep: StepDef<Reg, any, any> = {
|
|
451
|
-
// ...step,
|
|
452
|
-
// id: idMap.get(step.id)!,
|
|
453
|
-
// dependsOn: step.dependsOn.map((d) => idMap.get(d)!),
|
|
454
|
-
// resolve: (ctx: any) => {
|
|
455
|
-
// const subInput = resolveInput ? resolveInput(ctx) : undefined;
|
|
456
|
-
// return step.resolve({
|
|
457
|
-
// input: subInput,
|
|
458
|
-
// results: ctx.results,
|
|
459
|
-
// context: ctx.context,
|
|
460
|
-
// });
|
|
461
|
-
// },
|
|
462
|
-
// ...(options ? { loop: options.loop ?? step.loop } : {}),
|
|
463
|
-
// };
|
|
464
|
-
//
|
|
465
|
-
// if (workflow.entrySteps.find((e) => e.id === step.id)) {
|
|
466
|
-
// newStep.dependsOn = [...this.frontier];
|
|
467
|
-
// }
|
|
468
|
-
//
|
|
469
|
-
// this.steps.push(newStep);
|
|
470
|
-
// });
|
|
471
|
-
//
|
|
472
|
-
// this.frontier = workflow.endSteps.map((e) => idMap.get(e.id)!);
|
|
473
|
-
// return this as any;
|
|
474
|
-
// }
|
|
475
465
|
subflow(prefix, workflow, resolveInput, options) {
|
|
476
466
|
const idMap = new Map();
|
|
477
467
|
workflow.steps.forEach((step) => {
|