libretto 0.5.3-experimental.3 → 0.5.3-experimental.4
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.
|
@@ -10,17 +10,12 @@ type LibrettoWorkflowContext<S = {}> = {
|
|
|
10
10
|
credentials?: Record<string, unknown>;
|
|
11
11
|
};
|
|
12
12
|
type LibrettoWorkflowHandler<Input = unknown, Output = unknown, S = {}> = (ctx: LibrettoWorkflowContext<S>, input: Input) => Promise<Output>;
|
|
13
|
-
type WorkflowFactory = {
|
|
14
|
-
<Input = unknown, Output = unknown, S = {}>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>): LibrettoWorkflow<Input, Output, S>;
|
|
15
|
-
withServices<S>(services: S): <Input = unknown, Output = unknown>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>) => LibrettoWorkflow<Input, Output, Partial<S>>;
|
|
16
|
-
};
|
|
17
13
|
declare class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
|
|
18
14
|
readonly [LIBRETTO_WORKFLOW_BRAND] = true;
|
|
19
15
|
readonly name: string;
|
|
20
16
|
private readonly handler;
|
|
21
17
|
constructor(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>);
|
|
22
18
|
run(ctx: LibrettoWorkflowContext<S>, input: Input): Promise<Output>;
|
|
23
|
-
withServices(services: S): LibrettoWorkflow<Input, Output, Partial<S>>;
|
|
24
19
|
}
|
|
25
20
|
type ExportedLibrettoWorkflow = {
|
|
26
21
|
readonly [LIBRETTO_WORKFLOW_BRAND]: true;
|
|
@@ -31,6 +26,6 @@ type WorkflowModuleExports = Record<string, unknown>;
|
|
|
31
26
|
declare function isLibrettoWorkflow(value: unknown): value is ExportedLibrettoWorkflow;
|
|
32
27
|
declare function getWorkflowsFromModuleExports(moduleExports: WorkflowModuleExports): ExportedLibrettoWorkflow[];
|
|
33
28
|
declare function getWorkflowFromModuleExports(moduleExports: WorkflowModuleExports, workflowName: string): ExportedLibrettoWorkflow | null;
|
|
34
|
-
declare
|
|
29
|
+
declare function workflow<Input = unknown, Output = unknown, S = {}>(name: string, handler: LibrettoWorkflowHandler<Input, Output, S>): LibrettoWorkflow<Input, Output, S>;
|
|
35
30
|
|
|
36
31
|
export { type ExportedLibrettoWorkflow, LIBRETTO_WORKFLOW_BRAND, LibrettoWorkflow, type LibrettoWorkflowContext, type LibrettoWorkflowHandler, getWorkflowFromModuleExports, getWorkflowsFromModuleExports, isLibrettoWorkflow, workflow };
|
|
@@ -10,18 +10,6 @@ class LibrettoWorkflow {
|
|
|
10
10
|
async run(ctx, input) {
|
|
11
11
|
return this.handler(ctx, input);
|
|
12
12
|
}
|
|
13
|
-
withServices(services) {
|
|
14
|
-
return new LibrettoWorkflow(
|
|
15
|
-
this.name,
|
|
16
|
-
async (ctx, input) => await this.handler(
|
|
17
|
-
{
|
|
18
|
-
...ctx,
|
|
19
|
-
services: Object.assign({}, services, ctx.services)
|
|
20
|
-
},
|
|
21
|
-
input
|
|
22
|
-
)
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
13
|
}
|
|
26
14
|
function isLibrettoWorkflow(value) {
|
|
27
15
|
if (!value || typeof value !== "object") return false;
|
|
@@ -65,18 +53,9 @@ function getWorkflowFromModuleExports(moduleExports, workflowName) {
|
|
|
65
53
|
}
|
|
66
54
|
return null;
|
|
67
55
|
}
|
|
68
|
-
function
|
|
56
|
+
function workflow(name, handler) {
|
|
69
57
|
return new LibrettoWorkflow(name, handler);
|
|
70
58
|
}
|
|
71
|
-
const workflow = Object.assign(createWorkflow, {
|
|
72
|
-
withServices(services) {
|
|
73
|
-
return function workflowWithServices(name, handler) {
|
|
74
|
-
return createWorkflow(name, handler).withServices(
|
|
75
|
-
services
|
|
76
|
-
);
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
59
|
export {
|
|
81
60
|
LIBRETTO_WORKFLOW_BRAND,
|
|
82
61
|
LibrettoWorkflow,
|
package/package.json
CHANGED
|
@@ -17,19 +17,6 @@ export type LibrettoWorkflowHandler<
|
|
|
17
17
|
S = {},
|
|
18
18
|
> = (ctx: LibrettoWorkflowContext<S>, input: Input) => Promise<Output>;
|
|
19
19
|
|
|
20
|
-
type WorkflowFactory = {
|
|
21
|
-
<Input = unknown, Output = unknown, S = {}>(
|
|
22
|
-
name: string,
|
|
23
|
-
handler: LibrettoWorkflowHandler<Input, Output, S>,
|
|
24
|
-
): LibrettoWorkflow<Input, Output, S>;
|
|
25
|
-
withServices<S>(
|
|
26
|
-
services: S,
|
|
27
|
-
): <Input = unknown, Output = unknown>(
|
|
28
|
-
name: string,
|
|
29
|
-
handler: LibrettoWorkflowHandler<Input, Output, S>,
|
|
30
|
-
) => LibrettoWorkflow<Input, Output, Partial<S>>;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
20
|
export class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
|
|
34
21
|
public readonly [LIBRETTO_WORKFLOW_BRAND] = true;
|
|
35
22
|
public readonly name: string;
|
|
@@ -46,20 +33,6 @@ export class LibrettoWorkflow<Input = unknown, Output = unknown, S = {}> {
|
|
|
46
33
|
async run(ctx: LibrettoWorkflowContext<S>, input: Input): Promise<Output> {
|
|
47
34
|
return this.handler(ctx, input);
|
|
48
35
|
}
|
|
49
|
-
|
|
50
|
-
withServices(services: S): LibrettoWorkflow<Input, Output, Partial<S>> {
|
|
51
|
-
return new LibrettoWorkflow<Input, Output, Partial<S>>(
|
|
52
|
-
this.name,
|
|
53
|
-
async (ctx, input) =>
|
|
54
|
-
await this.handler(
|
|
55
|
-
{
|
|
56
|
-
...ctx,
|
|
57
|
-
services: Object.assign({}, services, ctx.services) as S,
|
|
58
|
-
},
|
|
59
|
-
input,
|
|
60
|
-
),
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
36
|
}
|
|
64
37
|
|
|
65
38
|
export type ExportedLibrettoWorkflow = {
|
|
@@ -141,22 +114,9 @@ export function getWorkflowFromModuleExports(
|
|
|
141
114
|
return null;
|
|
142
115
|
}
|
|
143
116
|
|
|
144
|
-
function
|
|
117
|
+
export function workflow<Input = unknown, Output = unknown, S = {}>(
|
|
145
118
|
name: string,
|
|
146
119
|
handler: LibrettoWorkflowHandler<Input, Output, S>,
|
|
147
120
|
): LibrettoWorkflow<Input, Output, S> {
|
|
148
121
|
return new LibrettoWorkflow(name, handler);
|
|
149
122
|
}
|
|
150
|
-
|
|
151
|
-
export const workflow: WorkflowFactory = Object.assign(createWorkflow, {
|
|
152
|
-
withServices<S>(services: S) {
|
|
153
|
-
return function workflowWithServices<Input = unknown, Output = unknown>(
|
|
154
|
-
name: string,
|
|
155
|
-
handler: LibrettoWorkflowHandler<Input, Output, S>,
|
|
156
|
-
): LibrettoWorkflow<Input, Output, Partial<S>> {
|
|
157
|
-
return createWorkflow<Input, Output, S>(name, handler).withServices(
|
|
158
|
-
services,
|
|
159
|
-
);
|
|
160
|
-
};
|
|
161
|
-
},
|
|
162
|
-
});
|