@effect/workflow 0.1.1 → 0.1.3

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.
Files changed (38) hide show
  1. package/README.md +13 -1
  2. package/WorkflowProxy/package.json +6 -0
  3. package/WorkflowProxyServer/package.json +6 -0
  4. package/dist/cjs/Activity.js +6 -11
  5. package/dist/cjs/Activity.js.map +1 -1
  6. package/dist/cjs/Workflow.js +37 -6
  7. package/dist/cjs/Workflow.js.map +1 -1
  8. package/dist/cjs/WorkflowProxy.js +111 -0
  9. package/dist/cjs/WorkflowProxy.js.map +1 -0
  10. package/dist/cjs/WorkflowProxyServer.js +61 -0
  11. package/dist/cjs/WorkflowProxyServer.js.map +1 -0
  12. package/dist/cjs/index.js +5 -1
  13. package/dist/dts/Activity.d.ts +1 -17
  14. package/dist/dts/Activity.d.ts.map +1 -1
  15. package/dist/dts/Workflow.d.ts +85 -1
  16. package/dist/dts/Workflow.d.ts.map +1 -1
  17. package/dist/dts/WorkflowProxy.d.ts +90 -0
  18. package/dist/dts/WorkflowProxy.d.ts.map +1 -0
  19. package/dist/dts/WorkflowProxyServer.d.ts +27 -0
  20. package/dist/dts/WorkflowProxyServer.d.ts.map +1 -0
  21. package/dist/dts/index.d.ts +8 -0
  22. package/dist/dts/index.d.ts.map +1 -1
  23. package/dist/esm/Activity.js +4 -10
  24. package/dist/esm/Activity.js.map +1 -1
  25. package/dist/esm/Workflow.js +36 -4
  26. package/dist/esm/Workflow.js.map +1 -1
  27. package/dist/esm/WorkflowProxy.js +101 -0
  28. package/dist/esm/WorkflowProxy.js.map +1 -0
  29. package/dist/esm/WorkflowProxyServer.js +52 -0
  30. package/dist/esm/WorkflowProxyServer.js.map +1 -0
  31. package/dist/esm/index.js +8 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/package.json +20 -2
  34. package/src/Activity.ts +6 -34
  35. package/src/Workflow.ts +155 -2
  36. package/src/WorkflowProxy.ts +178 -0
  37. package/src/WorkflowProxyServer.ts +103 -0
  38. package/src/index.ts +10 -0
@@ -1,3 +1,8 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Cause from "effect/Cause";
5
+ import * as Context from "effect/Context";
1
6
  import * as Effect from "effect/Effect";
2
7
  import * as Exit from "effect/Exit";
3
8
  import * as Layer from "effect/Layer";
@@ -6,6 +11,7 @@ import * as PrimaryKey from "effect/PrimaryKey";
6
11
  import * as Schedule from "effect/Schedule";
7
12
  import * as Schema from "effect/Schema";
8
13
  import type * as AST from "effect/SchemaAST";
14
+ import type * as Scope from "effect/Scope";
9
15
  import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.js";
10
16
  /**
11
17
  * @since 1.0.0
@@ -27,6 +33,15 @@ export interface Workflow<Name extends string, Payload extends AnyStructSchema,
27
33
  readonly payloadSchema: Payload;
28
34
  readonly successSchema: Success;
29
35
  readonly errorSchema: Error;
36
+ readonly annotations: Context.Context<never>;
37
+ /**
38
+ * Add an annotation to the workflow.
39
+ */
40
+ annotate<I, S>(tag: Context.Tag<I, S>, value: S): Workflow<Name, Payload, Success, Error>;
41
+ /**
42
+ * Add the annotations from a Context object to the workflow.
43
+ */
44
+ annotateContext<I>(context: Context.Context<I>): Workflow<Name, Payload, Success, Error>;
30
45
  /**
31
46
  * Execute the workflow with the given payload.
32
47
  */
@@ -41,11 +56,23 @@ export interface Workflow<Name extends string, Payload extends AnyStructSchema,
41
56
  * Create a layer that registers the workflow and provides an effect to
42
57
  * execute it.
43
58
  */
44
- readonly toLayer: <R>(execute: (payload: Payload["Type"], executionId: string) => Effect.Effect<Success["Type"], Error["Type"], R>) => Layer.Layer<Registration<Name> | WorkflowEngine, never, WorkflowEngine | Exclude<R, WorkflowEngine | WorkflowInstance> | Payload["Context"] | Success["Context"] | Error["Context"]>;
59
+ readonly toLayer: <R>(execute: (payload: Payload["Type"], executionId: string) => Effect.Effect<Success["Type"], Error["Type"], R>) => Layer.Layer<Registration<Name> | WorkflowEngine, never, WorkflowEngine | Exclude<R, WorkflowEngine | WorkflowInstance | Execution<Name> | Scope.Scope> | Payload["Context"] | Success["Context"] | Error["Context"]>;
45
60
  /**
46
61
  * For the given payload, compute the deterministic execution ID.
47
62
  */
48
63
  readonly executionId: (payload: Schema.Simplify<Schema.Struct.Constructor<Payload["fields"]>>) => Effect.Effect<string>;
64
+ /**
65
+ * Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
66
+ * called if the entire workflow fails, allowing you to perform cleanup or
67
+ * other actions based on the success value and the cause of the workflow failure.
68
+ *
69
+ * NOTE: Compensation will not work for nested activities. Compensation
70
+ * finalizers are only registered for top-level effects in the workflow.
71
+ */
72
+ readonly withCompensation: {
73
+ <A, R2>(compensation: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>): <E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | R2 | WorkflowInstance | Execution<Name> | Scope.Scope>;
74
+ <A, E, R, R2>(effect: Effect.Effect<A, E, R>, compensation: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>): Effect.Effect<A, E, R | R2 | WorkflowInstance | Execution<Name> | Scope.Scope>;
75
+ };
49
76
  }
50
77
  /**
51
78
  * @since 1.0.0
@@ -78,6 +105,14 @@ export interface Registration<Name extends string> {
78
105
  readonly _: unique symbol;
79
106
  readonly name: Name;
80
107
  }
108
+ /**
109
+ * @since 1.0.0
110
+ * @category Models
111
+ */
112
+ export interface Execution<Name extends string> {
113
+ readonly _: unique symbol;
114
+ readonly name: Name;
115
+ }
81
116
  /**
82
117
  * @since 1.0.0
83
118
  * @category Models
@@ -88,8 +123,19 @@ export interface Any {
88
123
  readonly payloadSchema: AnyStructSchema;
89
124
  readonly successSchema: Schema.Schema.Any;
90
125
  readonly errorSchema: Schema.Schema.All;
126
+ readonly annotations: Context.Context<never>;
91
127
  readonly executionId: (payload: any) => Effect.Effect<string>;
92
128
  }
129
+ /**
130
+ * @since 1.0.0
131
+ * @category Models
132
+ */
133
+ export type Registrations<Workflows extends Any> = Workflows extends Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? Registration<_Name> : never;
134
+ /**
135
+ * @since 1.0.0
136
+ * @category Models
137
+ */
138
+ export type Requirements<Workflows extends Any> = Workflows extends Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? _Payload["Context"] | _Success["Context"] | _Error["Context"] : never;
93
139
  /**
94
140
  * @since 1.0.0
95
141
  * @category Constructors
@@ -101,6 +147,7 @@ export declare const make: <const Name extends string, Payload extends Schema.St
101
147
  readonly success?: Success;
102
148
  readonly error?: Error;
103
149
  readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined;
150
+ readonly annotations?: Context.Context<never>;
104
151
  }) => Workflow<Name, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error>;
105
152
  /**
106
153
  * @since 1.0.0
@@ -207,5 +254,42 @@ export declare const Result: <Success extends Schema.Schema.Any, Error extends S
207
254
  * @category Result
208
255
  */
209
256
  export declare const intoResult: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<Result<A, E>, never, R | WorkflowInstance>;
257
+ /**
258
+ * Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
259
+ * called if the entire workflow fails, allowing you to perform cleanup or
260
+ * other actions based on the success value and the cause of the workflow failure.
261
+ *
262
+ * NOTE: Compensation will not work for nested activities. Compensation
263
+ * finalizers are only registered for top-level effects in the workflow.
264
+ *
265
+ * @since 1.0.0
266
+ * @category Compensation
267
+ */
268
+ export declare const withCompensation: {
269
+ /**
270
+ * Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
271
+ * called if the entire workflow fails, allowing you to perform cleanup or
272
+ * other actions based on the success value and the cause of the workflow failure.
273
+ *
274
+ * NOTE: Compensation will not work for nested activities. Compensation
275
+ * finalizers are only registered for top-level effects in the workflow.
276
+ *
277
+ * @since 1.0.0
278
+ * @category Compensation
279
+ */
280
+ <A, R2>(compensation: (value: A, cause: Cause.Cause<unknown>) => Effect.Effect<void, never, R2>): <E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | R2 | WorkflowInstance | Scope.Scope>;
281
+ /**
282
+ * Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
283
+ * called if the entire workflow fails, allowing you to perform cleanup or
284
+ * other actions based on the success value and the cause of the workflow failure.
285
+ *
286
+ * NOTE: Compensation will not work for nested activities. Compensation
287
+ * finalizers are only registered for top-level effects in the workflow.
288
+ *
289
+ * @since 1.0.0
290
+ * @category Compensation
291
+ */
292
+ <A, E, R, R2>(effect: Effect.Effect<A, E, R>, compensation: (value: A, cause: Cause.Cause<unknown>) => Effect.Effect<void, never, R2>): Effect.Effect<A, E, R | R2 | WorkflowInstance | Scope.Scope>;
293
+ };
210
294
  export {};
211
295
  //# sourceMappingURL=Workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../src/Workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../src/Workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint";
5
+ import * as HttpApiGroup from "@effect/platform/HttpApiGroup";
6
+ import * as Rpc from "@effect/rpc/Rpc";
7
+ import * as RpcGroup from "@effect/rpc/RpcGroup";
8
+ import type { NonEmptyReadonlyArray } from "effect/Array";
9
+ import type * as Workflow from "./Workflow.js";
10
+ /**
11
+ * Derives an `RpcGroup` from a list of workflows.
12
+ *
13
+ * ```ts
14
+ * import { RpcServer } from "@effect/rpc"
15
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
16
+ * import { Layer, Schema } from "effect"
17
+ *
18
+ * const EmailWorkflow = Workflow.make({
19
+ * name: "EmailWorkflow",
20
+ * payload: {
21
+ * id: Schema.String,
22
+ * to: Schema.String
23
+ * },
24
+ * idempotencyKey: ({ id }) => id
25
+ * })
26
+ *
27
+ * const myWorkflows = [EmailWorkflow] as const
28
+ *
29
+ * // Use WorkflowProxy.toRpcGroup to create a `RpcGroup` from the
30
+ * // workflows
31
+ * class MyRpcs extends WorkflowProxy.toRpcGroup(myWorkflows) {}
32
+ *
33
+ * // Use WorkflowProxyServer.layerRpcHandlers to create a layer that implements
34
+ * // the rpc handlers
35
+ * const ApiLayer = RpcServer.layer(MyRpcs).pipe(
36
+ * Layer.provide(WorkflowProxyServer.layerRpcHandlers(myWorkflows))
37
+ * )
38
+ * ```
39
+ *
40
+ * @since 1.0.0
41
+ * @category Constructors
42
+ */
43
+ export declare const toRpcGroup: <const Workflows extends NonEmptyReadonlyArray<Workflow.Any>, const Prefix extends string = "">(workflows: Workflows, options?: {
44
+ readonly prefix?: Prefix | undefined;
45
+ }) => RpcGroup.RpcGroup<ConvertRpcs<Workflows[number], Prefix>>;
46
+ /**
47
+ * @since 1.0.0
48
+ */
49
+ export type ConvertRpcs<Workflows extends Workflow.Any, Prefix extends string> = Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? Rpc.Rpc<`${Prefix}${_Name}`, _Payload, _Success, _Error> | Rpc.Rpc<`${Prefix}${_Name}Discard`, _Payload> : never;
50
+ /**
51
+ * Derives an `HttpApiGroup` from a list of workflows.
52
+ *
53
+ * ```ts
54
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
55
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
56
+ * import { Layer, Schema } from "effect"
57
+ *
58
+ * const EmailWorkflow = Workflow.make({
59
+ * name: "EmailWorkflow",
60
+ * payload: {
61
+ * id: Schema.String,
62
+ * to: Schema.String
63
+ * },
64
+ * idempotencyKey: ({ id }) => id
65
+ * })
66
+ *
67
+ * const myWorkflows = [EmailWorkflow] as const
68
+ *
69
+ * // Use WorkflowProxy.toHttpApiGroup to create a `HttpApiGroup` from the
70
+ * // workflows
71
+ * class MyApi extends HttpApi.make("api")
72
+ * .add(WorkflowProxy.toHttpApiGroup("workflows", myWorkflows))
73
+ * {}
74
+ *
75
+ * // Use WorkflowProxyServer.layerHttpApi to create a layer that implements the
76
+ * // workflows HttpApiGroup
77
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
78
+ * Layer.provide(WorkflowProxyServer.layerHttpApi(MyApi, "workflows", myWorkflows))
79
+ * )
80
+ * ```
81
+ *
82
+ * @since 1.0.0
83
+ * @category Constructors
84
+ */
85
+ export declare const toHttpApiGroup: <const Name extends string, const Workflows extends NonEmptyReadonlyArray<Workflow.Any>>(name: Name, workflows: Workflows) => HttpApiGroup.HttpApiGroup<Name, ConvertHttpApi<Workflows[number]>>;
86
+ /**
87
+ * @since 1.0.0
88
+ */
89
+ export type ConvertHttpApi<Workflows extends Workflow.Any> = Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? HttpApiEndpoint.HttpApiEndpoint<_Name, "POST", never, never, _Payload["Type"], never, _Success["Type"], _Error["Type"], _Payload["Context"] | _Success["Context"], _Error["Context"]> | HttpApiEndpoint.HttpApiEndpoint<`${_Name}Discard`, "POST", never, never, _Payload["Type"], never, void, never, _Payload["Context"]> : never;
90
+ //# sourceMappingURL=WorkflowProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxy.d.ts","sourceRoot":"","sources":["../../src/WorkflowProxy.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAA;AACnE,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,KAAK,QAAQ,MAAM,eAAe,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,CAAC,SAAS,SAAS,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC3D,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,EAAE,EAEhC,WAAW,SAAS,EACpB,UAAU;IACR,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KACA,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAgB1D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,SAAS,MAAM,IAAI,SAAS,SAAS,QAAQ,CAAC,QAAQ,CAClH,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,CACb,GACK,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,GACxD,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,SAAS,EAAE,QAAQ,CAAC,GAC/C,KAAK,CAAA;AAET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,CAAC,SAAS,SAAS,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnH,MAAM,IAAI,EACV,WAAW,SAAS,KACnB,YAAY,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAiBnE,CAAA;AAQD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,IAAI,SAAS,SAAS,QAAQ,CAAC,QAAQ,CAC9F,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,CACb,GACK,eAAe,CAAC,eAAe,CAC/B,KAAK,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,EAChB,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,EAChB,MAAM,CAAC,MAAM,CAAC,EACd,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,EACzC,MAAM,CAAC,SAAS,CAAC,CAClB,GACC,eAAe,CAAC,eAAe,CAC/B,GAAG,KAAK,SAAS,EACjB,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,CAAC,MAAM,CAAC,EAChB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,SAAS,CAAC,CACpB,GACH,KAAK,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as HttpApi from "@effect/platform/HttpApi";
5
+ import type { ApiGroup, HttpApiGroup } from "@effect/platform/HttpApiGroup";
6
+ import type * as Rpc from "@effect/rpc/Rpc";
7
+ import type { NonEmptyReadonlyArray } from "effect/Array";
8
+ import * as Layer from "effect/Layer";
9
+ import type * as Workflow from "./Workflow.js";
10
+ import type { WorkflowEngine } from "./WorkflowEngine.js";
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Layers
14
+ */
15
+ export declare const layerHttpApi: <ApiId extends string, Groups extends HttpApiGroup.Any, ApiE, ApiR, Name extends HttpApiGroup.Name<Groups>, const Workflows extends NonEmptyReadonlyArray<Workflow.Any>>(api: HttpApi.HttpApi<ApiId, Groups, ApiE, ApiR>, name: Name, workflows: Workflows) => Layer.Layer<ApiGroup<ApiId, Name>, never, WorkflowEngine | Workflow.Registrations<Workflows[number]> | Workflow.Requirements<Workflows[number]>>;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category Layers
19
+ */
20
+ export declare const layerRpcHandlers: <const Workflows extends NonEmptyReadonlyArray<Workflow.Any>, const Prefix extends string = "">(workflows: Workflows, options?: {
21
+ readonly prefix?: Prefix;
22
+ }) => Layer.Layer<RpcHandlers<Workflows[number], Prefix>, never, WorkflowEngine | Workflow.Registrations<Workflows[number]> | Workflow.Requirements<Workflows[number]>>;
23
+ /**
24
+ * @since 1.0.0
25
+ */
26
+ export type RpcHandlers<Workflows extends Workflow.Any, Prefix extends string> = Workflows extends Workflow.Workflow<infer _Name, infer _Payload, infer _Success, infer _Error> ? Rpc.Handler<`${Prefix}${_Name}`> | Rpc.Handler<`${Prefix}${_Name}Discard`> : never;
27
+ //# sourceMappingURL=WorkflowProxyServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxyServer.d.ts","sourceRoot":"","sources":["../../src/WorkflowProxyServer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,0BAA0B,CAAA;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,QAAQ,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,SAAS,MAAM,EACpB,MAAM,SAAS,YAAY,CAAC,GAAG,EAC/B,IAAI,EACJ,IAAI,EACJ,IAAI,SAAS,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EACtC,KAAK,CAAC,SAAS,SAAS,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAE3D,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAC/C,MAAM,IAAI,EACV,WAAW,SAAS,KACnB,KAAK,CAAC,KAAK,CACZ,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,EACrB,KAAK,EACL,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAqBpG,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,CAAC,SAAS,SAAS,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAC3D,KAAK,CAAC,MAAM,SAAS,MAAM,GAAG,EAAE,EAChC,WAAW,SAAS,EAAE,UAAU;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,KAAG,KAAK,CAAC,KAAK,CACb,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EACtC,KAAK,EACL,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAwBlG,CAAA;AAEL;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,MAAM,SAAS,MAAM,IAAI,SAAS,SAAS,QAAQ,CAAC,QAAQ,CAClH,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,QAAQ,EACd,MAAM,MAAM,CACb,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,KAAK,SAAS,CAAC,GAC1E,KAAK,CAAA"}
@@ -18,4 +18,12 @@ export * as Workflow from "./Workflow.js";
18
18
  * @since 1.0.0
19
19
  */
20
20
  export * as WorkflowEngine from "./WorkflowEngine.js";
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * as WorkflowProxy from "./WorkflowProxy.js";
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export * as WorkflowProxyServer from "./WorkflowProxyServer.js";
21
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAEjD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
1
4
  import * as Context from "effect/Context";
2
5
  import * as Effect from "effect/Effect";
3
6
  import * as Effectable from "effect/Effectable";
@@ -29,6 +32,7 @@ export const make = options => {
29
32
  failure: errorSchema,
30
33
  defect: Schema.Defect
31
34
  }),
35
+ execute: options.execute,
32
36
  executeEncoded: Effect.matchEffect(options.execute, {
33
37
  onFailure: error => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema)(error)), Effect.fail),
34
38
  onSuccess: value => Effect.orDie(Schema.encode(self.successSchema)(value))
@@ -48,16 +52,6 @@ export const retry = /*#__PURE__*/dual(2, (effect, options) => Effect.suspend(()
48
52
  let attempt = 1;
49
53
  return Effect.suspend(() => Effect.provideService(effect, CurrentAttempt, attempt++)).pipe(Effect.retry(options));
50
54
  }));
51
- /**
52
- * @since 1.0.0
53
- * @category Error handling
54
- */
55
- export const onError = /*#__PURE__*/dual(2, (self, onError) => make({
56
- name: `${self.name}/onError`,
57
- success: self.successSchema,
58
- error: self.errorSchema,
59
- execute: Effect.onError(self, onError)
60
- }));
61
55
  /**
62
56
  * @since 1.0.0
63
57
  * @category Attempts
@@ -1 +1 @@
1
- {"version":3,"file":"Activity.js","names":["Context","Effect","Effectable","dual","Schema","makeHashDigest","TypeId","Symbol","for","make","options","successSchema","success","Void","errorSchema","error","Never","execute","self","CommitPrototype","name","exitSchema","ExitFromSelf","failure","defect","Defect","executeEncoded","matchEffect","onFailure","flatMap","orDie","encode","fail","onSuccess","value","commit","makeExecute","retry","effect","suspend","attempt","provideService","CurrentAttempt","pipe","onError","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","executionId","EngineTag","GenericTag","fnUntraced","activity","engine","result","activityExecute","_tag","suspended","interrupt","exit","decode"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Activity.js","names":["Context","Effect","Effectable","dual","Schema","makeHashDigest","TypeId","Symbol","for","make","options","successSchema","success","Void","errorSchema","error","Never","execute","self","CommitPrototype","name","exitSchema","ExitFromSelf","failure","defect","Defect","executeEncoded","matchEffect","onFailure","flatMap","orDie","encode","fail","onSuccess","value","commit","makeExecute","retry","effect","suspend","attempt","provideService","CurrentAttempt","pipe","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","executionId","EngineTag","GenericTag","fnUntraced","activity","engine","result","activityExecute","_tag","suspended","interrupt","exit","decode"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,8 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
1
  import * as Context from "effect/Context";
5
2
  import * as Data from "effect/Data";
6
3
  import * as Effect from "effect/Effect";
7
4
  import * as Exit from "effect/Exit";
5
+ import { dual } from "effect/Function";
8
6
  import * as Layer from "effect/Layer";
9
7
  import * as Predicate from "effect/Predicate";
10
8
  import * as PrimaryKey from "effect/PrimaryKey";
@@ -31,6 +29,19 @@ export const make = options => {
31
29
  payloadSchema: Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload),
32
30
  successSchema: options.success ?? Schema.Void,
33
31
  errorSchema: options.error ?? Schema.Never,
32
+ annotations: options.annotations ?? Context.empty(),
33
+ annotate(tag, value) {
34
+ return make({
35
+ ...options,
36
+ annotations: Context.add(self.annotations, tag, value)
37
+ });
38
+ },
39
+ annotateContext(context) {
40
+ return make({
41
+ ...options,
42
+ annotations: Context.merge(self.annotations, context)
43
+ });
44
+ },
34
45
  execute: Effect.fnUntraced(function* (fields, opts) {
35
46
  const payload = self.payloadSchema.make(fields);
36
47
  const engine = yield* EngineTag;
@@ -79,7 +90,8 @@ export const make = options => {
79
90
  yield* engine.register(self, (payload, executionId) => execute(payload, executionId).pipe(Effect.provide(context)));
80
91
  return EngineTag.context(engine);
81
92
  })),
82
- executionId: payload => makeExecutionId(self.payloadSchema.make(payload))
93
+ executionId: payload => makeExecutionId(self.payloadSchema.make(payload)),
94
+ withCompensation
83
95
  };
84
96
  return self;
85
97
  };
@@ -180,4 +192,24 @@ export const intoResult = effect => Effect.uninterruptibleMask(restore => Effect
180
192
  });
181
193
  }
182
194
  })));
195
+ /**
196
+ * Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
197
+ * called if the entire workflow fails, allowing you to perform cleanup or
198
+ * other actions based on the success value and the cause of the workflow failure.
199
+ *
200
+ * NOTE: Compensation will not work for nested activities. Compensation
201
+ * finalizers are only registered for top-level effects in the workflow.
202
+ *
203
+ * @since 1.0.0
204
+ * @category Compensation
205
+ */
206
+ export const withCompensation = /*#__PURE__*/dual(2, (effect, compensation) => Effect.uninterruptibleMask(restore => Effect.contextWithEffect(context => {
207
+ const instance = Context.get(context, InstanceTag);
208
+ return Effect.tap(restore(effect), value => Effect.addFinalizer(exit => {
209
+ if (Exit.isSuccess(exit) || instance.suspended) {
210
+ return Effect.void;
211
+ }
212
+ return compensation(value, exit.cause);
213
+ }));
214
+ })));
183
215
  //# sourceMappingURL=Workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Workflow.js","names":["Context","Data","Effect","Exit","Layer","Predicate","PrimaryKey","Schedule","Schema","makeHashDigest","TypeId","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","suspendedRetrySchedule","defaultRetrySchedule","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","discard","workflow","sleep","result","_tag","exit","driver","next","pipe","catchAll","dieMessage","withSpan","captureStackTrace","interrupt","effect","attributes","toLayer","effectContext","gen","context","get","register","provide","exponential","union","spaced","fromTaggedRequest","schema","failure","value","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","SchemaFromSelf","_options","declare","SchemaEncoded","tag","defect","Defect","transform","decode","fromA","encode","toI","Suspended","Result","Union","intoResult","uninterruptibleMask","restore","withFiberRuntime","fiber","matchCause","onSuccess","succeed","onFailure","cause","instance","unsafeGet","currentContext","suspended","failCause"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Workflow.js","names":["Context","Data","Effect","Exit","dual","Layer","Predicate","PrimaryKey","Schedule","Schema","makeHashDigest","TypeId","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","suspendedRetrySchedule","defaultRetrySchedule","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","annotations","empty","annotate","tag","value","add","annotateContext","context","merge","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","discard","workflow","sleep","result","_tag","exit","driver","next","pipe","catchAll","dieMessage","withSpan","captureStackTrace","interrupt","effect","attributes","toLayer","effectContext","gen","get","register","provide","withCompensation","exponential","union","spaced","fromTaggedRequest","schema","failure","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","SchemaFromSelf","_options","declare","SchemaEncoded","defect","Defect","transform","decode","fromA","encode","toI","Suspended","Result","Union","intoResult","uninterruptibleMask","restore","withFiberRuntime","fiber","matchCause","onSuccess","succeed","onFailure","cause","instance","unsafeGet","currentContext","suspended","failCause","compensation","contextWithEffect","tap","addFinalizer","isSuccess","void"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as HttpApiEndpoint from "@effect/platform/HttpApiEndpoint";
5
+ import * as HttpApiGroup from "@effect/platform/HttpApiGroup";
6
+ import * as Rpc from "@effect/rpc/Rpc";
7
+ import * as RpcGroup from "@effect/rpc/RpcGroup";
8
+ /**
9
+ * Derives an `RpcGroup` from a list of workflows.
10
+ *
11
+ * ```ts
12
+ * import { RpcServer } from "@effect/rpc"
13
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
14
+ * import { Layer, Schema } from "effect"
15
+ *
16
+ * const EmailWorkflow = Workflow.make({
17
+ * name: "EmailWorkflow",
18
+ * payload: {
19
+ * id: Schema.String,
20
+ * to: Schema.String
21
+ * },
22
+ * idempotencyKey: ({ id }) => id
23
+ * })
24
+ *
25
+ * const myWorkflows = [EmailWorkflow] as const
26
+ *
27
+ * // Use WorkflowProxy.toRpcGroup to create a `RpcGroup` from the
28
+ * // workflows
29
+ * class MyRpcs extends WorkflowProxy.toRpcGroup(myWorkflows) {}
30
+ *
31
+ * // Use WorkflowProxyServer.layerRpcHandlers to create a layer that implements
32
+ * // the rpc handlers
33
+ * const ApiLayer = RpcServer.layer(MyRpcs).pipe(
34
+ * Layer.provide(WorkflowProxyServer.layerRpcHandlers(myWorkflows))
35
+ * )
36
+ * ```
37
+ *
38
+ * @since 1.0.0
39
+ * @category Constructors
40
+ */
41
+ export const toRpcGroup = (workflows, options) => {
42
+ const prefix = options?.prefix ?? "";
43
+ const rpcs = [];
44
+ for (const workflow of workflows) {
45
+ rpcs.push(Rpc.make(`${prefix}${workflow.name}`, {
46
+ payload: workflow.payloadSchema,
47
+ error: workflow.errorSchema,
48
+ success: workflow.successSchema
49
+ }).annotateContext(workflow.annotations), Rpc.make(`${prefix}${workflow.name}Discard`, {
50
+ payload: workflow.payloadSchema
51
+ }).annotateContext(workflow.annotations));
52
+ }
53
+ return RpcGroup.make(...rpcs);
54
+ };
55
+ /**
56
+ * Derives an `HttpApiGroup` from a list of workflows.
57
+ *
58
+ * ```ts
59
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
60
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
61
+ * import { Layer, Schema } from "effect"
62
+ *
63
+ * const EmailWorkflow = Workflow.make({
64
+ * name: "EmailWorkflow",
65
+ * payload: {
66
+ * id: Schema.String,
67
+ * to: Schema.String
68
+ * },
69
+ * idempotencyKey: ({ id }) => id
70
+ * })
71
+ *
72
+ * const myWorkflows = [EmailWorkflow] as const
73
+ *
74
+ * // Use WorkflowProxy.toHttpApiGroup to create a `HttpApiGroup` from the
75
+ * // workflows
76
+ * class MyApi extends HttpApi.make("api")
77
+ * .add(WorkflowProxy.toHttpApiGroup("workflows", myWorkflows))
78
+ * {}
79
+ *
80
+ * // Use WorkflowProxyServer.layerHttpApi to create a layer that implements the
81
+ * // workflows HttpApiGroup
82
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
83
+ * Layer.provide(WorkflowProxyServer.layerHttpApi(MyApi, "workflows", myWorkflows))
84
+ * )
85
+ * ```
86
+ *
87
+ * @since 1.0.0
88
+ * @category Constructors
89
+ */
90
+ export const toHttpApiGroup = (name, workflows) => {
91
+ let group = HttpApiGroup.make(name);
92
+ for (const workflow of workflows) {
93
+ const path = `/${tagToPath(workflow.name)}`;
94
+ group = group.add(HttpApiEndpoint.post(workflow.name, path).setPayload(workflow.payloadSchema).addSuccess(workflow.successSchema).addError(workflow.errorSchema).annotateContext(workflow.annotations)).add(HttpApiEndpoint.post(workflow.name + "Discard", `${path}/discard`).setPayload(workflow.payloadSchema).annotateContext(workflow.annotations));
95
+ }
96
+ return group;
97
+ };
98
+ const tagToPath = tag => tag.replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
99
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
100
+ .toLowerCase();
101
+ //# sourceMappingURL=WorkflowProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxy.js","names":["HttpApiEndpoint","HttpApiGroup","Rpc","RpcGroup","toRpcGroup","workflows","options","prefix","rpcs","workflow","push","make","name","payload","payloadSchema","error","errorSchema","success","successSchema","annotateContext","annotations","toHttpApiGroup","group","path","tagToPath","add","post","setPayload","addSuccess","addError","tag","replace","toLowerCase"],"sources":["../../src/WorkflowProxy.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,eAAe,MAAM,kCAAkC;AACnE,OAAO,KAAKC,YAAY,MAAM,+BAA+B;AAC7D,OAAO,KAAKC,GAAG,MAAM,iBAAiB;AACtC,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAMC,UAAU,GAAGA,CAIxBC,SAAoB,EACpBC,OAEC,KAC4D;EAC7D,MAAMC,MAAM,GAAGD,OAAO,EAAEC,MAAM,IAAI,EAAE;EACpC,MAAMC,IAAI,GAAmB,EAAE;EAC/B,KAAK,MAAMC,QAAQ,IAAIJ,SAAS,EAAE;IAChCG,IAAI,CAACE,IAAI,CACPR,GAAG,CAACS,IAAI,CAAC,GAAGJ,MAAM,GAAGE,QAAQ,CAACG,IAAI,EAAE,EAAE;MACpCC,OAAO,EAAEJ,QAAQ,CAACK,aAAa;MAC/BC,KAAK,EAAEN,QAAQ,CAACO,WAAW;MAC3BC,OAAO,EAAER,QAAQ,CAACS;KACnB,CAAC,CAACC,eAAe,CAACV,QAAQ,CAACW,WAAW,CAAC,EACxClB,GAAG,CAACS,IAAI,CAAC,GAAGJ,MAAM,GAAGE,QAAQ,CAACG,IAAI,SAAS,EAAE;MAC3CC,OAAO,EAAEJ,QAAQ,CAACK;KACnB,CAAC,CAACK,eAAe,CAACV,QAAQ,CAACW,WAAW,CAAC,CACzC;EACH;EACA,OAAOjB,QAAQ,CAACQ,IAAI,CAAC,GAAGH,IAAI,CAAQ;AACtC,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,OAAO,MAAMa,cAAc,GAAGA,CAC5BT,IAAU,EACVP,SAAoB,KACkD;EACtE,IAAIiB,KAAK,GAAGrB,YAAY,CAACU,IAAI,CAACC,IAAI,CAAC;EACnC,KAAK,MAAMH,QAAQ,IAAIJ,SAAS,EAAE;IAChC,MAAMkB,IAAI,GAAG,IAAIC,SAAS,CAACf,QAAQ,CAACG,IAAI,CAAC,EAAW;IACpDU,KAAK,GAAGA,KAAK,CAACG,GAAG,CACfzB,eAAe,CAAC0B,IAAI,CAACjB,QAAQ,CAACG,IAAI,EAAEW,IAAI,CAAC,CACtCI,UAAU,CAAClB,QAAQ,CAACK,aAAa,CAAC,CAClCc,UAAU,CAACnB,QAAQ,CAACS,aAAa,CAAC,CAClCW,QAAQ,CAACpB,QAAQ,CAACO,WAAkB,CAAC,CACrCG,eAAe,CAACV,QAAQ,CAACW,WAAW,CAAC,CACzC,CAACK,GAAG,CACHzB,eAAe,CAAC0B,IAAI,CAACjB,QAAQ,CAACG,IAAI,GAAG,SAAS,EAAE,GAAGW,IAAI,UAAU,CAAC,CAC/DI,UAAU,CAAClB,QAAQ,CAACK,aAAa,CAAC,CAClCK,eAAe,CAACV,QAAQ,CAACW,WAAW,CAAC,CAClC;EACV;EACA,OAAOE,KAAY;AACrB,CAAC;AAED,MAAME,SAAS,GAAIM,GAAW,IAC5BA,GAAG,CACAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;AAAA,CAC/BA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAAA,CACpCC,WAAW,EAAE","ignoreList":[]}