@effect/workflow 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/dist/cjs/Activity.js +1 -0
- package/dist/cjs/Activity.js.map +1 -1
- package/dist/cjs/Workflow.js +24 -6
- package/dist/cjs/Workflow.js.map +1 -1
- package/dist/dts/Activity.d.ts +1 -0
- package/dist/dts/Activity.d.ts.map +1 -1
- package/dist/dts/Workflow.d.ts +63 -1
- package/dist/dts/Workflow.d.ts.map +1 -1
- package/dist/esm/Activity.js +1 -0
- package/dist/esm/Activity.js.map +1 -1
- package/dist/esm/Workflow.js +23 -4
- package/dist/esm/Workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/Activity.ts +6 -0
- package/src/Workflow.ts +95 -2
package/README.md
CHANGED
|
@@ -66,7 +66,19 @@ const EmailWorkflowLayer = EmailWorkflow.toLayer(
|
|
|
66
66
|
})
|
|
67
67
|
}
|
|
68
68
|
})
|
|
69
|
-
}).pipe(
|
|
69
|
+
}).pipe(
|
|
70
|
+
Activity.retry({ times: 5 }),
|
|
71
|
+
EmailWorkflow.withCompensation(
|
|
72
|
+
Effect.fn(function* (value, cause) {
|
|
73
|
+
// This is a compensation finalizer that will be executed if the workflow
|
|
74
|
+
// fails.
|
|
75
|
+
//
|
|
76
|
+
// You can use the success `value` of the wrapped effect, as well as the
|
|
77
|
+
// Cause of the workflow failure.
|
|
78
|
+
yield* Effect.log(`Compensating activity SendEmail`)
|
|
79
|
+
})
|
|
80
|
+
)
|
|
81
|
+
)
|
|
70
82
|
|
|
71
83
|
// Use the `DurableClock` to sleep for a specified duration.
|
|
72
84
|
// The workflow will pause execution for the specified duration.
|
package/dist/cjs/Activity.js
CHANGED
|
@@ -40,6 +40,7 @@ const make = options => {
|
|
|
40
40
|
failure: errorSchema,
|
|
41
41
|
defect: Schema.Defect
|
|
42
42
|
}),
|
|
43
|
+
execute: options.execute,
|
|
43
44
|
executeEncoded: Effect.matchEffect(options.execute, {
|
|
44
45
|
onFailure: error => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema)(error)), Effect.fail),
|
|
45
46
|
onSuccess: value => Effect.orDie(Schema.encode(self.successSchema)(value))
|
package/dist/cjs/Activity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Activity.js","names":["Context","_interopRequireWildcard","require","Effect","Effectable","_Function","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","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","dual","effect","suspend","attempt","provideService","CurrentAttempt","pipe","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","makeHashDigest","executionId","EngineTag","GenericTag","fnUntraced","activity","engine","result","activityExecute","_tag","suspended","interrupt","exit","decode"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,uBAAA,CAAAC,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAAqD,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,CAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AATrD;;;;AAYA;;;;AAIO,MAAMkB,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAkBE,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Activity.js","names":["Context","_interopRequireWildcard","require","Effect","Effectable","_Function","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","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","dual","effect","suspend","attempt","provideService","CurrentAttempt","pipe","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","makeHashDigest","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":[]}
|
package/dist/cjs/Workflow.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.make = exports.isResult = exports.intoResult = exports.fromTaggedRequest = exports.TypeId = exports.Suspended = exports.ResultTypeId = exports.Result = exports.Complete = void 0;
|
|
6
|
+
exports.withCompensation = exports.make = exports.isResult = exports.intoResult = exports.fromTaggedRequest = exports.TypeId = exports.Suspended = exports.ResultTypeId = exports.Result = exports.Complete = void 0;
|
|
7
7
|
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
8
8
|
var Data = _interopRequireWildcard(require("effect/Data"));
|
|
9
9
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
10
|
var Exit = _interopRequireWildcard(require("effect/Exit"));
|
|
11
|
+
var _Function = require("effect/Function");
|
|
11
12
|
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
12
13
|
var Predicate = _interopRequireWildcard(require("effect/Predicate"));
|
|
13
14
|
var PrimaryKey = _interopRequireWildcard(require("effect/PrimaryKey"));
|
|
@@ -15,10 +16,6 @@ var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
|
15
16
|
var Schema = _interopRequireWildcard(require("effect/Schema"));
|
|
16
17
|
var _crypto = require("./internal/crypto.js");
|
|
17
18
|
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
|
-
/**
|
|
19
|
-
* @since 1.0.0
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
19
|
/**
|
|
23
20
|
* @since 1.0.0
|
|
24
21
|
* @category Symbols
|
|
@@ -87,7 +84,8 @@ const make = options => {
|
|
|
87
84
|
yield* engine.register(self, (payload, executionId) => execute(payload, executionId).pipe(Effect.provide(context)));
|
|
88
85
|
return EngineTag.context(engine);
|
|
89
86
|
})),
|
|
90
|
-
executionId: payload => makeExecutionId(self.payloadSchema.make(payload))
|
|
87
|
+
executionId: payload => makeExecutionId(self.payloadSchema.make(payload)),
|
|
88
|
+
withCompensation
|
|
91
89
|
};
|
|
92
90
|
return self;
|
|
93
91
|
};
|
|
@@ -194,5 +192,25 @@ const intoResult = effect => Effect.uninterruptibleMask(restore => Effect.withFi
|
|
|
194
192
|
});
|
|
195
193
|
}
|
|
196
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
|
+
*/
|
|
197
206
|
exports.intoResult = intoResult;
|
|
207
|
+
const withCompensation = exports.withCompensation = /*#__PURE__*/(0, _Function.dual)(2, (effect, compensation) => Effect.uninterruptibleMask(restore => Effect.contextWithEffect(context => {
|
|
208
|
+
const instance = Context.get(context, InstanceTag);
|
|
209
|
+
return Effect.tap(restore(effect), value => Effect.addFinalizer(exit => {
|
|
210
|
+
if (Exit.isSuccess(exit) || instance.suspended) {
|
|
211
|
+
return Effect.void;
|
|
212
|
+
}
|
|
213
|
+
return compensation(value, exit.cause);
|
|
214
|
+
}));
|
|
215
|
+
})));
|
|
198
216
|
//# sourceMappingURL=Workflow.js.map
|
package/dist/cjs/Workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","names":["Context","_interopRequireWildcard","require","Data","Effect","Exit","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","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":";;;;;;
|
|
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":[]}
|
package/dist/dts/Activity.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export interface Activity<Success extends Schema.Schema.Any, Error extends Schem
|
|
|
26
26
|
readonly successSchema: Success;
|
|
27
27
|
readonly errorSchema: Error;
|
|
28
28
|
readonly exitSchema: Schema.Schema<Exit.Exit<Success["Type"], Error["Type"]>, Exit.Exit<Success["Encoded"], Error["Encoded"]>, Success["Context"] | Error["Context"]>;
|
|
29
|
+
readonly execute: Effect.Effect<Success["Type"], Error["Type"], Success["Context"] | Error["Context"] | R | WorkflowEngine | WorkflowInstance>;
|
|
29
30
|
readonly executeEncoded: Effect.Effect<Success["Encoded"], Error["Encoded"], Success["Context"] | Error["Context"] | R | WorkflowEngine | WorkflowInstance>;
|
|
30
31
|
}
|
|
31
32
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../src/Activity.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../src/Activity.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/Workflow.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "effect/Cause";
|
|
1
5
|
import * as Effect from "effect/Effect";
|
|
2
6
|
import * as Exit from "effect/Exit";
|
|
3
7
|
import * as Layer from "effect/Layer";
|
|
@@ -6,6 +10,7 @@ import * as PrimaryKey from "effect/PrimaryKey";
|
|
|
6
10
|
import * as Schedule from "effect/Schedule";
|
|
7
11
|
import * as Schema from "effect/Schema";
|
|
8
12
|
import type * as AST from "effect/SchemaAST";
|
|
13
|
+
import type * as Scope from "effect/Scope";
|
|
9
14
|
import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.js";
|
|
10
15
|
/**
|
|
11
16
|
* @since 1.0.0
|
|
@@ -41,11 +46,23 @@ export interface Workflow<Name extends string, Payload extends AnyStructSchema,
|
|
|
41
46
|
* Create a layer that registers the workflow and provides an effect to
|
|
42
47
|
* execute it.
|
|
43
48
|
*/
|
|
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"]>;
|
|
49
|
+
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
50
|
/**
|
|
46
51
|
* For the given payload, compute the deterministic execution ID.
|
|
47
52
|
*/
|
|
48
53
|
readonly executionId: (payload: Schema.Simplify<Schema.Struct.Constructor<Payload["fields"]>>) => Effect.Effect<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
56
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
57
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
58
|
+
*
|
|
59
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
60
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
61
|
+
*/
|
|
62
|
+
readonly withCompensation: {
|
|
63
|
+
<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>;
|
|
64
|
+
<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>;
|
|
65
|
+
};
|
|
49
66
|
}
|
|
50
67
|
/**
|
|
51
68
|
* @since 1.0.0
|
|
@@ -78,6 +95,14 @@ export interface Registration<Name extends string> {
|
|
|
78
95
|
readonly _: unique symbol;
|
|
79
96
|
readonly name: Name;
|
|
80
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
* @category Models
|
|
101
|
+
*/
|
|
102
|
+
export interface Execution<Name extends string> {
|
|
103
|
+
readonly _: unique symbol;
|
|
104
|
+
readonly name: Name;
|
|
105
|
+
}
|
|
81
106
|
/**
|
|
82
107
|
* @since 1.0.0
|
|
83
108
|
* @category Models
|
|
@@ -207,5 +232,42 @@ export declare const Result: <Success extends Schema.Schema.Any, Error extends S
|
|
|
207
232
|
* @category Result
|
|
208
233
|
*/
|
|
209
234
|
export declare const intoResult: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<Result<A, E>, never, R | WorkflowInstance>;
|
|
235
|
+
/**
|
|
236
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
237
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
238
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
239
|
+
*
|
|
240
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
241
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
242
|
+
*
|
|
243
|
+
* @since 1.0.0
|
|
244
|
+
* @category Compensation
|
|
245
|
+
*/
|
|
246
|
+
export declare const withCompensation: {
|
|
247
|
+
/**
|
|
248
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
249
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
250
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
251
|
+
*
|
|
252
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
253
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
254
|
+
*
|
|
255
|
+
* @since 1.0.0
|
|
256
|
+
* @category Compensation
|
|
257
|
+
*/
|
|
258
|
+
<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>;
|
|
259
|
+
/**
|
|
260
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
261
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
262
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
263
|
+
*
|
|
264
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
265
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
266
|
+
*
|
|
267
|
+
* @since 1.0.0
|
|
268
|
+
* @category Compensation
|
|
269
|
+
*/
|
|
270
|
+
<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>;
|
|
271
|
+
};
|
|
210
272
|
export {};
|
|
211
273
|
//# sourceMappingURL=Workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../src/Workflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Workflow.d.ts","sourceRoot":"","sources":["../../src/Workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Activity.js
CHANGED
|
@@ -32,6 +32,7 @@ export const make = options => {
|
|
|
32
32
|
failure: errorSchema,
|
|
33
33
|
defect: Schema.Defect
|
|
34
34
|
}),
|
|
35
|
+
execute: options.execute,
|
|
35
36
|
executeEncoded: Effect.matchEffect(options.execute, {
|
|
36
37
|
onFailure: error => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema)(error)), Effect.fail),
|
|
37
38
|
onSuccess: value => Effect.orDie(Schema.encode(self.successSchema)(value))
|
package/dist/esm/Activity.js.map
CHANGED
|
@@ -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","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":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAE/C,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,cAAc,QAAQ,sBAAsB;AAGrD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;
|
|
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":[]}
|
package/dist/esm/Workflow.js
CHANGED
|
@@ -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";
|
|
@@ -79,7 +77,8 @@ export const make = options => {
|
|
|
79
77
|
yield* engine.register(self, (payload, executionId) => execute(payload, executionId).pipe(Effect.provide(context)));
|
|
80
78
|
return EngineTag.context(engine);
|
|
81
79
|
})),
|
|
82
|
-
executionId: payload => makeExecutionId(self.payloadSchema.make(payload))
|
|
80
|
+
executionId: payload => makeExecutionId(self.payloadSchema.make(payload)),
|
|
81
|
+
withCompensation
|
|
83
82
|
};
|
|
84
83
|
return self;
|
|
85
84
|
};
|
|
@@ -180,4 +179,24 @@ export const intoResult = effect => Effect.uninterruptibleMask(restore => Effect
|
|
|
180
179
|
});
|
|
181
180
|
}
|
|
182
181
|
})));
|
|
182
|
+
/**
|
|
183
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
184
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
185
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
186
|
+
*
|
|
187
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
188
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
189
|
+
*
|
|
190
|
+
* @since 1.0.0
|
|
191
|
+
* @category Compensation
|
|
192
|
+
*/
|
|
193
|
+
export const withCompensation = /*#__PURE__*/dual(2, (effect, compensation) => Effect.uninterruptibleMask(restore => Effect.contextWithEffect(context => {
|
|
194
|
+
const instance = Context.get(context, InstanceTag);
|
|
195
|
+
return Effect.tap(restore(effect), value => Effect.addFinalizer(exit => {
|
|
196
|
+
if (Exit.isSuccess(exit) || instance.suspended) {
|
|
197
|
+
return Effect.void;
|
|
198
|
+
}
|
|
199
|
+
return compensation(value, exit.cause);
|
|
200
|
+
}));
|
|
201
|
+
})));
|
|
183
202
|
//# sourceMappingURL=Workflow.js.map
|
package/dist/esm/Workflow.js.map
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/package.json
CHANGED
package/src/Activity.ts
CHANGED
|
@@ -46,6 +46,11 @@ export interface Activity<
|
|
|
46
46
|
Exit.Exit<Success["Encoded"], Error["Encoded"]>,
|
|
47
47
|
Success["Context"] | Error["Context"]
|
|
48
48
|
>
|
|
49
|
+
readonly execute: Effect.Effect<
|
|
50
|
+
Success["Type"],
|
|
51
|
+
Error["Type"],
|
|
52
|
+
Success["Context"] | Error["Context"] | R | WorkflowEngine | WorkflowInstance
|
|
53
|
+
>
|
|
49
54
|
readonly executeEncoded: Effect.Effect<
|
|
50
55
|
Success["Encoded"],
|
|
51
56
|
Error["Encoded"],
|
|
@@ -94,6 +99,7 @@ export const make = <
|
|
|
94
99
|
failure: errorSchema,
|
|
95
100
|
defect: Schema.Defect
|
|
96
101
|
}),
|
|
102
|
+
execute: options.execute,
|
|
97
103
|
executeEncoded: Effect.matchEffect(options.execute, {
|
|
98
104
|
onFailure: (error) => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema as any)(error)), Effect.fail),
|
|
99
105
|
onSuccess: (value) => Effect.orDie(Schema.encode(self.successSchema)(value))
|
package/src/Workflow.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import type * as Cause from "effect/Cause"
|
|
4
5
|
import * as Context from "effect/Context"
|
|
5
6
|
import * as Data from "effect/Data"
|
|
6
7
|
import * as Effect from "effect/Effect"
|
|
7
8
|
import * as Exit from "effect/Exit"
|
|
9
|
+
import { dual } from "effect/Function"
|
|
8
10
|
import * as Layer from "effect/Layer"
|
|
9
11
|
import type { Pipeable } from "effect/Pipeable"
|
|
10
12
|
import * as Predicate from "effect/Predicate"
|
|
@@ -12,6 +14,7 @@ import * as PrimaryKey from "effect/PrimaryKey"
|
|
|
12
14
|
import * as Schedule from "effect/Schedule"
|
|
13
15
|
import * as Schema from "effect/Schema"
|
|
14
16
|
import type * as AST from "effect/SchemaAST"
|
|
17
|
+
import type * as Scope from "effect/Scope"
|
|
15
18
|
import { makeHashDigest } from "./internal/crypto.js"
|
|
16
19
|
import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.js"
|
|
17
20
|
|
|
@@ -76,7 +79,7 @@ export interface Workflow<
|
|
|
76
79
|
Registration<Name> | WorkflowEngine,
|
|
77
80
|
never,
|
|
78
81
|
| WorkflowEngine
|
|
79
|
-
| Exclude<R, WorkflowEngine | WorkflowInstance>
|
|
82
|
+
| Exclude<R, WorkflowEngine | WorkflowInstance | Execution<Name> | Scope.Scope>
|
|
80
83
|
| Payload["Context"]
|
|
81
84
|
| Success["Context"]
|
|
82
85
|
| Error["Context"]
|
|
@@ -88,6 +91,26 @@ export interface Workflow<
|
|
|
88
91
|
readonly executionId: (
|
|
89
92
|
payload: Schema.Simplify<Schema.Struct.Constructor<Payload["fields"]>>
|
|
90
93
|
) => Effect.Effect<string>
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
97
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
98
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
99
|
+
*
|
|
100
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
101
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
102
|
+
*/
|
|
103
|
+
readonly withCompensation: {
|
|
104
|
+
<A, R2>(
|
|
105
|
+
compensation: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>
|
|
106
|
+
): <E, R>(
|
|
107
|
+
effect: Effect.Effect<A, E, R>
|
|
108
|
+
) => Effect.Effect<A, E, R | R2 | WorkflowInstance | Execution<Name> | Scope.Scope>
|
|
109
|
+
<A, E, R, R2>(
|
|
110
|
+
effect: Effect.Effect<A, E, R>,
|
|
111
|
+
compensation: (value: A, cause: Cause.Cause<Error["Type"]>) => Effect.Effect<void, never, R2>
|
|
112
|
+
): Effect.Effect<A, E, R | R2 | WorkflowInstance | Execution<Name> | Scope.Scope>
|
|
113
|
+
}
|
|
91
114
|
}
|
|
92
115
|
|
|
93
116
|
/**
|
|
@@ -124,6 +147,15 @@ export interface Registration<Name extends string> {
|
|
|
124
147
|
readonly name: Name
|
|
125
148
|
}
|
|
126
149
|
|
|
150
|
+
/**
|
|
151
|
+
* @since 1.0.0
|
|
152
|
+
* @category Models
|
|
153
|
+
*/
|
|
154
|
+
export interface Execution<Name extends string> {
|
|
155
|
+
readonly _: unique symbol
|
|
156
|
+
readonly name: Name
|
|
157
|
+
}
|
|
158
|
+
|
|
127
159
|
/**
|
|
128
160
|
* @since 1.0.0
|
|
129
161
|
* @category Models
|
|
@@ -229,7 +261,8 @@ export const make = <
|
|
|
229
261
|
) as any)
|
|
230
262
|
return EngineTag.context(engine)
|
|
231
263
|
})) as any,
|
|
232
|
-
executionId: (payload) => makeExecutionId(self.payloadSchema.make(payload))
|
|
264
|
+
executionId: (payload) => makeExecutionId(self.payloadSchema.make(payload)),
|
|
265
|
+
withCompensation
|
|
233
266
|
}
|
|
234
267
|
|
|
235
268
|
return self
|
|
@@ -399,3 +432,63 @@ export const intoResult = <A, E, R>(
|
|
|
399
432
|
})
|
|
400
433
|
)
|
|
401
434
|
)
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
438
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
439
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
440
|
+
*
|
|
441
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
442
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
443
|
+
*
|
|
444
|
+
* @since 1.0.0
|
|
445
|
+
* @category Compensation
|
|
446
|
+
*/
|
|
447
|
+
export const withCompensation: {
|
|
448
|
+
/**
|
|
449
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
450
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
451
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
452
|
+
*
|
|
453
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
454
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
455
|
+
*
|
|
456
|
+
* @since 1.0.0
|
|
457
|
+
* @category Compensation
|
|
458
|
+
*/
|
|
459
|
+
<A, R2>(
|
|
460
|
+
compensation: (value: A, cause: Cause.Cause<unknown>) => Effect.Effect<void, never, R2>
|
|
461
|
+
): <E, R>(
|
|
462
|
+
effect: Effect.Effect<A, E, R>
|
|
463
|
+
) => Effect.Effect<A, E, R | R2 | WorkflowInstance | Scope.Scope>
|
|
464
|
+
/**
|
|
465
|
+
* Add compensation logic to an effect inside a Workflow. The compensation finalizer will be
|
|
466
|
+
* called if the entire workflow fails, allowing you to perform cleanup or
|
|
467
|
+
* other actions based on the success value and the cause of the workflow failure.
|
|
468
|
+
*
|
|
469
|
+
* NOTE: Compensation will not work for nested activities. Compensation
|
|
470
|
+
* finalizers are only registered for top-level effects in the workflow.
|
|
471
|
+
*
|
|
472
|
+
* @since 1.0.0
|
|
473
|
+
* @category Compensation
|
|
474
|
+
*/
|
|
475
|
+
<A, E, R, R2>(
|
|
476
|
+
effect: Effect.Effect<A, E, R>,
|
|
477
|
+
compensation: (value: A, cause: Cause.Cause<unknown>) => Effect.Effect<void, never, R2>
|
|
478
|
+
): Effect.Effect<A, E, R | R2 | WorkflowInstance | Scope.Scope>
|
|
479
|
+
} = dual(2, <A, E, R, R2>(
|
|
480
|
+
effect: Effect.Effect<A, E, R>,
|
|
481
|
+
compensation: (value: A, cause: Cause.Cause<unknown>) => Effect.Effect<void, never, R2>
|
|
482
|
+
): Effect.Effect<A, E, R | R2 | WorkflowInstance | Scope.Scope> =>
|
|
483
|
+
Effect.uninterruptibleMask((restore) =>
|
|
484
|
+
Effect.contextWithEffect((context: Context.Context<WorkflowInstance>) => {
|
|
485
|
+
const instance = Context.get(context, InstanceTag)
|
|
486
|
+
return Effect.tap(restore(effect), (value) =>
|
|
487
|
+
Effect.addFinalizer((exit) => {
|
|
488
|
+
if (Exit.isSuccess(exit) || instance.suspended) {
|
|
489
|
+
return Effect.void
|
|
490
|
+
}
|
|
491
|
+
return compensation(value, exit.cause)
|
|
492
|
+
}))
|
|
493
|
+
})
|
|
494
|
+
))
|