@effect/workflow 0.1.2 → 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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/WorkflowProxy.js",
3
+ "module": "../dist/esm/WorkflowProxy.js",
4
+ "types": "../dist/dts/WorkflowProxy.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/WorkflowProxyServer.js",
3
+ "module": "../dist/esm/WorkflowProxyServer.js",
4
+ "types": "../dist/dts/WorkflowProxyServer.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -36,6 +36,19 @@ const make = options => {
36
36
  payloadSchema: Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload),
37
37
  successSchema: options.success ?? Schema.Void,
38
38
  errorSchema: options.error ?? Schema.Never,
39
+ annotations: options.annotations ?? Context.empty(),
40
+ annotate(tag, value) {
41
+ return make({
42
+ ...options,
43
+ annotations: Context.add(self.annotations, tag, value)
44
+ });
45
+ },
46
+ annotateContext(context) {
47
+ return make({
48
+ ...options,
49
+ annotations: Context.merge(self.annotations, context)
50
+ });
51
+ },
39
52
  execute: Effect.fnUntraced(function* (fields, opts) {
40
53
  const payload = self.payloadSchema.make(fields);
41
54
  const engine = yield* EngineTag;
@@ -1 +1 @@
1
- {"version":3,"file":"Workflow.js","names":["Context","_interopRequireWildcard","require","Data","Effect","Exit","_Function","Layer","Predicate","PrimaryKey","Schedule","Schema","_crypto","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","suspendedRetrySchedule","defaultRetrySchedule","makeExecutionId","payload","makeHashDigest","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","register","provide","withCompensation","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","dual","compensation","contextWithEffect","tap","addFinalizer","isSuccess","void"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Workflow.js","names":["Context","_interopRequireWildcard","require","Data","Effect","Exit","_Function","Layer","Predicate","PrimaryKey","Schedule","Schema","_crypto","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","Symbol","for","EngineTag","GenericTag","InstanceTag","make","options","suspendedRetrySchedule","defaultRetrySchedule","makeExecutionId","payload","makeHashDigest","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","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","dual","compensation","contextWithEffect","tap","addFinalizer","isSuccess","void"],"sources":["../../src/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toRpcGroup = exports.toHttpApiGroup = void 0;
7
+ var HttpApiEndpoint = _interopRequireWildcard(require("@effect/platform/HttpApiEndpoint"));
8
+ var HttpApiGroup = _interopRequireWildcard(require("@effect/platform/HttpApiGroup"));
9
+ var Rpc = _interopRequireWildcard(require("@effect/rpc/Rpc"));
10
+ var RpcGroup = _interopRequireWildcard(require("@effect/rpc/RpcGroup"));
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * @since 1.0.0
14
+ */
15
+
16
+ /**
17
+ * Derives an `RpcGroup` from a list of workflows.
18
+ *
19
+ * ```ts
20
+ * import { RpcServer } from "@effect/rpc"
21
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
22
+ * import { Layer, Schema } from "effect"
23
+ *
24
+ * const EmailWorkflow = Workflow.make({
25
+ * name: "EmailWorkflow",
26
+ * payload: {
27
+ * id: Schema.String,
28
+ * to: Schema.String
29
+ * },
30
+ * idempotencyKey: ({ id }) => id
31
+ * })
32
+ *
33
+ * const myWorkflows = [EmailWorkflow] as const
34
+ *
35
+ * // Use WorkflowProxy.toRpcGroup to create a `RpcGroup` from the
36
+ * // workflows
37
+ * class MyRpcs extends WorkflowProxy.toRpcGroup(myWorkflows) {}
38
+ *
39
+ * // Use WorkflowProxyServer.layerRpcHandlers to create a layer that implements
40
+ * // the rpc handlers
41
+ * const ApiLayer = RpcServer.layer(MyRpcs).pipe(
42
+ * Layer.provide(WorkflowProxyServer.layerRpcHandlers(myWorkflows))
43
+ * )
44
+ * ```
45
+ *
46
+ * @since 1.0.0
47
+ * @category Constructors
48
+ */
49
+ const toRpcGroup = (workflows, options) => {
50
+ const prefix = options?.prefix ?? "";
51
+ const rpcs = [];
52
+ for (const workflow of workflows) {
53
+ rpcs.push(Rpc.make(`${prefix}${workflow.name}`, {
54
+ payload: workflow.payloadSchema,
55
+ error: workflow.errorSchema,
56
+ success: workflow.successSchema
57
+ }).annotateContext(workflow.annotations), Rpc.make(`${prefix}${workflow.name}Discard`, {
58
+ payload: workflow.payloadSchema
59
+ }).annotateContext(workflow.annotations));
60
+ }
61
+ return RpcGroup.make(...rpcs);
62
+ };
63
+ /**
64
+ * Derives an `HttpApiGroup` from a list of workflows.
65
+ *
66
+ * ```ts
67
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
68
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
69
+ * import { Layer, Schema } from "effect"
70
+ *
71
+ * const EmailWorkflow = Workflow.make({
72
+ * name: "EmailWorkflow",
73
+ * payload: {
74
+ * id: Schema.String,
75
+ * to: Schema.String
76
+ * },
77
+ * idempotencyKey: ({ id }) => id
78
+ * })
79
+ *
80
+ * const myWorkflows = [EmailWorkflow] as const
81
+ *
82
+ * // Use WorkflowProxy.toHttpApiGroup to create a `HttpApiGroup` from the
83
+ * // workflows
84
+ * class MyApi extends HttpApi.make("api")
85
+ * .add(WorkflowProxy.toHttpApiGroup("workflows", myWorkflows))
86
+ * {}
87
+ *
88
+ * // Use WorkflowProxyServer.layerHttpApi to create a layer that implements the
89
+ * // workflows HttpApiGroup
90
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
91
+ * Layer.provide(WorkflowProxyServer.layerHttpApi(MyApi, "workflows", myWorkflows))
92
+ * )
93
+ * ```
94
+ *
95
+ * @since 1.0.0
96
+ * @category Constructors
97
+ */
98
+ exports.toRpcGroup = toRpcGroup;
99
+ const toHttpApiGroup = (name, workflows) => {
100
+ let group = HttpApiGroup.make(name);
101
+ for (const workflow of workflows) {
102
+ const path = `/${tagToPath(workflow.name)}`;
103
+ 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));
104
+ }
105
+ return group;
106
+ };
107
+ exports.toHttpApiGroup = toHttpApiGroup;
108
+ const tagToPath = tag => tag.replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
109
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
110
+ .toLowerCase();
111
+ //# sourceMappingURL=WorkflowProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxy.js","names":["HttpApiEndpoint","_interopRequireWildcard","require","HttpApiGroup","Rpc","RpcGroup","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toRpcGroup","workflows","options","prefix","rpcs","workflow","push","make","name","payload","payloadSchema","error","errorSchema","success","successSchema","annotateContext","annotations","exports","toHttpApiGroup","group","path","tagToPath","add","post","setPayload","addSuccess","addError","tag","replace","toLowerCase"],"sources":["../../src/WorkflowProxy.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.layerRpcHandlers = exports.layerHttpApi = void 0;
7
+ var HttpApiBuilder = _interopRequireWildcard(require("@effect/platform/HttpApiBuilder"));
8
+ var Context = _interopRequireWildcard(require("effect/Context"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var Layer = _interopRequireWildcard(require("effect/Layer"));
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * @since 1.0.0
14
+ * @category Layers
15
+ */
16
+ const layerHttpApi = (api, name, workflows) => HttpApiBuilder.group(api, name, Effect.fnUntraced(function* (handlers_) {
17
+ let handlers = handlers_;
18
+ for (const workflow_ of workflows) {
19
+ const workflow = workflow_;
20
+ handlers = handlers.handle(workflow.name, ({
21
+ payload
22
+ }) => workflow.execute(payload)).handle(workflow.name + "Discard", ({
23
+ payload
24
+ }) => workflow.execute(payload, {
25
+ discard: true
26
+ }));
27
+ }
28
+ return handlers;
29
+ }));
30
+ /**
31
+ * @since 1.0.0
32
+ * @category Layers
33
+ */
34
+ exports.layerHttpApi = layerHttpApi;
35
+ const layerRpcHandlers = (workflows, options) => Layer.effectContext(Effect.gen(function* () {
36
+ const context = yield* Effect.context();
37
+ const prefix = options?.prefix ?? "";
38
+ const handlers = new Map();
39
+ for (const workflow_ of workflows) {
40
+ const workflow = workflow_;
41
+ const tag = `${prefix}${workflow.name}`;
42
+ const tagDiscard = `${tag}Discard`;
43
+ const key = `@effect/rpc/Rpc/${tag}`;
44
+ const keyDiscard = `${key}Discard`;
45
+ handlers.set(key, {
46
+ context,
47
+ tag,
48
+ handler: payload => workflow.execute(payload)
49
+ });
50
+ handlers.set(keyDiscard, {
51
+ context,
52
+ tag: tagDiscard,
53
+ handler: payload => workflow.execute(payload, {
54
+ discard: true
55
+ })
56
+ });
57
+ }
58
+ return Context.unsafeMake(handlers);
59
+ }));
60
+ exports.layerRpcHandlers = layerRpcHandlers;
61
+ //# sourceMappingURL=WorkflowProxyServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxyServer.js","names":["HttpApiBuilder","_interopRequireWildcard","require","Context","Effect","Layer","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","layerHttpApi","api","name","workflows","group","fnUntraced","handlers_","handlers","workflow_","workflow","handle","payload","execute","discard","exports","layerRpcHandlers","options","effectContext","gen","context","prefix","Map","tag","tagDiscard","key","keyDiscard","handler","unsafeMake"],"sources":["../../src/WorkflowProxyServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/cjs/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.WorkflowEngine = exports.Workflow = exports.DurableDeferred = exports.DurableClock = exports.Activity = void 0;
6
+ exports.WorkflowProxyServer = exports.WorkflowProxy = exports.WorkflowEngine = exports.Workflow = exports.DurableDeferred = exports.DurableClock = exports.Activity = void 0;
7
7
  var _Activity = _interopRequireWildcard(require("./Activity.js"));
8
8
  exports.Activity = _Activity;
9
9
  var _DurableClock = _interopRequireWildcard(require("./DurableClock.js"));
@@ -14,5 +14,9 @@ var _Workflow = _interopRequireWildcard(require("./Workflow.js"));
14
14
  exports.Workflow = _Workflow;
15
15
  var _WorkflowEngine = _interopRequireWildcard(require("./WorkflowEngine.js"));
16
16
  exports.WorkflowEngine = _WorkflowEngine;
17
+ var _WorkflowProxy = _interopRequireWildcard(require("./WorkflowProxy.js"));
18
+ exports.WorkflowProxy = _WorkflowProxy;
19
+ var _WorkflowProxyServer = _interopRequireWildcard(require("./WorkflowProxyServer.js"));
20
+ exports.WorkflowProxyServer = _WorkflowProxyServer;
17
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
22
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,7 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import type * as Cause from "effect/Cause";
5
+ import * as Context from "effect/Context";
5
6
  import * as Effect from "effect/Effect";
6
7
  import * as Exit from "effect/Exit";
7
8
  import * as Layer from "effect/Layer";
@@ -32,6 +33,15 @@ export interface Workflow<Name extends string, Payload extends AnyStructSchema,
32
33
  readonly payloadSchema: Payload;
33
34
  readonly successSchema: Success;
34
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>;
35
45
  /**
36
46
  * Execute the workflow with the given payload.
37
47
  */
@@ -113,8 +123,19 @@ export interface Any {
113
123
  readonly payloadSchema: AnyStructSchema;
114
124
  readonly successSchema: Schema.Schema.Any;
115
125
  readonly errorSchema: Schema.Schema.All;
126
+ readonly annotations: Context.Context<never>;
116
127
  readonly executionId: (payload: any) => Effect.Effect<string>;
117
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;
118
139
  /**
119
140
  * @since 1.0.0
120
141
  * @category Constructors
@@ -126,6 +147,7 @@ export declare const make: <const Name extends string, Payload extends Schema.St
126
147
  readonly success?: Success;
127
148
  readonly error?: Error;
128
149
  readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined;
150
+ readonly annotations?: Context.Context<never>;
129
151
  }) => Workflow<Name, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error>;
130
152
  /**
131
153
  * @since 1.0.0
@@ -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"}
@@ -29,6 +29,19 @@ export const make = options => {
29
29
  payloadSchema: Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload),
30
30
  successSchema: options.success ?? Schema.Void,
31
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
+ },
32
45
  execute: Effect.fnUntraced(function* (fields, opts) {
33
46
  const payload = self.payloadSchema.make(fields);
34
47
  const engine = yield* EngineTag;
@@ -1 +1 @@
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","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","withCompensation","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","compensation","contextWithEffect","tap","addFinalizer","isSuccess","void"],"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":"AAIA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC,SAASC,cAAc,QAAQ,sBAAsB;AAGrD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAiM5E,MAAMC,SAAS,gBAAGd,OAAO,CAACe,UAAU,CAClC,iCAAqE,CACtE;AAED,MAAMC,WAAW,gBAAGhB,OAAO,CAACe,UAAU,CACpC,kDAAwF,CACzF;AAED;;;;AAIA,OAAO,MAAME,IAAI,GAMfC,OAUC,IAC0G;EAC3G,MAAMC,sBAAsB,GAAGD,OAAO,CAACC,sBAAsB,IAAIC,oBAAoB;EACrF,MAAMC,eAAe,GAAIC,OAAY,IAAKZ,cAAc,CAAC,GAAGQ,OAAO,CAACK,IAAI,IAAIL,OAAO,CAACM,cAAc,CAACF,OAAO,CAAC,EAAE,CAAC;EAC9G,MAAMG,IAAI,GAAwC;IAChD,CAACd,MAAM,GAAGA,MAAM;IAChBY,IAAI,EAAEL,OAAO,CAACK,IAAI;IAClBG,aAAa,EAAEjB,MAAM,CAACkB,QAAQ,CAACT,OAAO,CAACI,OAAO,CAAC,GAAGJ,OAAO,CAACI,OAAO,GAAGb,MAAM,CAACmB,MAAM,CAACV,OAAO,CAACI,OAAc,CAAC;IACzGO,aAAa,EAAEX,OAAO,CAACY,OAAO,IAAIrB,MAAM,CAACsB,IAAW;IACpDC,WAAW,EAAEd,OAAO,CAACe,KAAK,IAAIxB,MAAM,CAACyB,KAAY;IACjDC,WAAW,EAAEjB,OAAO,CAACiB,WAAW,IAAInC,OAAO,CAACoC,KAAK,EAAE;IACnDC,QAAQA,CAACC,GAAG,EAAEC,KAAK;MACjB,OAAOtB,IAAI,CAAC;QACV,GAAGC,OAAO;QACViB,WAAW,EAAEnC,OAAO,CAACwC,GAAG,CAACf,IAAI,CAACU,WAAW,EAAEG,GAAG,EAAEC,KAAK;OACtD,CAAC;IACJ,CAAC;IACDE,eAAeA,CAACC,OAAO;MACrB,OAAOzB,IAAI,CAAC;QACV,GAAGC,OAAO;QACViB,WAAW,EAAEnC,OAAO,CAAC2C,KAAK,CAAClB,IAAI,CAACU,WAAW,EAAEO,OAAO;OACrD,CAAC;IACJ,CAAC;IACDE,OAAO,EAAE1C,MAAM,CAAC2C,UAAU,CACxB,WAAUC,MAAW,EAAEC,IAAI;MACzB,MAAMzB,OAAO,GAAGG,IAAI,CAACC,aAAa,CAACT,IAAI,CAAC6B,MAAM,CAAC;MAC/C,MAAME,MAAM,GAAG,OAAOlC,SAAS;MAC/B,MAAMmC,WAAW,GAAG,OAAO5B,eAAe,CAACC,OAAO,CAAC;MACnD,OAAOpB,MAAM,CAACgD,mBAAmB,CAAC;QAAED;MAAW,CAAE,CAAC;MAClD,IAAIF,IAAI,EAAEI,OAAO,EAAE;QACjB,OAAO,OAAOH,MAAM,CAACJ,OAAO,CAAC;UAC3BQ,QAAQ,EAAE3B,IAAI;UACdwB,WAAW;UACX3B,OAAO;UACP6B,OAAO,EAAE;SACV,CAAC;MACJ;MACA,IAAIE,KAAqC;MACzC,OAAO,IAAI,EAAE;QACX,MAAMC,MAAM,GAAG,OAAON,MAAM,CAACJ,OAAO,CAAC;UACnCQ,QAAQ,EAAE3B,IAAI;UACdwB,WAAW;UACX3B,OAAO;UACP6B,OAAO,EAAE;SACV,CAAC;QACF,IAAIG,MAAM,CAACC,IAAI,KAAK,UAAU,EAAE;UAC9B,OAAO,OAAOD,MAAM,CAACE,IAAiD;QACxE;QACA;QACAH,KAAK,KAAK,CAAC,OAAO7C,QAAQ,CAACiD,MAAM,CAACtC,sBAAsB,CAAC,EAAEuC,IAAI,CAAC,KAAK,CAAC,CAAC,CAACC,IAAI,CAC1EzD,MAAM,CAAC0D,QAAQ,CAAC,MAAM1D,MAAM,CAAC2D,UAAU,CAAC,GAAG3C,OAAO,CAACK,IAAI,4CAA4C,CAAC,CAAC,CACtG;QACD,OAAO8B,KAAK;MACd;IACF,CAAC,EACDnD,MAAM,CAAC4D,QAAQ,CAAC,GAAG5C,OAAO,CAACK,IAAI,UAAU,EAAE;MAAEwC,iBAAiB,EAAE;IAAK,CAAE,CAAC,CACzE;IACDC,SAAS,EAAE9D,MAAM,CAAC2C,UAAU,CAC1B,WAAUI,WAAmB;MAC3B,MAAMD,MAAM,GAAG,OAAOlC,SAAS;MAC/B,OAAOkC,MAAM,CAACgB,SAAS,CAACvC,IAAI,EAAEwB,WAAW,CAAC;IAC5C,CAAC,EACD,CAACgB,MAAM,EAAEhB,WAAW,KAClB/C,MAAM,CAAC4D,QAAQ,CAACG,MAAM,EAAE,GAAG/C,OAAO,CAACK,IAAI,YAAY,EAAE;MACnDwC,iBAAiB,EAAE,KAAK;MACxBG,UAAU,EAAE;QAAEjB;MAAW;KAC1B,CAAC,CACL;IACDkB,OAAO,EAAGvB,OAAO,IACfvC,KAAK,CAAC+D,aAAa,CAAClE,MAAM,CAACmE,GAAG,CAAC,aAAS;MACtC,MAAM3B,OAAO,GAAG,OAAOxC,MAAM,CAACwC,OAAO,EAAkB;MACvD,MAAMM,MAAM,GAAGhD,OAAO,CAACsE,GAAG,CAAC5B,OAAO,EAAE5B,SAAS,CAAC;MAC9C,OAAOkC,MAAM,CAACuB,QAAQ,CAAC9C,IAAI,EAAE,CAACH,OAAO,EAAE2B,WAAW,KAChDL,OAAO,CAACtB,OAAO,EAAE2B,WAAW,CAAC,CAACU,IAAI,CAChCzD,MAAM,CAACsE,OAAO,CAAC9B,OAAO,CAAC,CACjB,CAAC;MACX,OAAO5B,SAAS,CAAC4B,OAAO,CAACM,MAAM,CAAC;IAClC,CAAC,CAAC,CAAQ;IACZC,WAAW,EAAG3B,OAAO,IAAKD,eAAe,CAACI,IAAI,CAACC,aAAa,CAACT,IAAI,CAACK,OAAO,CAAC,CAAC;IAC3EmD;GACD;EAED,OAAOhD,IAAI;AACb,CAAC;AAED,MAAML,oBAAoB,gBAAGZ,QAAQ,CAACkE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAACf,IAAI,cAC9DnD,QAAQ,CAACmE,KAAK,cAACnE,QAAQ,CAACoE,MAAM,CAAC,KAAK,CAAC,CAAC,CACvC;AAED;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAGA,CAAmCC,MAAS,EAAE5D,OAE9E,KACCD,IAAI,CAAC;EACHM,IAAI,EAAEuD,MAAM,CAACvB,IAAI;EACjBjC,OAAO,EAAEwD,MAAa;EACtBhD,OAAO,EAAEgD,MAAM,CAAChD,OAAO;EACvBG,KAAK,EAAE6C,MAAM,CAACC,OAAO;EACrBvD,cAAc,EAAEjB,UAAU,CAACgC,KAAK;EAChCpB,sBAAsB,EAAED,OAAO,EAAEC;CAClC,CAAC;AAEJ;;;;AAIA,OAAO,MAAM6D,YAAY,gBAAkBpE,MAAM,CAACC,GAAG,CAAC,kCAAkC,CAAC;AAQzF;;;;AAIA,OAAO,MAAMoE,QAAQ,GAA8BC,CAAU,IAC3D5E,SAAS,CAAC6E,WAAW,CAACD,CAAC,EAAEF,YAAY,CAAC;AAcxC;;;;AAIA,OAAM,MAAOI,QAAe,sBAAQnF,IAAI,CAACoF,WAAW,CAAC,UAAU,CAE7D;EACA;;;EAGS,CAACL,YAAY,IAAkBA,YAAY;EAEpD;;;EAGA,OAAOM,cAAcA,CAAqEC,QAGzF;IACC,OAAO9E,MAAM,CAAC+E,OAAO,CAAEN,CAAC,IAAoDD,QAAQ,CAACC,CAAC,CAAC,IAAIA,CAAC,CAAC3B,IAAI,KAAK,UAAU,CAAC;EACnH;EAEA;;;EAGA,OAAOkC,aAAaA,CAAqEvE,OAGxF;IACC,OAAOT,MAAM,CAACmB,MAAM,CAAC;MACnB2B,IAAI,EAAE9C,MAAM,CAAC6B,GAAG,CAAC,UAAU,CAAC;MAC5BkB,IAAI,EAAE/C,MAAM,CAACN,IAAI,CAAC;QAAE2B,OAAO,EAAEZ,OAAO,CAACY,OAAO;QAAEiD,OAAO,EAAE7D,OAAO,CAACe,KAAK;QAAEyD,MAAM,EAAEjF,MAAM,CAACkF;MAAM,CAAE;KAC9F,CAAC;EACJ;EAEA;;;EAGA,OAAOlF,MAAMA,CAAqES,OAGjF;IAIC,OAAOT,MAAM,CAACmF,SAAS,CACrB,IAAI,CAACH,aAAa,CAACvE,OAAO,CAAC,EAC3B,IAAI,CAACoE,cAAc,CAACpE,OAAO,CAAC,EAC5B;MACE2E,MAAMA,CAACC,KAAK;QACV,OAAO,IAAIV,QAAQ,CAAC;UAAE5B,IAAI,EAAEsC,KAAK,CAACtC;QAAI,CAAE,CAAC;MAC3C,CAAC;MACDuC,MAAMA,CAACC,GAAG;QACR,OAAOA,GAAG;MACZ;KACD,CACK;EACV;;AAYF;;;;AAIA,OAAM,MAAOC,SAAU,sBAAQxF,MAAM,CAAC4E,WAAW,CAAY,qCAAqC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;EAClH;;;EAGS,CAACL,YAAY,IAAkBA,YAAY;;AAGtD;;;;AAIA,OAAO,MAAMkB,MAAM,GACjBhF,OAGC,IAKET,MAAM,CAAC0F,KAAK,CAACf,QAAQ,CAAC3E,MAAM,CAACS,OAAO,CAAC,EAAE+E,SAAS,CAAC;AAEtD;;;;AAIA,OAAO,MAAMG,UAAU,GACrBnC,MAA8B,IAE9B/D,MAAM,CAACmG,mBAAmB,CAAEC,OAAO,IACjCpG,MAAM,CAACqG,gBAAgB,CAAEC,KAAK,IAC5BtG,MAAM,CAACuG,UAAU,CAACH,OAAO,CAACrC,MAAM,CAAC,EAAE;EACjCyC,SAAS,EAAGnE,KAAK,IAAK,IAAI6C,QAAQ,CAAC;IAAE5B,IAAI,EAAErD,IAAI,CAACwG,OAAO,CAACpE,KAAK;EAAC,CAAE,CAAC;EACjEqE,SAASA,CAACC,KAAK;IACb,MAAMC,QAAQ,GAAG9G,OAAO,CAAC+G,SAAS,CAACP,KAAK,CAACQ,cAAc,EAAEhG,WAAW,CAAC;IACrE,OAAO8F,QAAQ,CAACG,SAAS,GAAG,IAAIhB,SAAS,EAAE,GAAG,IAAIb,QAAQ,CAAC;MAAE5B,IAAI,EAAErD,IAAI,CAAC+G,SAAS,CAACL,KAAK;IAAC,CAAE,CAAC;EAC7F;CACD,CAAC,CACH,CACF;AAEH;;;;;;;;;;;AAWA,OAAO,MAAMpC,gBAAgB,gBAgCzBrE,IAAI,CAAC,CAAC,EAAE,CACV6D,MAA8B,EAC9BkD,YAAuF,KAEvFjH,MAAM,CAACmG,mBAAmB,CAAEC,OAAO,IACjCpG,MAAM,CAACkH,iBAAiB,CAAE1E,OAA0C,IAAI;EACtE,MAAMoE,QAAQ,GAAG9G,OAAO,CAACsE,GAAG,CAAC5B,OAAO,EAAE1B,WAAW,CAAC;EAClD,OAAOd,MAAM,CAACmH,GAAG,CAACf,OAAO,CAACrC,MAAM,CAAC,EAAG1B,KAAK,IACvCrC,MAAM,CAACoH,YAAY,CAAE9D,IAAI,IAAI;IAC3B,IAAIrD,IAAI,CAACoH,SAAS,CAAC/D,IAAI,CAAC,IAAIsD,QAAQ,CAACG,SAAS,EAAE;MAC9C,OAAO/G,MAAM,CAACsH,IAAI;IACpB;IACA,OAAOL,YAAY,CAAC5E,KAAK,EAAEiB,IAAI,CAACqD,KAAK,CAAC;EACxC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CACH,CAAC","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":[]}
@@ -0,0 +1,52 @@
1
+ import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder";
2
+ import * as Context from "effect/Context";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category Layers
8
+ */
9
+ export const layerHttpApi = (api, name, workflows) => HttpApiBuilder.group(api, name, Effect.fnUntraced(function* (handlers_) {
10
+ let handlers = handlers_;
11
+ for (const workflow_ of workflows) {
12
+ const workflow = workflow_;
13
+ handlers = handlers.handle(workflow.name, ({
14
+ payload
15
+ }) => workflow.execute(payload)).handle(workflow.name + "Discard", ({
16
+ payload
17
+ }) => workflow.execute(payload, {
18
+ discard: true
19
+ }));
20
+ }
21
+ return handlers;
22
+ }));
23
+ /**
24
+ * @since 1.0.0
25
+ * @category Layers
26
+ */
27
+ export const layerRpcHandlers = (workflows, options) => Layer.effectContext(Effect.gen(function* () {
28
+ const context = yield* Effect.context();
29
+ const prefix = options?.prefix ?? "";
30
+ const handlers = new Map();
31
+ for (const workflow_ of workflows) {
32
+ const workflow = workflow_;
33
+ const tag = `${prefix}${workflow.name}`;
34
+ const tagDiscard = `${tag}Discard`;
35
+ const key = `@effect/rpc/Rpc/${tag}`;
36
+ const keyDiscard = `${key}Discard`;
37
+ handlers.set(key, {
38
+ context,
39
+ tag,
40
+ handler: payload => workflow.execute(payload)
41
+ });
42
+ handlers.set(keyDiscard, {
43
+ context,
44
+ tag: tagDiscard,
45
+ handler: payload => workflow.execute(payload, {
46
+ discard: true
47
+ })
48
+ });
49
+ }
50
+ return Context.unsafeMake(handlers);
51
+ }));
52
+ //# sourceMappingURL=WorkflowProxyServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowProxyServer.js","names":["HttpApiBuilder","Context","Effect","Layer","layerHttpApi","api","name","workflows","group","fnUntraced","handlers_","handlers","workflow_","workflow","handle","payload","execute","discard","layerRpcHandlers","options","effectContext","gen","context","prefix","Map","tag","tagDiscard","key","keyDiscard","set","handler","unsafeMake"],"sources":["../../src/WorkflowProxyServer.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,cAAc,MAAM,iCAAiC;AAIjE,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAIrC;;;;AAIA,OAAO,MAAMC,YAAY,GAAGA,CAQ1BC,GAA+C,EAC/CC,IAAU,EACVC,SAAoB,KAMpBP,cAAc,CAACQ,KAAK,CAClBH,GAAG,EACHC,IAAI,EACJJ,MAAM,CAACO,UAAU,CAAC,WAAUC,SAAS;EACnC,IAAIC,QAAQ,GAAGD,SAAgB;EAC/B,KAAK,MAAME,SAAS,IAAIL,SAAS,EAAE;IACjC,MAAMM,QAAQ,GAAGD,SAAqD;IACtED,QAAQ,GAAGA,QAAQ,CAChBG,MAAM,CACLD,QAAQ,CAACP,IAAW,EACpB,CAAC;MAAES;IAAO,CAAoB,KAAKF,QAAQ,CAACG,OAAO,CAACD,OAAO,CAAC,CAC7D,CACAD,MAAM,CACLD,QAAQ,CAACP,IAAI,GAAG,SAAgB,EAChC,CAAC;MAAES;IAAO,CAAoB,KAAKF,QAAQ,CAACG,OAAO,CAACD,OAAO,EAAE;MAAEE,OAAO,EAAE;IAAI,CAAS,CAAC,CACvF;EACL;EACA,OAAON,QAAwD;AACjE,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMO,gBAAgB,GAAGA,CAG9BX,SAAoB,EAAEY,OAEvB,KAKChB,KAAK,CAACiB,aAAa,CAAClB,MAAM,CAACmB,GAAG,CAAC,aAAS;EACtC,MAAMC,OAAO,GAAG,OAAOpB,MAAM,CAACoB,OAAO,EAAS;EAC9C,MAAMC,MAAM,GAAGJ,OAAO,EAAEI,MAAM,IAAI,EAAE;EACpC,MAAMZ,QAAQ,GAAG,IAAIa,GAAG,EAA+B;EACvD,KAAK,MAAMZ,SAAS,IAAIL,SAAS,EAAE;IACjC,MAAMM,QAAQ,GAAGD,SAAqD;IACtE,MAAMa,GAAG,GAAG,GAAGF,MAAM,GAAGV,QAAQ,CAACP,IAAI,EAAE;IACvC,MAAMoB,UAAU,GAAG,GAAGD,GAAG,SAAS;IAClC,MAAME,GAAG,GAAG,mBAAmBF,GAAG,EAAE;IACpC,MAAMG,UAAU,GAAG,GAAGD,GAAG,SAAS;IAClChB,QAAQ,CAACkB,GAAG,CAACF,GAAG,EAAE;MAChBL,OAAO;MACPG,GAAG;MACHK,OAAO,EAAGf,OAAY,IAAKF,QAAQ,CAACG,OAAO,CAACD,OAAO;KAC7C,CAAC;IACTJ,QAAQ,CAACkB,GAAG,CAACD,UAAU,EAAE;MACvBN,OAAO;MACPG,GAAG,EAAEC,UAAU;MACfI,OAAO,EAAGf,OAAY,IAAKF,QAAQ,CAACG,OAAO,CAACD,OAAO,EAAE;QAAEE,OAAO,EAAE;MAAI,CAAS;KACvE,CAAC;EACX;EACA,OAAOhB,OAAO,CAAC8B,UAAU,CAACpB,QAAQ,CAAC;AACrC,CAAC,CAAC,CAAC","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -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.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Activity","DurableClock","DurableDeferred","Workflow","WorkflowEngine"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Activity","DurableClock","DurableDeferred","Workflow","WorkflowEngine","WorkflowProxy","WorkflowProxyServer"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/workflow",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Durable workflows for Effect",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -11,7 +11,9 @@
11
11
  "sideEffects": [],
12
12
  "homepage": "https://effect.website",
13
13
  "peerDependencies": {
14
- "effect": "^3.16.3"
14
+ "@effect/platform": "^0.84.6",
15
+ "effect": "^3.16.3",
16
+ "@effect/rpc": "^0.61.6"
15
17
  },
16
18
  "publishConfig": {
17
19
  "provenance": true
@@ -50,6 +52,16 @@
50
52
  "types": "./dist/dts/WorkflowEngine.d.ts",
51
53
  "import": "./dist/esm/WorkflowEngine.js",
52
54
  "default": "./dist/cjs/WorkflowEngine.js"
55
+ },
56
+ "./WorkflowProxy": {
57
+ "types": "./dist/dts/WorkflowProxy.d.ts",
58
+ "import": "./dist/esm/WorkflowProxy.js",
59
+ "default": "./dist/cjs/WorkflowProxy.js"
60
+ },
61
+ "./WorkflowProxyServer": {
62
+ "types": "./dist/dts/WorkflowProxyServer.d.ts",
63
+ "import": "./dist/esm/WorkflowProxyServer.js",
64
+ "default": "./dist/cjs/WorkflowProxyServer.js"
53
65
  }
54
66
  },
55
67
  "typesVersions": {
@@ -68,6 +80,12 @@
68
80
  ],
69
81
  "WorkflowEngine": [
70
82
  "./dist/dts/WorkflowEngine.d.ts"
83
+ ],
84
+ "WorkflowProxy": [
85
+ "./dist/dts/WorkflowProxy.d.ts"
86
+ ],
87
+ "WorkflowProxyServer": [
88
+ "./dist/dts/WorkflowProxyServer.d.ts"
71
89
  ]
72
90
  }
73
91
  }
package/src/Workflow.ts CHANGED
@@ -45,6 +45,27 @@ export interface Workflow<
45
45
  readonly payloadSchema: Payload
46
46
  readonly successSchema: Success
47
47
  readonly errorSchema: Error
48
+ readonly annotations: Context.Context<never>
49
+
50
+ /**
51
+ * Add an annotation to the workflow.
52
+ */
53
+ annotate<I, S>(tag: Context.Tag<I, S>, value: S): Workflow<
54
+ Name,
55
+ Payload,
56
+ Success,
57
+ Error
58
+ >
59
+
60
+ /**
61
+ * Add the annotations from a Context object to the workflow.
62
+ */
63
+ annotateContext<I>(context: Context.Context<I>): Workflow<
64
+ Name,
65
+ Payload,
66
+ Success,
67
+ Error
68
+ >
48
69
 
49
70
  /**
50
71
  * Execute the workflow with the given payload.
@@ -166,9 +187,34 @@ export interface Any {
166
187
  readonly payloadSchema: AnyStructSchema
167
188
  readonly successSchema: Schema.Schema.Any
168
189
  readonly errorSchema: Schema.Schema.All
190
+ readonly annotations: Context.Context<never>
169
191
  readonly executionId: (payload: any) => Effect.Effect<string>
170
192
  }
171
193
 
194
+ /**
195
+ * @since 1.0.0
196
+ * @category Models
197
+ */
198
+ export type Registrations<Workflows extends Any> = Workflows extends Workflow<
199
+ infer _Name,
200
+ infer _Payload,
201
+ infer _Success,
202
+ infer _Error
203
+ > ? Registration<_Name> :
204
+ never
205
+
206
+ /**
207
+ * @since 1.0.0
208
+ * @category Models
209
+ */
210
+ export type Requirements<Workflows extends Any> = Workflows extends Workflow<
211
+ infer _Name,
212
+ infer _Payload,
213
+ infer _Success,
214
+ infer _Error
215
+ > ? _Payload["Context"] | _Success["Context"] | _Error["Context"] :
216
+ never
217
+
172
218
  const EngineTag = Context.GenericTag<WorkflowEngine, WorkflowEngine["Type"]>(
173
219
  "@effect/workflow/WorkflowEngine" satisfies typeof WorkflowEngine.key
174
220
  )
@@ -196,6 +242,7 @@ export const make = <
196
242
  readonly success?: Success
197
243
  readonly error?: Error
198
244
  readonly suspendedRetrySchedule?: Schedule.Schedule<any, unknown> | undefined
245
+ readonly annotations?: Context.Context<never>
199
246
  }
200
247
  ): Workflow<Name, Payload extends Schema.Struct.Fields ? Schema.Struct<Payload> : Payload, Success, Error> => {
201
248
  const suspendedRetrySchedule = options.suspendedRetrySchedule ?? defaultRetrySchedule
@@ -206,6 +253,19 @@ export const make = <
206
253
  payloadSchema: Schema.isSchema(options.payload) ? options.payload : Schema.Struct(options.payload as any),
207
254
  successSchema: options.success ?? Schema.Void as any,
208
255
  errorSchema: options.error ?? Schema.Never as any,
256
+ annotations: options.annotations ?? Context.empty(),
257
+ annotate(tag, value) {
258
+ return make({
259
+ ...options,
260
+ annotations: Context.add(self.annotations, tag, value)
261
+ })
262
+ },
263
+ annotateContext(context) {
264
+ return make({
265
+ ...options,
266
+ annotations: Context.merge(self.annotations, context)
267
+ })
268
+ },
209
269
  execute: Effect.fnUntraced(
210
270
  function*(fields: any, opts) {
211
271
  const payload = self.payloadSchema.make(fields)
@@ -0,0 +1,178 @@
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
+ /**
12
+ * Derives an `RpcGroup` from a list of workflows.
13
+ *
14
+ * ```ts
15
+ * import { RpcServer } from "@effect/rpc"
16
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
17
+ * import { Layer, Schema } from "effect"
18
+ *
19
+ * const EmailWorkflow = Workflow.make({
20
+ * name: "EmailWorkflow",
21
+ * payload: {
22
+ * id: Schema.String,
23
+ * to: Schema.String
24
+ * },
25
+ * idempotencyKey: ({ id }) => id
26
+ * })
27
+ *
28
+ * const myWorkflows = [EmailWorkflow] as const
29
+ *
30
+ * // Use WorkflowProxy.toRpcGroup to create a `RpcGroup` from the
31
+ * // workflows
32
+ * class MyRpcs extends WorkflowProxy.toRpcGroup(myWorkflows) {}
33
+ *
34
+ * // Use WorkflowProxyServer.layerRpcHandlers to create a layer that implements
35
+ * // the rpc handlers
36
+ * const ApiLayer = RpcServer.layer(MyRpcs).pipe(
37
+ * Layer.provide(WorkflowProxyServer.layerRpcHandlers(myWorkflows))
38
+ * )
39
+ * ```
40
+ *
41
+ * @since 1.0.0
42
+ * @category Constructors
43
+ */
44
+ export const toRpcGroup = <
45
+ const Workflows extends NonEmptyReadonlyArray<Workflow.Any>,
46
+ const Prefix extends string = ""
47
+ >(
48
+ workflows: Workflows,
49
+ options?: {
50
+ readonly prefix?: Prefix | undefined
51
+ }
52
+ ): RpcGroup.RpcGroup<ConvertRpcs<Workflows[number], Prefix>> => {
53
+ const prefix = options?.prefix ?? ""
54
+ const rpcs: Array<Rpc.Any> = []
55
+ for (const workflow of workflows) {
56
+ rpcs.push(
57
+ Rpc.make(`${prefix}${workflow.name}`, {
58
+ payload: workflow.payloadSchema,
59
+ error: workflow.errorSchema,
60
+ success: workflow.successSchema
61
+ }).annotateContext(workflow.annotations),
62
+ Rpc.make(`${prefix}${workflow.name}Discard`, {
63
+ payload: workflow.payloadSchema
64
+ }).annotateContext(workflow.annotations)
65
+ )
66
+ }
67
+ return RpcGroup.make(...rpcs) as any
68
+ }
69
+
70
+ /**
71
+ * @since 1.0.0
72
+ */
73
+ export type ConvertRpcs<Workflows extends Workflow.Any, Prefix extends string> = Workflows extends Workflow.Workflow<
74
+ infer _Name,
75
+ infer _Payload,
76
+ infer _Success,
77
+ infer _Error
78
+ > ?
79
+ | Rpc.Rpc<`${Prefix}${_Name}`, _Payload, _Success, _Error>
80
+ | Rpc.Rpc<`${Prefix}${_Name}Discard`, _Payload>
81
+ : never
82
+
83
+ /**
84
+ * Derives an `HttpApiGroup` from a list of workflows.
85
+ *
86
+ * ```ts
87
+ * import { HttpApi, HttpApiBuilder } from "@effect/platform"
88
+ * import { Workflow, WorkflowProxy, WorkflowProxyServer } from "@effect/workflow"
89
+ * import { Layer, Schema } from "effect"
90
+ *
91
+ * const EmailWorkflow = Workflow.make({
92
+ * name: "EmailWorkflow",
93
+ * payload: {
94
+ * id: Schema.String,
95
+ * to: Schema.String
96
+ * },
97
+ * idempotencyKey: ({ id }) => id
98
+ * })
99
+ *
100
+ * const myWorkflows = [EmailWorkflow] as const
101
+ *
102
+ * // Use WorkflowProxy.toHttpApiGroup to create a `HttpApiGroup` from the
103
+ * // workflows
104
+ * class MyApi extends HttpApi.make("api")
105
+ * .add(WorkflowProxy.toHttpApiGroup("workflows", myWorkflows))
106
+ * {}
107
+ *
108
+ * // Use WorkflowProxyServer.layerHttpApi to create a layer that implements the
109
+ * // workflows HttpApiGroup
110
+ * const ApiLayer = HttpApiBuilder.api(MyApi).pipe(
111
+ * Layer.provide(WorkflowProxyServer.layerHttpApi(MyApi, "workflows", myWorkflows))
112
+ * )
113
+ * ```
114
+ *
115
+ * @since 1.0.0
116
+ * @category Constructors
117
+ */
118
+ export const toHttpApiGroup = <const Name extends string, const Workflows extends NonEmptyReadonlyArray<Workflow.Any>>(
119
+ name: Name,
120
+ workflows: Workflows
121
+ ): HttpApiGroup.HttpApiGroup<Name, ConvertHttpApi<Workflows[number]>> => {
122
+ let group = HttpApiGroup.make(name)
123
+ for (const workflow of workflows) {
124
+ const path = `/${tagToPath(workflow.name)}` as const
125
+ group = group.add(
126
+ HttpApiEndpoint.post(workflow.name, path)
127
+ .setPayload(workflow.payloadSchema)
128
+ .addSuccess(workflow.successSchema)
129
+ .addError(workflow.errorSchema as any)
130
+ .annotateContext(workflow.annotations)
131
+ ).add(
132
+ HttpApiEndpoint.post(workflow.name + "Discard", `${path}/discard`)
133
+ .setPayload(workflow.payloadSchema)
134
+ .annotateContext(workflow.annotations)
135
+ ) as any
136
+ }
137
+ return group as any
138
+ }
139
+
140
+ const tagToPath = (tag: string): string =>
141
+ tag
142
+ .replace(/[^a-zA-Z0-9]+/g, "-") // Replace non-alphanumeric characters with hyphen
143
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen before uppercase letters
144
+ .toLowerCase()
145
+
146
+ /**
147
+ * @since 1.0.0
148
+ */
149
+ export type ConvertHttpApi<Workflows extends Workflow.Any> = Workflows extends Workflow.Workflow<
150
+ infer _Name,
151
+ infer _Payload,
152
+ infer _Success,
153
+ infer _Error
154
+ > ?
155
+ | HttpApiEndpoint.HttpApiEndpoint<
156
+ _Name,
157
+ "POST",
158
+ never,
159
+ never,
160
+ _Payload["Type"],
161
+ never,
162
+ _Success["Type"],
163
+ _Error["Type"],
164
+ _Payload["Context"] | _Success["Context"],
165
+ _Error["Context"]
166
+ >
167
+ | HttpApiEndpoint.HttpApiEndpoint<
168
+ `${_Name}Discard`,
169
+ "POST",
170
+ never,
171
+ never,
172
+ _Payload["Type"],
173
+ never,
174
+ void,
175
+ never,
176
+ _Payload["Context"]
177
+ > :
178
+ never
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as HttpApi from "@effect/platform/HttpApi"
5
+ import * as HttpApiBuilder from "@effect/platform/HttpApiBuilder"
6
+ import type { ApiGroup, HttpApiGroup } from "@effect/platform/HttpApiGroup"
7
+ import type * as Rpc from "@effect/rpc/Rpc"
8
+ import type { NonEmptyReadonlyArray } from "effect/Array"
9
+ import * as Context from "effect/Context"
10
+ import * as Effect from "effect/Effect"
11
+ import * as Layer from "effect/Layer"
12
+ import type * as Workflow from "./Workflow.js"
13
+ import type { WorkflowEngine } from "./WorkflowEngine.js"
14
+
15
+ /**
16
+ * @since 1.0.0
17
+ * @category Layers
18
+ */
19
+ export const layerHttpApi = <
20
+ ApiId extends string,
21
+ Groups extends HttpApiGroup.Any,
22
+ ApiE,
23
+ ApiR,
24
+ Name extends HttpApiGroup.Name<Groups>,
25
+ const Workflows extends NonEmptyReadonlyArray<Workflow.Any>
26
+ >(
27
+ api: HttpApi.HttpApi<ApiId, Groups, ApiE, ApiR>,
28
+ name: Name,
29
+ workflows: Workflows
30
+ ): Layer.Layer<
31
+ ApiGroup<ApiId, Name>,
32
+ never,
33
+ WorkflowEngine | Workflow.Registrations<Workflows[number]> | Workflow.Requirements<Workflows[number]>
34
+ > =>
35
+ HttpApiBuilder.group(
36
+ api,
37
+ name,
38
+ Effect.fnUntraced(function*(handlers_) {
39
+ let handlers = handlers_ as any
40
+ for (const workflow_ of workflows) {
41
+ const workflow = workflow_ as Workflow.Workflow<string, any, any, any>
42
+ handlers = handlers
43
+ .handle(
44
+ workflow.name as any,
45
+ ({ payload }: { payload: any }) => workflow.execute(payload)
46
+ )
47
+ .handle(
48
+ workflow.name + "Discard" as any,
49
+ ({ payload }: { payload: any }) => workflow.execute(payload, { discard: true } as any)
50
+ )
51
+ }
52
+ return handlers as HttpApiBuilder.Handlers<never, never, never>
53
+ })
54
+ )
55
+
56
+ /**
57
+ * @since 1.0.0
58
+ * @category Layers
59
+ */
60
+ export const layerRpcHandlers = <
61
+ const Workflows extends NonEmptyReadonlyArray<Workflow.Any>,
62
+ const Prefix extends string = ""
63
+ >(workflows: Workflows, options?: {
64
+ readonly prefix?: Prefix
65
+ }): Layer.Layer<
66
+ RpcHandlers<Workflows[number], Prefix>,
67
+ never,
68
+ WorkflowEngine | Workflow.Registrations<Workflows[number]> | Workflow.Requirements<Workflows[number]>
69
+ > =>
70
+ Layer.effectContext(Effect.gen(function*() {
71
+ const context = yield* Effect.context<never>()
72
+ const prefix = options?.prefix ?? ""
73
+ const handlers = new Map<string, Rpc.Handler<string>>()
74
+ for (const workflow_ of workflows) {
75
+ const workflow = workflow_ as Workflow.Workflow<string, any, any, any>
76
+ const tag = `${prefix}${workflow.name}`
77
+ const tagDiscard = `${tag}Discard`
78
+ const key = `@effect/rpc/Rpc/${tag}`
79
+ const keyDiscard = `${key}Discard`
80
+ handlers.set(key, {
81
+ context,
82
+ tag,
83
+ handler: (payload: any) => workflow.execute(payload) as any
84
+ } as any)
85
+ handlers.set(keyDiscard, {
86
+ context,
87
+ tag: tagDiscard,
88
+ handler: (payload: any) => workflow.execute(payload, { discard: true } as any) as any
89
+ } as any)
90
+ }
91
+ return Context.unsafeMake(handlers)
92
+ }))
93
+
94
+ /**
95
+ * @since 1.0.0
96
+ */
97
+ export type RpcHandlers<Workflows extends Workflow.Any, Prefix extends string> = Workflows extends Workflow.Workflow<
98
+ infer _Name,
99
+ infer _Payload,
100
+ infer _Success,
101
+ infer _Error
102
+ > ? Rpc.Handler<`${Prefix}${_Name}`> | Rpc.Handler<`${Prefix}${_Name}Discard`>
103
+ : never
package/src/index.ts CHANGED
@@ -22,3 +22,13 @@ export * as Workflow from "./Workflow.js"
22
22
  * @since 1.0.0
23
23
  */
24
24
  export * as WorkflowEngine from "./WorkflowEngine.js"
25
+
26
+ /**
27
+ * @since 1.0.0
28
+ */
29
+ export * as WorkflowProxy from "./WorkflowProxy.js"
30
+
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+ export * as WorkflowProxyServer from "./WorkflowProxyServer.js"