@effect/workflow
Advanced tools
+11
-3
@@ -7,2 +7,3 @@ "use strict"; | ||
| exports.retry = exports.raceAll = exports.make = exports.executionIdWithAttempt = exports.TypeId = exports.CurrentAttempt = void 0; | ||
| var Cause = _interopRequireWildcard(require("effect/Cause")); | ||
| var Context = _interopRequireWildcard(require("effect/Context")); | ||
@@ -12,2 +13,3 @@ var Effect = _interopRequireWildcard(require("effect/Effect")); | ||
| var _Function = require("effect/Function"); | ||
| var Schedule = _interopRequireWildcard(require("effect/Schedule")); | ||
| var Schema = _interopRequireWildcard(require("effect/Schema")); | ||
@@ -32,2 +34,3 @@ var DurableDeferred = _interopRequireWildcard(require("./DurableDeferred.js")); | ||
| let execute; | ||
| const executeWithoutInterrupt = retryOnInterrupt(options.name, options.interruptRetryPolicy)(options.execute); | ||
| const self = { | ||
@@ -44,4 +47,4 @@ ...Effectable.CommitPrototype, | ||
| }), | ||
| execute: options.execute, | ||
| executeEncoded: Effect.matchEffect(options.execute, { | ||
| execute: executeWithoutInterrupt, | ||
| executeEncoded: Effect.matchEffect(executeWithoutInterrupt, { | ||
| onFailure: error => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema)(error)), Effect.fail), | ||
@@ -57,2 +60,8 @@ onSuccess: value => Effect.orDie(Schema.encode(self.successSchema)(value)) | ||
| }; | ||
| exports.make = make; | ||
| const interruptRetryPolicy = /*#__PURE__*/Schedule.exponential(100, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced("10 seconds")), /*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.recurs(10)), /*#__PURE__*/Schedule.whileInput(cause => Cause.isInterrupted(cause))); | ||
| const retryOnInterrupt = (name, policy = interruptRetryPolicy) => effect => effect.pipe(Effect.sandbox, Effect.retry(policy), Effect.catchAll(cause => { | ||
| if (!Cause.isInterrupted(cause)) return Effect.failCause(cause); | ||
| return Effect.die(`Activity "${name}" interrupted and retry attempts exhausted`); | ||
| })); | ||
| /** | ||
@@ -62,3 +71,2 @@ * @since 1.0.0 | ||
| */ | ||
| exports.make = make; | ||
| const retry = exports.retry = /*#__PURE__*/(0, _Function.dual)(2, (effect, options) => Effect.suspend(() => { | ||
@@ -65,0 +73,0 @@ let attempt = 1; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Activity.js","names":["Context","_interopRequireWildcard","require","Effect","Effectable","_Function","Schema","DurableDeferred","_crypto","Workflow","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","raceAll","activities","Union","map","activity","effects","EngineTag","GenericTag","fnUntraced","engine","annotateCurrentSpan","result","wrapActivityResult","activityExecute","_","_tag","exit","decode","withSpan","captureStackTrace"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]} | ||
| {"version":3,"file":"Activity.js","names":["Cause","_interopRequireWildcard","require","Context","Effect","Effectable","_Function","Schedule","Schema","DurableDeferred","_crypto","Workflow","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","executeWithoutInterrupt","retryOnInterrupt","name","interruptRetryPolicy","self","CommitPrototype","exitSchema","ExitFromSelf","failure","defect","Defect","executeEncoded","matchEffect","onFailure","flatMap","orDie","encode","fail","onSuccess","value","commit","makeExecute","exponential","pipe","union","spaced","recurs","whileInput","cause","isInterrupted","policy","effect","sandbox","retry","catchAll","failCause","die","dual","suspend","attempt","provideService","CurrentAttempt","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","makeHashDigest","executionId","raceAll","activities","Union","map","activity","effects","EngineTag","GenericTag","fnUntraced","engine","annotateCurrentSpan","result","wrapActivityResult","activityExecute","_","_tag","exit","decode","withSpan","captureStackTrace"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]} |
@@ -5,5 +5,7 @@ /** | ||
| import type { NonEmptyReadonlyArray } from "effect/Array"; | ||
| import * as Cause from "effect/Cause"; | ||
| import * as Context from "effect/Context"; | ||
| import * as Effect from "effect/Effect"; | ||
| import type * as Exit from "effect/Exit"; | ||
| import * as Schedule from "effect/Schedule"; | ||
| import * as Schema from "effect/Schema"; | ||
@@ -55,2 +57,3 @@ import type { Scope } from "effect/Scope"; | ||
| readonly execute: Effect.Effect<Success["Type"], Error["Type"], R>; | ||
| readonly interruptRetryPolicy?: Schedule.Schedule<any, Cause.Cause<unknown>> | undefined; | ||
| }) => Activity<Success, Error, Exclude<R, WorkflowInstance | WorkflowEngine | Scope>>; | ||
@@ -57,0 +60,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../src/Activity.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"Activity.d.ts","sourceRoot":"","sources":["../../src/Activity.ts"],"names":[],"mappings":"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"} |
+10
-2
@@ -0,1 +1,2 @@ | ||
| import * as Cause from "effect/Cause"; | ||
| import * as Context from "effect/Context"; | ||
@@ -5,2 +6,3 @@ import * as Effect from "effect/Effect"; | ||
| import { dual } from "effect/Function"; | ||
| import * as Schedule from "effect/Schedule"; | ||
| import * as Schema from "effect/Schema"; | ||
@@ -24,2 +26,3 @@ import * as DurableDeferred from "./DurableDeferred.js"; | ||
| let execute; | ||
| const executeWithoutInterrupt = retryOnInterrupt(options.name, options.interruptRetryPolicy)(options.execute); | ||
| const self = { | ||
@@ -36,4 +39,4 @@ ...Effectable.CommitPrototype, | ||
| }), | ||
| execute: options.execute, | ||
| executeEncoded: Effect.matchEffect(options.execute, { | ||
| execute: executeWithoutInterrupt, | ||
| executeEncoded: Effect.matchEffect(executeWithoutInterrupt, { | ||
| onFailure: error => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema)(error)), Effect.fail), | ||
@@ -49,2 +52,7 @@ onSuccess: value => Effect.orDie(Schema.encode(self.successSchema)(value)) | ||
| }; | ||
| const interruptRetryPolicy = /*#__PURE__*/Schedule.exponential(100, 1.5).pipe(/*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.spaced("10 seconds")), /*#__PURE__*/Schedule.union(/*#__PURE__*/Schedule.recurs(10)), /*#__PURE__*/Schedule.whileInput(cause => Cause.isInterrupted(cause))); | ||
| const retryOnInterrupt = (name, policy = interruptRetryPolicy) => effect => effect.pipe(Effect.sandbox, Effect.retry(policy), Effect.catchAll(cause => { | ||
| if (!Cause.isInterrupted(cause)) return Effect.failCause(cause); | ||
| return Effect.die(`Activity "${name}" interrupted and retry attempts exhausted`); | ||
| })); | ||
| /** | ||
@@ -51,0 +59,0 @@ * @since 1.0.0 |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Activity.js","names":["Context","Effect","Effectable","dual","Schema","DurableDeferred","makeHashDigest","Workflow","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","raceAll","activities","Union","map","activity","effects","EngineTag","GenericTag","fnUntraced","engine","annotateCurrentSpan","result","wrapActivityResult","activityExecute","_","_tag","exit","decode","withSpan","captureStackTrace"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]} | ||
| {"version":3,"file":"Activity.js","names":["Cause","Context","Effect","Effectable","dual","Schedule","Schema","DurableDeferred","makeHashDigest","Workflow","TypeId","Symbol","for","make","options","successSchema","success","Void","errorSchema","error","Never","execute","executeWithoutInterrupt","retryOnInterrupt","name","interruptRetryPolicy","self","CommitPrototype","exitSchema","ExitFromSelf","failure","defect","Defect","executeEncoded","matchEffect","onFailure","flatMap","orDie","encode","fail","onSuccess","value","commit","makeExecute","exponential","pipe","union","spaced","recurs","whileInput","cause","isInterrupted","policy","effect","sandbox","retry","catchAll","failCause","die","suspend","attempt","provideService","CurrentAttempt","Reference","defaultValue","executionIdWithAttempt","gen","instance","InstanceTag","executionId","raceAll","activities","Union","map","activity","effects","EngineTag","GenericTag","fnUntraced","engine","annotateCurrentSpan","result","wrapActivityResult","activityExecute","_","_tag","exit","decode","withSpan","captureStackTrace"],"sources":["../../src/Activity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]} |
+2
-2
| { | ||
| "name": "@effect/workflow", | ||
| "version": "0.12.0", | ||
| "version": "0.12.1", | ||
| "description": "Durable workflows for Effect", | ||
@@ -16,3 +16,3 @@ "license": "MIT", | ||
| "@effect/platform": "^0.93.0", | ||
| "@effect/rpc": "^0.72.0" | ||
| "@effect/rpc": "^0.72.1" | ||
| }, | ||
@@ -19,0 +19,0 @@ "publishConfig": { |
+29
-2
@@ -5,2 +5,3 @@ /** | ||
| import type { NonEmptyReadonlyArray } from "effect/Array" | ||
| import * as Cause from "effect/Cause" | ||
| import * as Context from "effect/Context" | ||
@@ -11,2 +12,3 @@ import * as Effect from "effect/Effect" | ||
| import { dual } from "effect/Function" | ||
| import * as Schedule from "effect/Schedule" | ||
| import * as Schema from "effect/Schema" | ||
@@ -92,2 +94,3 @@ import type { Scope } from "effect/Scope" | ||
| readonly execute: Effect.Effect<Success["Type"], Error["Type"], R> | ||
| readonly interruptRetryPolicy?: Schedule.Schedule<any, Cause.Cause<unknown>> | undefined | ||
| }): Activity<Success, Error, Exclude<R, WorkflowInstance | WorkflowEngine | Scope>> => { | ||
@@ -98,2 +101,6 @@ const successSchema = options.success ?? Schema.Void as any as Success | ||
| let execute!: Effect.Effect<Success["Type"], Error["Type"], any> | ||
| const executeWithoutInterrupt = retryOnInterrupt( | ||
| options.name, | ||
| options.interruptRetryPolicy | ||
| )(options.execute) | ||
| const self: Activity<Success, Error, Exclude<R, WorkflowInstance | WorkflowEngine>> = { | ||
@@ -110,4 +117,4 @@ ...Effectable.CommitPrototype, | ||
| }), | ||
| execute: options.execute, | ||
| executeEncoded: Effect.matchEffect(options.execute, { | ||
| execute: executeWithoutInterrupt, | ||
| executeEncoded: Effect.matchEffect(executeWithoutInterrupt, { | ||
| onFailure: (error) => Effect.flatMap(Effect.orDie(Schema.encode(self.errorSchema as any)(error)), Effect.fail), | ||
@@ -124,2 +131,22 @@ onSuccess: (value) => Effect.orDie(Schema.encode(self.successSchema)(value)) | ||
| const interruptRetryPolicy = Schedule.exponential(100, 1.5).pipe( | ||
| Schedule.union(Schedule.spaced("10 seconds")), | ||
| Schedule.union(Schedule.recurs(10)), | ||
| Schedule.whileInput((cause: Cause.Cause<unknown>) => Cause.isInterrupted(cause)) | ||
| ) | ||
| const retryOnInterrupt = ( | ||
| name: string, | ||
| policy: Schedule.Schedule<any, Cause.Cause<unknown>> = interruptRetryPolicy | ||
| ) => | ||
| <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> => | ||
| effect.pipe( | ||
| Effect.sandbox, | ||
| Effect.retry(policy), | ||
| Effect.catchAll((cause) => { | ||
| if (!Cause.isInterrupted(cause)) return Effect.failCause(cause) | ||
| return Effect.die(`Activity "${name}" interrupted and retry attempts exhausted`) | ||
| }) | ||
| ) | ||
| /** | ||
@@ -126,0 +153,0 @@ * @since 1.0.0 |
296542
1.78%4998
0.93%