effect 4.0.0-beta.52 → 4.0.0-beta.54
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/dist/Effect.d.ts +2 -1
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +29 -0
- package/dist/Effectable.d.ts.map +1 -0
- package/dist/Effectable.js +31 -0
- package/dist/Effectable.js.map +1 -0
- package/dist/Schema.js +1 -1
- package/dist/Schema.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/effect.js +1 -1
- package/dist/internal/effect.js.map +1 -1
- package/dist/testing/TestClock.js +1 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +4 -8
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +7 -4
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +19 -0
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +15 -10
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +1 -3
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +12 -11
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +1 -1
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +8 -7
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +1 -4
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +21 -3
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +0 -3
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +12 -8
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/Effect.ts +4 -1
- package/src/Effectable.ts +47 -0
- package/src/Schema.ts +1 -1
- package/src/index.ts +5 -0
- package/src/internal/effect.ts +1 -1
- package/src/testing/TestClock.ts +1 -1
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +1 -1
- package/src/unstable/http/HttpIncomingMessage.ts +4 -4
- package/src/unstable/reactivity/AtomHttpApi.ts +14 -4
- package/src/unstable/socket/Socket.ts +63 -26
- package/src/unstable/sql/Statement.ts +19 -23
- package/src/unstable/workflow/Activity.ts +9 -9
- package/src/unstable/workflow/DurableDeferred.ts +23 -5
- package/src/unstable/workflow/Workflow.ts +14 -10
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Arr from "../../Array.js";
|
|
4
5
|
import * as Cause from "../../Cause.js";
|
|
5
6
|
import * as Context from "../../Context.js";
|
|
6
7
|
import * as Data from "../../Data.js";
|
|
7
8
|
import * as Effect from "../../Effect.js";
|
|
8
9
|
import * as Exit from "../../Exit.js";
|
|
9
10
|
import * as Fiber from "../../Fiber.js";
|
|
11
|
+
import * as Filter from "../../Filter.js";
|
|
10
12
|
import { constFalse, constTrue, dual, identity } from "../../Function.js";
|
|
11
13
|
import * as Layer from "../../Layer.js";
|
|
12
14
|
import * as Option from "../../Option.js";
|
|
@@ -197,11 +199,16 @@ export const intoResult = effect => Effect.contextWith(context => {
|
|
|
197
199
|
onSuccess: value => Effect.succeed(new Complete({
|
|
198
200
|
exit: Exit.succeed(value)
|
|
199
201
|
})),
|
|
200
|
-
onFailure: cause =>
|
|
201
|
-
cause
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
onFailure: cause => {
|
|
203
|
+
const [reasons, interrupts] = Arr.partition(cause.reasons, Filter.fromPredicate(Cause.isInterruptReason));
|
|
204
|
+
const hasInterruptsOnly = interrupts.length === cause.reasons.length;
|
|
205
|
+
const filtered = reasons.length === 0 ? cause : Cause.fromReasons(reasons);
|
|
206
|
+
return instance.suspended && hasInterruptsOnly ? Effect.succeed(new Suspended({
|
|
207
|
+
cause: instance.cause
|
|
208
|
+
})) : !instance.interrupted && hasInterruptsOnly || !captureDefects && Cause.hasDies(cause) ? Effect.failCause(filtered) : Effect.succeed(new Complete({
|
|
209
|
+
exit: Exit.failCause(filtered)
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
205
212
|
}), eff => Effect.onExitPrimitive(eff, exit => {
|
|
206
213
|
if (Exit.isFailure(exit)) {
|
|
207
214
|
return Scope.close(instance.scope, exit);
|
|
@@ -218,9 +225,6 @@ export const intoResult = effect => Effect.contextWith(context => {
|
|
|
218
225
|
export const wrapActivityResult = (effect, isSuspend) => Effect.contextWith(context => {
|
|
219
226
|
const instance = Context.get(context, InstanceTag);
|
|
220
227
|
const state = instance.activityState;
|
|
221
|
-
if (instance.suspended) {
|
|
222
|
-
return waitForZero(instance).pipe(Effect.andThen(suspend(instance)));
|
|
223
|
-
}
|
|
224
228
|
if (state.count === 0) state.latch.closeUnsafe();
|
|
225
229
|
state.count++;
|
|
226
230
|
return Effect.onExit(effect, exit => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Workflow.js","names":["Cause","Context","Data","Effect","Exit","Fiber","constFalse","constTrue","dual","identity","Layer","Option","Predicate","Schema","Issue","Parser","Tranformation","Scope","makeHashDigest","TypeId","EngineTag","Service","InstanceTag","make","options","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","annotations","empty","annotate","tag","value","add","annotateMerge","context","merge","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","discard","suspendedRetrySchedule","withSpan","captureStackTrace","poll","effect","attributes","interrupt","resume","toLayer","effectDiscard","gen","register","flatMap","orDie","makeEffect","withCompensation","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","schema","declareConstructor","Defect","exit","input","ast","_tag","fail","InvalidType","some","mapBothEager","decodeEffect","onSuccess","onFailure","issue","Composite","Pointer","expected","toCodecJson","link","transform","decode","encoded","encode","result","Suspended","Class","cause","optional","Result","Union","AnyOrVoid","Any","ResultEncoded","toEncoded","intoResult","contextWith","instance","get","captureDefects","workflow","CaptureDefects","suspendOnFailure","SuspendOnFailure","pipe","forkChild","startImmediately","fiber","onInterrupt","join","interruptible","catchCause","suspended","hasInterruptsOnly","die","squash","scoped","matchCauseEffect","succeed","interrupted","hasDies","failCause","eff","onExitPrimitive","isFailure","close","scope","void","uninterruptible","wrapActivityResult","isSuspend","state","activityState","waitForZero","andThen","suspend","count","latch","closeUnsafe","onExit","isSuspended","isSuccess","combine","open","await","yieldNow","map","asEffect","provideScope","provide","addFinalizer","f","services","addFinalizerExit","provideContext","compensation","uninterruptibleMask","restore","tap","callback","getCurrent","interruptUnsafe","id","Reference","defaultValue"],"sources":["../../../src/unstable/workflow/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Workflow.js","names":["Arr","Cause","Context","Data","Effect","Exit","Fiber","Filter","constFalse","constTrue","dual","identity","Layer","Option","Predicate","Schema","Issue","Parser","Tranformation","Scope","makeHashDigest","TypeId","EngineTag","Service","InstanceTag","make","options","makeExecutionId","payload","name","idempotencyKey","self","payloadSchema","isSchema","Struct","successSchema","success","Void","errorSchema","error","Never","annotations","empty","annotate","tag","value","add","annotateMerge","context","merge","execute","fnUntraced","fields","opts","engine","executionId","annotateCurrentSpan","discard","suspendedRetrySchedule","withSpan","captureStackTrace","poll","effect","attributes","interrupt","resume","toLayer","effectDiscard","gen","register","flatMap","orDie","makeEffect","withCompensation","ResultTypeId","isResult","u","hasProperty","Complete","TaggedClass","schema","declareConstructor","Defect","exit","input","ast","_tag","fail","InvalidType","some","mapBothEager","decodeEffect","onSuccess","onFailure","issue","Composite","Pointer","expected","toCodecJson","link","transform","decode","encoded","encode","result","Suspended","Class","cause","optional","Result","Union","AnyOrVoid","Any","ResultEncoded","toEncoded","intoResult","contextWith","instance","get","captureDefects","workflow","CaptureDefects","suspendOnFailure","SuspendOnFailure","pipe","forkChild","startImmediately","fiber","onInterrupt","join","interruptible","catchCause","suspended","hasInterruptsOnly","die","squash","scoped","matchCauseEffect","succeed","reasons","interrupts","partition","fromPredicate","isInterruptReason","length","filtered","fromReasons","interrupted","hasDies","failCause","eff","onExitPrimitive","isFailure","close","scope","void","uninterruptible","wrapActivityResult","isSuspend","state","activityState","count","latch","closeUnsafe","onExit","isSuspended","isSuccess","combine","open","waitForZero","await","yieldNow","map","asEffect","provideScope","provide","addFinalizer","f","services","addFinalizerExit","provideContext","compensation","uninterruptibleMask","restore","tap","suspend","callback","getCurrent","interruptUnsafe","id","Reference","defaultValue"],"sources":["../../../src/unstable/workflow/Workflow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/Effect.ts
CHANGED
|
@@ -79,6 +79,7 @@ import type { Fiber } from "./Fiber.ts"
|
|
|
79
79
|
import type * as Filter from "./Filter.ts"
|
|
80
80
|
import { constant, dual, type LazyArg } from "./Function.ts"
|
|
81
81
|
import type { TypeLambda } from "./HKT.ts"
|
|
82
|
+
import type { Inspectable } from "./Inspectable.ts"
|
|
82
83
|
import * as core from "./internal/core.ts"
|
|
83
84
|
import * as internal from "./internal/effect.ts"
|
|
84
85
|
import * as internalExecutionPlan from "./internal/executionPlan.ts"
|
|
@@ -169,7 +170,9 @@ const TypeId = core.EffectTypeId
|
|
|
169
170
|
* @since 2.0.0
|
|
170
171
|
* @category Models
|
|
171
172
|
*/
|
|
172
|
-
export interface Effect<out A, out E = never, out R = never>
|
|
173
|
+
export interface Effect<out A, out E = never, out R = never>
|
|
174
|
+
extends Pipeable, Inspectable, Yieldable<Effect<A, E, R>, A, E, R>
|
|
175
|
+
{
|
|
173
176
|
readonly [TypeId]: Variance<A, E, R>
|
|
174
177
|
[Unify.typeSymbol]?: unknown
|
|
175
178
|
[Unify.unifySymbol]?: EffectUnify<this>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 4.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Effect from "./Effect.ts"
|
|
5
|
+
import type * as Fiber from "./Fiber.ts"
|
|
6
|
+
import { evaluate, makePrimitiveProto } from "./internal/core.ts"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a low-level `Effect` prototype.
|
|
10
|
+
*
|
|
11
|
+
* When the effect is evaluated, it will call `evaluate` with the current fiber.
|
|
12
|
+
*
|
|
13
|
+
* @since 4.0.0
|
|
14
|
+
* @category Prototypes
|
|
15
|
+
*/
|
|
16
|
+
export const Prototype = <A extends Effect.Effect<any, any, any>>(options: {
|
|
17
|
+
readonly label: string
|
|
18
|
+
readonly evaluate: (
|
|
19
|
+
this: A,
|
|
20
|
+
fiber: Fiber.Fiber<any, any>
|
|
21
|
+
) => Effect.Effect<Effect.Success<A>, Effect.Error<A>, Effect.Services<A>>
|
|
22
|
+
}): Effect.Effect<Effect.Success<A>, Effect.Error<A>, Effect.Services<A>> =>
|
|
23
|
+
makePrimitiveProto({
|
|
24
|
+
op: options.label,
|
|
25
|
+
[evaluate]: options.evaluate
|
|
26
|
+
}) as any
|
|
27
|
+
|
|
28
|
+
const Base: new<A, E, R>() => Effect.Effect<A, E, R> = (() => {
|
|
29
|
+
const Base = function() {}
|
|
30
|
+
Base.prototype = Prototype({
|
|
31
|
+
label: "Effectable",
|
|
32
|
+
evaluate(_) {
|
|
33
|
+
return this.asEffect()
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
return Base as any
|
|
37
|
+
})()
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* An abstract class that can be extended to create an `Effect`.
|
|
41
|
+
*
|
|
42
|
+
* @since 4.0.0
|
|
43
|
+
* @category Constructors
|
|
44
|
+
*/
|
|
45
|
+
export abstract class Class<A, E = never, R = never> extends Base<A, E, R> {
|
|
46
|
+
abstract override asEffect(): Effect.Effect<A, E, R>
|
|
47
|
+
}
|
package/src/Schema.ts
CHANGED
|
@@ -1994,7 +1994,7 @@ export interface TemplateLiteralParser<Parts extends TemplateLiteral.Parts> exte
|
|
|
1994
1994
|
export function TemplateLiteralParser<const Parts extends TemplateLiteral.Parts>(
|
|
1995
1995
|
parts: Parts
|
|
1996
1996
|
): TemplateLiteralParser<Parts> {
|
|
1997
|
-
return make(templateLiteralFromParts(parts).asTemplateLiteralParser(), { parts
|
|
1997
|
+
return make(templateLiteralFromParts(parts).asTemplateLiteralParser(), { parts })
|
|
1998
1998
|
}
|
|
1999
1999
|
|
|
2000
2000
|
/**
|
package/src/index.ts
CHANGED
|
@@ -1000,6 +1000,11 @@ export * as Duration from "./Duration.ts"
|
|
|
1000
1000
|
*/
|
|
1001
1001
|
export * as Effect from "./Effect.ts"
|
|
1002
1002
|
|
|
1003
|
+
/**
|
|
1004
|
+
* @since 4.0.0
|
|
1005
|
+
*/
|
|
1006
|
+
export * as Effectable from "./Effectable.ts"
|
|
1007
|
+
|
|
1003
1008
|
/**
|
|
1004
1009
|
* Encoding & decoding for Base64 (RFC4648), Base64Url, and Hex.
|
|
1005
1010
|
*
|
package/src/internal/effect.ts
CHANGED
|
@@ -5307,7 +5307,7 @@ class Latch implements _Latch.Latch {
|
|
|
5307
5307
|
this.isOpen = true
|
|
5308
5308
|
return this.scheduleUnsafe(fiber)
|
|
5309
5309
|
})
|
|
5310
|
-
release = withFiber<boolean>((fiber) => this.
|
|
5310
|
+
release = withFiber<boolean>((fiber) => this.isOpen ? succeedFalse : this.scheduleUnsafe(fiber))
|
|
5311
5311
|
openUnsafe() {
|
|
5312
5312
|
if (this.isOpen) return false
|
|
5313
5313
|
this.isOpen = true
|
package/src/testing/TestClock.ts
CHANGED
|
@@ -235,7 +235,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
function currentTimeNanosUnsafe(): bigint {
|
|
238
|
-
return BigInt(currentTimestamp * 1000000)
|
|
238
|
+
return BigInt(Math.floor(currentTimestamp * 1000000))
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
const currentTimeMillis = Effect.sync(currentTimeMillisUnsafe)
|
|
@@ -472,7 +472,7 @@ export const make = Effect.gen(function*() {
|
|
|
472
472
|
activities.set(activityId, { activity, context: services })
|
|
473
473
|
const latch = activityLatches.get(activityId)
|
|
474
474
|
if (latch) {
|
|
475
|
-
yield* latch.
|
|
475
|
+
yield* latch.open
|
|
476
476
|
activityLatches.delete(activityId)
|
|
477
477
|
}
|
|
478
478
|
}
|
|
@@ -46,10 +46,11 @@ export interface HttpIncomingMessage<E = unknown> extends Inspectable.Inspectabl
|
|
|
46
46
|
* @category schema
|
|
47
47
|
*/
|
|
48
48
|
export const schemaBodyJson = <S extends Schema.Top>(schema: S, options?: ParseOptions | undefined) => {
|
|
49
|
-
const decode = Schema.decodeEffect(Schema.toCodecJson(schema)
|
|
49
|
+
const decode = Schema.decodeEffect(Schema.toCodecJson(schema))
|
|
50
50
|
return <E>(
|
|
51
51
|
self: HttpIncomingMessage<E>
|
|
52
|
-
): Effect.Effect<S["Type"], E | Schema.SchemaError, S["DecodingServices"]> =>
|
|
52
|
+
): Effect.Effect<S["Type"], E | Schema.SchemaError, S["DecodingServices"]> =>
|
|
53
|
+
Effect.flatMap(self.json, (u) => decode(u, options))
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
/**
|
|
@@ -67,11 +68,10 @@ export const schemaBodyUrlParams = <
|
|
|
67
68
|
) => {
|
|
68
69
|
const decode = UrlParams.schemaRecord.pipe(
|
|
69
70
|
Schema.decodeTo(schema),
|
|
70
|
-
Schema.annotate({ options }),
|
|
71
71
|
Schema.decodeEffect
|
|
72
72
|
)
|
|
73
73
|
return <E>(self: HttpIncomingMessage<E>): Effect.Effect<A, E | Schema.SchemaError, RD> =>
|
|
74
|
-
Effect.flatMap(self.urlParamsBody, decode)
|
|
74
|
+
Effect.flatMap(self.urlParamsBody, (u) => decode(u, options))
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
@@ -16,6 +16,7 @@ import type * as HttpApi from "../httpapi/HttpApi.ts"
|
|
|
16
16
|
import * as HttpApiClient from "../httpapi/HttpApiClient.ts"
|
|
17
17
|
import * as HttpApiEndpoint from "../httpapi/HttpApiEndpoint.ts"
|
|
18
18
|
import type * as HttpApiGroup from "../httpapi/HttpApiGroup.ts"
|
|
19
|
+
import type * as HttpApiMiddleware from "../httpapi/HttpApiMiddleware.ts"
|
|
19
20
|
import * as AsyncResult from "./AsyncResult.ts"
|
|
20
21
|
import * as Atom from "./Atom.ts"
|
|
21
22
|
import * as Reactivity from "./Reactivity.ts"
|
|
@@ -57,7 +58,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
57
58
|
infer _Headers,
|
|
58
59
|
infer _Success,
|
|
59
60
|
infer _Error,
|
|
60
|
-
infer
|
|
61
|
+
infer _Middleware,
|
|
61
62
|
infer _RE
|
|
62
63
|
>
|
|
63
64
|
] ? Atom.AtomResultFn<
|
|
@@ -67,7 +68,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
67
68
|
}
|
|
68
69
|
>,
|
|
69
70
|
ResponseByMode<_Success["Type"], ResponseMode>,
|
|
70
|
-
_Error
|
|
71
|
+
ErrorByMode<_Error, _Middleware, ResponseMode>
|
|
71
72
|
>
|
|
72
73
|
: never
|
|
73
74
|
|
|
@@ -119,13 +120,13 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
119
120
|
infer _Headers,
|
|
120
121
|
infer _Success,
|
|
121
122
|
infer _Error,
|
|
122
|
-
infer
|
|
123
|
+
infer _Middleware,
|
|
123
124
|
infer _RE
|
|
124
125
|
>
|
|
125
126
|
] ? Atom.Atom<
|
|
126
127
|
AsyncResult.AsyncResult<
|
|
127
128
|
ResponseByMode<_Success["Type"], ResponseMode>,
|
|
128
|
-
_Error
|
|
129
|
+
ErrorByMode<_Error, _Middleware, ResponseMode>
|
|
129
130
|
>
|
|
130
131
|
>
|
|
131
132
|
: never
|
|
@@ -316,3 +317,12 @@ type ResponseByMode<Success, ResponseMode extends HttpApiEndpoint.ClientResponse
|
|
|
316
317
|
["decoded-and-response"] ? [Success, HttpClientResponse]
|
|
317
318
|
: [ResponseMode] extends ["response-only"] ? HttpClientResponse
|
|
318
319
|
: Success
|
|
320
|
+
|
|
321
|
+
type ErrorByMode<
|
|
322
|
+
Error extends Schema.Top,
|
|
323
|
+
Middleware,
|
|
324
|
+
ResponseMode extends HttpApiEndpoint.ClientResponseMode
|
|
325
|
+
> =
|
|
326
|
+
| HttpApiMiddleware.Error<Middleware>
|
|
327
|
+
| HttpApiMiddleware.ClientError<Middleware>
|
|
328
|
+
| ([ResponseMode] extends ["response-only"] ? never : Error["Type"])
|
|
@@ -50,6 +50,12 @@ export interface Socket {
|
|
|
50
50
|
readonly onOpen?: Effect.Effect<void> | undefined
|
|
51
51
|
}
|
|
52
52
|
) => Effect.Effect<void, SocketError | E, R>
|
|
53
|
+
readonly runString: <_, E = never, R = never>(
|
|
54
|
+
handler: (_: string) => Effect.Effect<_, E, R> | void,
|
|
55
|
+
options?: {
|
|
56
|
+
readonly onOpen?: Effect.Effect<void> | undefined
|
|
57
|
+
}
|
|
58
|
+
) => Effect.Effect<void, SocketError | E, R>
|
|
53
59
|
readonly runRaw: <_, E = never, R = never>(
|
|
54
60
|
handler: (_: string | Uint8Array) => Effect.Effect<_, E, R> | void,
|
|
55
61
|
options?: {
|
|
@@ -63,6 +69,61 @@ export interface Socket {
|
|
|
63
69
|
>
|
|
64
70
|
}
|
|
65
71
|
|
|
72
|
+
/**
|
|
73
|
+
* @since 4.0.0
|
|
74
|
+
* @category Constructors
|
|
75
|
+
*/
|
|
76
|
+
export const make = (options: {
|
|
77
|
+
readonly runRaw: <_, E, R>(
|
|
78
|
+
handler: (_: string | Uint8Array) => Effect.Effect<_, E, R> | void,
|
|
79
|
+
options?: {
|
|
80
|
+
readonly onOpen?: Effect.Effect<void> | undefined
|
|
81
|
+
}
|
|
82
|
+
) => Effect.Effect<void, SocketError | E, R>
|
|
83
|
+
readonly run?: <_, E, R>(
|
|
84
|
+
handler: (_: Uint8Array) => Effect.Effect<_, E, R> | void,
|
|
85
|
+
options?: {
|
|
86
|
+
readonly onOpen?: Effect.Effect<void> | undefined
|
|
87
|
+
}
|
|
88
|
+
) => Effect.Effect<void, SocketError | E, R>
|
|
89
|
+
readonly runString?: <_, E, R>(
|
|
90
|
+
handler: (_: string) => Effect.Effect<_, E, R> | void,
|
|
91
|
+
options?: {
|
|
92
|
+
readonly onOpen?: Effect.Effect<void> | undefined
|
|
93
|
+
}
|
|
94
|
+
) => Effect.Effect<void, SocketError | E, R>
|
|
95
|
+
readonly writer: Effect.Effect<
|
|
96
|
+
(chunk: Uint8Array | string | CloseEvent) => Effect.Effect<void, SocketError>,
|
|
97
|
+
never,
|
|
98
|
+
Scope.Scope
|
|
99
|
+
>
|
|
100
|
+
}): Socket =>
|
|
101
|
+
Socket.of({
|
|
102
|
+
[TypeId]: TypeId,
|
|
103
|
+
runRaw: options.runRaw,
|
|
104
|
+
run: options.run ?? ((handler, opts) =>
|
|
105
|
+
options.runRaw((data) =>
|
|
106
|
+
typeof data === "string"
|
|
107
|
+
? handler(encoder.encode(data))
|
|
108
|
+
: data instanceof Uint8Array
|
|
109
|
+
? handler(data)
|
|
110
|
+
: handler(new Uint8Array(data)), opts)),
|
|
111
|
+
runString: options.runString ??
|
|
112
|
+
(options.run ?
|
|
113
|
+
(handler, opts) => options.run!((data) => handler(decoder.decode(data)), opts) :
|
|
114
|
+
(handler, opts) =>
|
|
115
|
+
options.runRaw((data) =>
|
|
116
|
+
typeof data === "string"
|
|
117
|
+
? handler(data)
|
|
118
|
+
: data instanceof Uint8Array
|
|
119
|
+
? handler(decoder.decode(data))
|
|
120
|
+
: handler(decoder.decode(new Uint8Array(data))), opts)),
|
|
121
|
+
writer: options.writer
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
const encoder = new TextEncoder()
|
|
125
|
+
const decoder = new TextDecoder()
|
|
126
|
+
|
|
66
127
|
const CloseEventTypeId = "~effect/socket/Socket/CloseEvent"
|
|
67
128
|
|
|
68
129
|
/**
|
|
@@ -563,17 +624,6 @@ export const fromWebSocket = <RO>(
|
|
|
563
624
|
}))
|
|
564
625
|
)
|
|
565
626
|
|
|
566
|
-
const encoder = new TextEncoder()
|
|
567
|
-
const run = <_, E, R>(handler: (_: Uint8Array) => Effect.Effect<_, E, R> | void, opts?: {
|
|
568
|
-
readonly onOpen?: Effect.Effect<void> | undefined
|
|
569
|
-
}) =>
|
|
570
|
-
runRaw((data) =>
|
|
571
|
-
typeof data === "string"
|
|
572
|
-
? handler(encoder.encode(data))
|
|
573
|
-
: data instanceof Uint8Array
|
|
574
|
-
? handler(data)
|
|
575
|
-
: handler(new Uint8Array(data)), opts)
|
|
576
|
-
|
|
577
627
|
const write = (chunk: Uint8Array | string | CloseEvent) =>
|
|
578
628
|
latch.whenOpen(Effect.sync(() => {
|
|
579
629
|
const ws = currentWS!
|
|
@@ -585,9 +635,7 @@ export const fromWebSocket = <RO>(
|
|
|
585
635
|
}))
|
|
586
636
|
const writer = Effect.succeed(write)
|
|
587
637
|
|
|
588
|
-
return Effect.succeed(
|
|
589
|
-
[TypeId]: TypeId,
|
|
590
|
-
run,
|
|
638
|
+
return Effect.succeed(make({
|
|
591
639
|
runRaw,
|
|
592
640
|
writer
|
|
593
641
|
}))
|
|
@@ -711,15 +759,6 @@ export const fromTransformStream = <R>(acquire: Effect.Effect<InputTransformStre
|
|
|
711
759
|
}))
|
|
712
760
|
)
|
|
713
761
|
|
|
714
|
-
const encoder = new TextEncoder()
|
|
715
|
-
const run = <_, E, R>(handler: (_: Uint8Array) => Effect.Effect<_, E, R> | void, opts?: {
|
|
716
|
-
readonly onOpen?: Effect.Effect<void> | undefined
|
|
717
|
-
}) =>
|
|
718
|
-
runRaw((data) =>
|
|
719
|
-
typeof data === "string"
|
|
720
|
-
? handler(encoder.encode(data))
|
|
721
|
-
: handler(data), opts)
|
|
722
|
-
|
|
723
762
|
const writers = new WeakMap<InputTransformStream, WritableStreamDefaultWriter<Uint8Array>>()
|
|
724
763
|
const getWriter = (stream: InputTransformStream) => {
|
|
725
764
|
let writer = writers.get(stream)
|
|
@@ -751,9 +790,7 @@ export const fromTransformStream = <R>(acquire: Effect.Effect<InputTransformStre
|
|
|
751
790
|
})
|
|
752
791
|
)
|
|
753
792
|
|
|
754
|
-
return Effect.succeed(
|
|
755
|
-
[TypeId]: TypeId,
|
|
756
|
-
run,
|
|
793
|
+
return Effect.succeed(make({
|
|
757
794
|
runRaw,
|
|
758
795
|
writer
|
|
759
796
|
}))
|
|
@@ -4,12 +4,10 @@
|
|
|
4
4
|
import { Clock } from "../../Clock.ts"
|
|
5
5
|
import * as Context from "../../Context.ts"
|
|
6
6
|
import * as Effect from "../../Effect.ts"
|
|
7
|
+
import * as Effectable from "../../Effectable.ts"
|
|
7
8
|
import type * as Fiber from "../../Fiber.ts"
|
|
8
9
|
import { constUndefined } from "../../Function.ts"
|
|
9
|
-
import type { Inspectable } from "../../Inspectable.ts"
|
|
10
|
-
import * as core from "../../internal/core.ts"
|
|
11
10
|
import * as internalEffect from "../../internal/effect.ts"
|
|
12
|
-
import type { Pipeable } from "../../Pipeable.ts"
|
|
13
11
|
import { hasProperty } from "../../Predicate.ts"
|
|
14
12
|
import { TracerTimingEnabled } from "../../References.ts"
|
|
15
13
|
import * as Stream from "../../Stream.ts"
|
|
@@ -49,7 +47,7 @@ export type Dialect = "sqlite" | "pg" | "mysql" | "mssql" | "clickhouse"
|
|
|
49
47
|
* @category model
|
|
50
48
|
* @since 4.0.0
|
|
51
49
|
*/
|
|
52
|
-
export interface Statement<A> extends Fragment, Effect.Effect<ReadonlyArray<A>, SqlError
|
|
50
|
+
export interface Statement<A> extends Fragment, Effect.Effect<ReadonlyArray<A>, SqlError> {
|
|
53
51
|
readonly raw: Effect.Effect<unknown, SqlError>
|
|
54
52
|
readonly withoutTransform: Effect.Effect<ReadonlyArray<A>, SqlError>
|
|
55
53
|
readonly stream: Stream.Stream<A, SqlError>
|
|
@@ -1128,8 +1126,23 @@ const StatementProto: Omit<
|
|
|
1128
1126
|
StatementImpl<any>,
|
|
1129
1127
|
"segments" | "acquirer" | "compiler" | "spanAttributes" | "transformRows"
|
|
1130
1128
|
> = {
|
|
1131
|
-
...
|
|
1132
|
-
|
|
1129
|
+
...Effectable.Prototype<StatementImpl<any>>({
|
|
1130
|
+
label: "Statement",
|
|
1131
|
+
evaluate(fiber) {
|
|
1132
|
+
const span = internalEffect.makeSpanUnsafe(fiber, "sql.execute", { kind: "client" })
|
|
1133
|
+
const clock = fiber.getRef(Clock)
|
|
1134
|
+
const timingEnabled = fiber.getRef(TracerTimingEnabled)
|
|
1135
|
+
return Effect.onExit(
|
|
1136
|
+
this.withConnectionSpan(
|
|
1137
|
+
"execute",
|
|
1138
|
+
(connection, sql, params) => connection.execute(sql, params, this.transformRows),
|
|
1139
|
+
false,
|
|
1140
|
+
span
|
|
1141
|
+
),
|
|
1142
|
+
(exit) => internalEffect.endSpan(span, exit, clock, timingEnabled)
|
|
1143
|
+
)
|
|
1144
|
+
}
|
|
1145
|
+
}),
|
|
1133
1146
|
[FragmentTypeId]: FragmentTypeId,
|
|
1134
1147
|
withConnection<XA, E>(
|
|
1135
1148
|
this: StatementImpl<any>,
|
|
@@ -1229,23 +1242,6 @@ const StatementProto: Omit<
|
|
|
1229
1242
|
) {
|
|
1230
1243
|
return this.compiler.compile(this, withoutTransform ?? false)
|
|
1231
1244
|
},
|
|
1232
|
-
[core.evaluate as any](
|
|
1233
|
-
this: StatementImpl<any>,
|
|
1234
|
-
fiber: Fiber.Fiber<any, any>
|
|
1235
|
-
): Effect.Effect<ReadonlyArray<any>, SqlError> {
|
|
1236
|
-
const span = internalEffect.makeSpanUnsafe(fiber, "sql.execute", { kind: "client" })
|
|
1237
|
-
const clock = fiber.getRef(Clock)
|
|
1238
|
-
const timingEnabled = fiber.getRef(TracerTimingEnabled)
|
|
1239
|
-
return Effect.onExit(
|
|
1240
|
-
this.withConnectionSpan(
|
|
1241
|
-
"execute",
|
|
1242
|
-
(connection, sql, params) => connection.execute(sql, params, this.transformRows),
|
|
1243
|
-
false,
|
|
1244
|
-
span
|
|
1245
|
-
),
|
|
1246
|
-
(exit) => internalEffect.endSpan(span, exit, clock, timingEnabled)
|
|
1247
|
-
)
|
|
1248
|
-
},
|
|
1249
1245
|
toJSON(this: StatementImpl<any>) {
|
|
1250
1246
|
const [sql, params] = this.compile()
|
|
1251
1247
|
return {
|
|
@@ -5,8 +5,8 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts"
|
|
|
5
5
|
import * as Cause from "../../Cause.ts"
|
|
6
6
|
import * as Context from "../../Context.ts"
|
|
7
7
|
import * as Effect from "../../Effect.ts"
|
|
8
|
+
import * as Effectable from "../../Effectable.ts"
|
|
8
9
|
import { dual } from "../../Function.ts"
|
|
9
|
-
import { PipeInspectableProto, YieldableProto } from "../../internal/core.ts"
|
|
10
10
|
import * as Schedule from "../../Schedule.ts"
|
|
11
11
|
import * as Schema from "../../Schema.ts"
|
|
12
12
|
import type { Scope } from "../../Scope.ts"
|
|
@@ -27,8 +27,7 @@ export interface Activity<
|
|
|
27
27
|
Error extends Schema.Top = Schema.Never,
|
|
28
28
|
R = never
|
|
29
29
|
> extends
|
|
30
|
-
Effect.
|
|
31
|
-
Activity<Success, Error, R>,
|
|
30
|
+
Effect.Effect<
|
|
32
31
|
Success["Type"],
|
|
33
32
|
Error["Type"],
|
|
34
33
|
Success["DecodingServices"] | Error["DecodingServices"] | R | WorkflowEngine | WorkflowInstance
|
|
@@ -123,8 +122,12 @@ export const make = <
|
|
|
123
122
|
options.interruptRetryPolicy
|
|
124
123
|
)(options.execute)
|
|
125
124
|
const self: Activity<Success, Error, Exclude<R, WorkflowInstance | WorkflowEngine>> = {
|
|
126
|
-
...
|
|
127
|
-
|
|
125
|
+
...Effectable.Prototype<Activity<Success, Error, R>>({
|
|
126
|
+
label: "Activity",
|
|
127
|
+
evaluate(_) {
|
|
128
|
+
return execute
|
|
129
|
+
}
|
|
130
|
+
}),
|
|
128
131
|
[TypeId]: TypeId,
|
|
129
132
|
name: options.name,
|
|
130
133
|
successSchema,
|
|
@@ -147,10 +150,7 @@ export const make = <
|
|
|
147
150
|
executeEncoded: Effect.matchEffect(executeWithoutInterrupt, {
|
|
148
151
|
onFailure: (error) => Effect.flatMap(Effect.orDie(Schema.encodeEffect(errorSchemaJson)(error)), Effect.fail),
|
|
149
152
|
onSuccess: (value) => Effect.orDie(Schema.encodeEffect(successSchemaJson)(value))
|
|
150
|
-
})
|
|
151
|
-
asEffect() {
|
|
152
|
-
return execute
|
|
153
|
-
}
|
|
153
|
+
})
|
|
154
154
|
} as any
|
|
155
155
|
execute = makeExecute(self)
|
|
156
156
|
return self
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Arr from "../../Array.ts"
|
|
4
5
|
import type { NonEmptyReadonlyArray } from "../../Array.ts"
|
|
5
6
|
import type * as Brand from "../../Brand.ts"
|
|
6
|
-
import
|
|
7
|
+
import * as Cause from "../../Cause.ts"
|
|
7
8
|
import * as Context from "../../Context.ts"
|
|
8
9
|
import * as Effect from "../../Effect.ts"
|
|
9
10
|
import * as Encoding from "../../Encoding.ts"
|
|
10
11
|
import * as Exit from "../../Exit.ts"
|
|
12
|
+
import * as Filter from "../../Filter.ts"
|
|
11
13
|
import { dual } from "../../Function.ts"
|
|
12
14
|
import * as Option from "../../Option.ts"
|
|
13
15
|
import * as Schema from "../../Schema.ts"
|
|
@@ -193,11 +195,24 @@ export const into: {
|
|
|
193
195
|
Effect.contextWith(
|
|
194
196
|
(context: Context.Context<WorkflowEngine | WorkflowInstance>) => {
|
|
195
197
|
const engine = Context.get(context, EngineTag)
|
|
196
|
-
const
|
|
198
|
+
const parentInstance = Context.get(context, InstanceTag)
|
|
199
|
+
const instance = { ...parentInstance }
|
|
197
200
|
return Effect.onExit(
|
|
198
|
-
effect,
|
|
201
|
+
Effect.provideService(effect, InstanceTag, instance),
|
|
199
202
|
Effect.fnUntraced(function*(exit) {
|
|
200
|
-
if (
|
|
203
|
+
if (Exit.isFailure(exit)) {
|
|
204
|
+
const [reasons, interrupts] = Arr.partition(
|
|
205
|
+
exit.cause.reasons,
|
|
206
|
+
Filter.fromPredicate(Cause.isInterruptReason)
|
|
207
|
+
)
|
|
208
|
+
const hasInterruptsOnly = interrupts.length === exit.cause.reasons.length
|
|
209
|
+
if (hasInterruptsOnly && instance.suspended) {
|
|
210
|
+
parentInstance.suspended = true
|
|
211
|
+
return
|
|
212
|
+
} else if (interrupts.length > 0) {
|
|
213
|
+
exit = Exit.failCause(Cause.fromReasons(reasons))
|
|
214
|
+
}
|
|
215
|
+
}
|
|
201
216
|
yield* engine.deferredDone(self, {
|
|
202
217
|
workflowName: instance.workflow.name,
|
|
203
218
|
executionId: instance.executionId,
|
|
@@ -244,7 +259,10 @@ export const raceAll = <
|
|
|
244
259
|
if (Option.isSome(exit)) {
|
|
245
260
|
return yield* Effect.flatten(exit.value) as Effect.Effect<any, any, any>
|
|
246
261
|
}
|
|
247
|
-
return yield* into(
|
|
262
|
+
return yield* into(
|
|
263
|
+
Effect.raceAll(options.effects),
|
|
264
|
+
deferred
|
|
265
|
+
)
|
|
248
266
|
})
|
|
249
267
|
}
|
|
250
268
|
|