@effect/platform 0.37.2 → 0.37.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.
- package/dist/cjs/WorkerRunner.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +22 -35
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/WorkerRunner.d.ts +6 -5
- package/dist/dts/WorkerRunner.d.ts.map +1 -1
- package/dist/esm/WorkerRunner.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +23 -36
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +1 -1
- package/src/WorkerRunner.ts +6 -5
- package/src/internal/workerRunner.ts +37 -47
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerRunner.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","PlatformRunner","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AAWA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA;IAAA,IAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAwBtD;;;;AAIO,MAAMY,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAkBxB,QAAQ,CAACwB,oBAAoB;AAiBhF;;;;AAIO,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAgD1B,QAAQ,CAAC0B,cAAc;
|
|
1
|
+
{"version":3,"file":"WorkerRunner.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","PlatformRunner","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AAWA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA;IAAA,IAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAwBtD;;;;AAIO,MAAMY,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAkBxB,QAAQ,CAACwB,oBAAoB;AAiBhF;;;;AAIO,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAgD1B,QAAQ,CAAC0B,cAAc;AAmBlG;;;;AAIO,MAAMC,IAAI,GAAAF,OAAA,CAAAE,IAAA,GAGyD3B,QAAQ,CAAC2B,IAAI;AAEvF;;;;AAIO,MAAMC,KAAK,GAAAH,OAAA,CAAAG,KAAA,GAGyC5B,QAAQ,CAAC4B,KAAK;AAEzE;;;;AAIO,MAAMC,cAAc,GAAAJ,OAAA,CAAAI,cAAA,GAkBvB7B,QAAQ,CAAC6B,cAAc;AAE3B;;;;AAIO,MAAMC,eAAe,GAAAL,OAAA,CAAAK,eAAA,GAiBxB9B,QAAQ,CAAC8B,eAAe"}
|
|
@@ -15,10 +15,10 @@ var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/F
|
|
|
15
15
|
var _Function = /*#__PURE__*/require("effect/Function");
|
|
16
16
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
17
17
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
18
|
-
var Predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Predicate"));
|
|
19
18
|
var Queue = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Queue"));
|
|
20
19
|
var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
|
|
21
20
|
var Transferable = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Transferable.js"));
|
|
21
|
+
var WorkerError = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../WorkerError.js"));
|
|
22
22
|
function _getRequireWildcardCache(e) {
|
|
23
23
|
if ("function" != typeof WeakMap) return null;
|
|
24
24
|
var r = new WeakMap(),
|
|
@@ -54,7 +54,12 @@ const make = (process, options) => Effect.gen(function* (_) {
|
|
|
54
54
|
const backing = yield* _(platform.start());
|
|
55
55
|
const fiberMap = new Map();
|
|
56
56
|
const parentFiber = Option.getOrThrow(Fiber.getCurrentFiber());
|
|
57
|
-
yield* _(Queue.take(backing.queue), Effect.
|
|
57
|
+
yield* _(Queue.take(backing.queue), options?.decode ? Effect.flatMap(req => {
|
|
58
|
+
if (req[1] === 1) {
|
|
59
|
+
return Effect.succeed(req);
|
|
60
|
+
}
|
|
61
|
+
return Effect.map(options.decode(req[2]), data => [req[0], req[1], data]);
|
|
62
|
+
}) : _Function.identity, Effect.tap(req => {
|
|
58
63
|
const id = req[0];
|
|
59
64
|
if (req[1] === 1) {
|
|
60
65
|
const fiber = fiberMap.get(id);
|
|
@@ -66,13 +71,13 @@ const make = (process, options) => Effect.gen(function* (_) {
|
|
|
66
71
|
onFailure: cause => Either.match(Cause.failureOrCause(cause), {
|
|
67
72
|
onLeft: error => {
|
|
68
73
|
const transfers = options?.transfers ? options.transfers(error) : undefined;
|
|
69
|
-
return (0, _Function.pipe)(options?.encodeError ? options.encodeError(error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
74
|
+
return (0, _Function.pipe)(options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
70
75
|
},
|
|
71
76
|
onRight: cause => backing.send([id, 3, Cause.squash(cause)])
|
|
72
77
|
}),
|
|
73
78
|
onSuccess: data => {
|
|
74
79
|
const transfers = options?.transfers ? options.transfers(data) : undefined;
|
|
75
|
-
return (0, _Function.pipe)(options?.encodeOutput ? options.encodeOutput(data) : Effect.succeed(data), Effect.flatMap(payload => backing.send([id, 0, [payload]], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
80
|
+
return (0, _Function.pipe)(options?.encodeOutput ? options.encodeOutput(req[2], data) : Effect.succeed(data), Effect.flatMap(payload => backing.send([id, 0, [payload]], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
76
81
|
}
|
|
77
82
|
}) : (0, _Function.pipe)(stream, Stream.chunks, Stream.tap(data => {
|
|
78
83
|
if (options?.encodeOutput === undefined) {
|
|
@@ -85,13 +90,13 @@ const make = (process, options) => Effect.gen(function* (_) {
|
|
|
85
90
|
if (options?.transfers) {
|
|
86
91
|
transfers.push(...options.transfers(data));
|
|
87
92
|
}
|
|
88
|
-
return Effect.orDie(options.encodeOutput(data));
|
|
93
|
+
return Effect.orDie(options.encodeOutput(req[2], data));
|
|
89
94
|
}), payload => backing.send([id, 0, payload], transfers));
|
|
90
95
|
}), Stream.runDrain, Effect.matchCauseEffect({
|
|
91
96
|
onFailure: cause => Either.match(Cause.failureOrCause(cause), {
|
|
92
97
|
onLeft: error => {
|
|
93
98
|
const transfers = options?.transfers ? options.transfers(error) : undefined;
|
|
94
|
-
return (0, _Function.pipe)(options?.encodeError ? options.encodeError(error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
99
|
+
return (0, _Function.pipe)(options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
95
100
|
},
|
|
96
101
|
onRight: cause => backing.send([id, 3, Cause.squash(cause)])
|
|
97
102
|
}),
|
|
@@ -106,37 +111,19 @@ const layer = (process, options) => Layer.scopedDiscard(make(process, options));
|
|
|
106
111
|
/** @internal */
|
|
107
112
|
exports.layer = layer;
|
|
108
113
|
const makeSerialized = (schema, handlers) => {
|
|
109
|
-
const parseRequest = Schema.
|
|
110
|
-
|
|
111
|
-
return make(request => {
|
|
112
|
-
if (Predicate.hasProperty(request, "_tag") && effectTags.has(request._tag)) {
|
|
113
|
-
return Effect.flatMap(parseRequest(request), request => {
|
|
114
|
-
const handler = handlers[request._tag];
|
|
115
|
-
if (!handler) {
|
|
116
|
-
return Effect.dieMessage(`No handler for ${request._tag}`);
|
|
117
|
-
}
|
|
118
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request));
|
|
119
|
-
return (0, _Function.pipe)(Effect.matchEffect(handler(request), {
|
|
120
|
-
onFailure: error => Effect.flatMap(Serializable.serializeFailure(request, error), Effect.fail),
|
|
121
|
-
onSuccess: encodeSuccess
|
|
122
|
-
}));
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
return Stream.flatMap(parseRequest(request), request => {
|
|
126
|
-
const handler = handlers[request._tag];
|
|
127
|
-
if (!handler) {
|
|
128
|
-
return Stream.dieMessage(`No handler for ${request._tag}`);
|
|
129
|
-
}
|
|
130
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request));
|
|
131
|
-
const stream = handler(request);
|
|
132
|
-
if (Effect.isEffect(stream)) {
|
|
133
|
-
effectTags.add(request._tag);
|
|
134
|
-
}
|
|
135
|
-
return (0, _Function.pipe)(stream, Stream.catchAll(error => Effect.flatMap(Serializable.serializeFailure(request, error), Effect.fail)), Stream.mapEffect(encodeSuccess));
|
|
136
|
-
});
|
|
137
|
-
}, {
|
|
114
|
+
const parseRequest = Schema.parse(schema);
|
|
115
|
+
return make(request => handlers[request._tag](request), {
|
|
138
116
|
transfers(message) {
|
|
139
117
|
return Transferable.get(message);
|
|
118
|
+
},
|
|
119
|
+
decode(message) {
|
|
120
|
+
return Effect.mapError(parseRequest(message), error => WorkerError.WorkerError("decode", error));
|
|
121
|
+
},
|
|
122
|
+
encodeError(request, message) {
|
|
123
|
+
return Effect.mapError(Serializable.serializeFailure(request, message), error => WorkerError.WorkerError("encode", error));
|
|
124
|
+
},
|
|
125
|
+
encodeOutput(request, message) {
|
|
126
|
+
return Effect.mapError(Serializable.serializeSuccess(request, message), error => WorkerError.WorkerError("encode", error));
|
|
140
127
|
}
|
|
141
128
|
});
|
|
142
129
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRunner.js","names":["Schema","_interopRequireWildcard","require","Serializable","Cause","Chunk","Context","Effect","Either","Fiber","_Function","Layer","Option","
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["Schema","_interopRequireWildcard","require","Serializable","Cause","Chunk","Context","Effect","Either","Fiber","_Function","Layer","Option","Queue","Stream","Transferable","WorkerError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","Symbol","for","PlatformRunner","Tag","make","process","options","gen","_","platform","backing","start","fiberMap","Map","parentFiber","getOrThrow","getCurrentFiber","take","queue","decode","flatMap","req","succeed","map","data","identity","tap","id","fiber","unit","interrupt","stream","effect","isEffect","matchCauseEffect","onFailure","cause","match","failureOrCause","onLeft","error","transfers","undefined","pipe","encodeError","payload","send","catchAllCause","squash","onRight","onSuccess","encodeOutput","chunks","toReadonlyArray","forEach","push","orDie","runDrain","ensuring","sync","delete","fork","forever","onInterrupt","forkScoped","layer","scopedDiscard","makeSerialized","schema","handlers","parseRequest","parse","request","_tag","message","mapError","serializeFailure","serializeSuccess","layerSerialized"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -61,9 +61,10 @@ export declare namespace Runner {
|
|
|
61
61
|
* @since 1.0.0
|
|
62
62
|
* @category models
|
|
63
63
|
*/
|
|
64
|
-
interface Options<E, O> {
|
|
65
|
-
readonly
|
|
66
|
-
readonly
|
|
64
|
+
interface Options<I, E, O> {
|
|
65
|
+
readonly decode?: (message: unknown) => Effect.Effect<never, WorkerError, I>;
|
|
66
|
+
readonly encodeOutput?: (request: I, message: O) => Effect.Effect<never, WorkerError, unknown>;
|
|
67
|
+
readonly encodeError?: (request: I, error: E) => Effect.Effect<never, WorkerError, unknown>;
|
|
67
68
|
readonly transfers?: (message: O | E) => ReadonlyArray<unknown>;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
@@ -71,12 +72,12 @@ export declare namespace Runner {
|
|
|
71
72
|
* @since 1.0.0
|
|
72
73
|
* @category constructors
|
|
73
74
|
*/
|
|
74
|
-
export declare const make: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<E, O> | undefined) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void>;
|
|
75
|
+
export declare const make: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<I, E, O> | undefined) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void>;
|
|
75
76
|
/**
|
|
76
77
|
* @since 1.0.0
|
|
77
78
|
* @category layers
|
|
78
79
|
*/
|
|
79
|
-
export declare const layer: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<E, O> | undefined) => Layer.Layer<R | PlatformRunner, WorkerError, never>;
|
|
80
|
+
export declare const layer: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<I, E, O> | undefined) => Layer.Layer<R | PlatformRunner, WorkerError, never>;
|
|
80
81
|
/**
|
|
81
82
|
* @since 1.0.0
|
|
82
83
|
* @category constructors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"","sources":["../../src/WorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACrG;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;CACxE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,MAAsC,CAAA;AAEhF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAE9D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CACzF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAA2B,CAAA;AAElG;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAiB,OAAO,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"","sources":["../../src/WorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACrG;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;CACxE;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,OAAO,MAAsC,CAAA;AAEhF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAE9D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CACzF;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAA2B,CAAA;AAElG;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAiB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAC9F,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAA;KAChE;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACxE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,IAAI,CAAiB,CAAA;AAEvF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACxE,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,KAC1C,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,KAAK,CAAkB,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,aAAa,CAAC,GAAG,EAClC,KAAK,CAAC,QAAQ,SAAS;IACrB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,SACzD,YAAY,CAAC,sBAAsB,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,CAAC,GAC7F,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAC/D,KAAK;CACR,EAED,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,KACf,MAAM,CAAC,MAAM,CACd,cAAc,GACd,KAAK,CAAC,KAAK,GACX,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EACvG,WAAW,EACX,IAAI,CACqB,CAAA;AAE3B;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,CAC5B,CAAC,EACD,CAAC,SAAS,MAAM,CAAC,aAAa,CAAC,GAAG,EAClC,KAAK,CAAC,QAAQ,SAAS;IACrB,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,SACzD,YAAY,CAAC,sBAAsB,CAAC,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,MAAM,CAAC,CAAC,GAC7F,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAC/D,KAAK;CACR,EAED,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,QAAQ,EAAE,QAAQ,KACf,KAAK,CAAC,KAAK,CACZ,cAAc,GACd,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EACvG,WAAW,EACX,KAAK,CACqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAwBtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;
|
|
1
|
+
{"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAwBtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AAmBlG;;;;AAIA,OAAO,MAAMC,IAAI,GAGyDH,QAAQ,CAACG,IAAI;AAEvF;;;;AAIA,OAAO,MAAMC,KAAK,GAGyCJ,QAAQ,CAACI,KAAK;AAEzE;;;;AAIA,OAAO,MAAMC,cAAc,GAkBvBL,QAAQ,CAACK,cAAc;AAE3B;;;;AAIA,OAAO,MAAMC,eAAe,GAiBxBN,QAAQ,CAACM,eAAe"}
|
|
@@ -6,13 +6,13 @@ import * as Context from "effect/Context";
|
|
|
6
6
|
import * as Effect from "effect/Effect";
|
|
7
7
|
import * as Either from "effect/Either";
|
|
8
8
|
import * as Fiber from "effect/Fiber";
|
|
9
|
-
import { pipe } from "effect/Function";
|
|
9
|
+
import { identity, pipe } from "effect/Function";
|
|
10
10
|
import * as Layer from "effect/Layer";
|
|
11
11
|
import * as Option from "effect/Option";
|
|
12
|
-
import * as Predicate from "effect/Predicate";
|
|
13
12
|
import * as Queue from "effect/Queue";
|
|
14
13
|
import * as Stream from "effect/Stream";
|
|
15
14
|
import * as Transferable from "../Transferable.js";
|
|
15
|
+
import * as WorkerError from "../WorkerError.js";
|
|
16
16
|
/** @internal */
|
|
17
17
|
export const PlatformRunnerTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Runner/PlatformRunner");
|
|
18
18
|
/** @internal */
|
|
@@ -23,7 +23,12 @@ export const make = (process, options) => Effect.gen(function* (_) {
|
|
|
23
23
|
const backing = yield* _(platform.start());
|
|
24
24
|
const fiberMap = new Map();
|
|
25
25
|
const parentFiber = Option.getOrThrow(Fiber.getCurrentFiber());
|
|
26
|
-
yield* _(Queue.take(backing.queue), Effect.
|
|
26
|
+
yield* _(Queue.take(backing.queue), options?.decode ? Effect.flatMap(req => {
|
|
27
|
+
if (req[1] === 1) {
|
|
28
|
+
return Effect.succeed(req);
|
|
29
|
+
}
|
|
30
|
+
return Effect.map(options.decode(req[2]), data => [req[0], req[1], data]);
|
|
31
|
+
}) : identity, Effect.tap(req => {
|
|
27
32
|
const id = req[0];
|
|
28
33
|
if (req[1] === 1) {
|
|
29
34
|
const fiber = fiberMap.get(id);
|
|
@@ -35,13 +40,13 @@ export const make = (process, options) => Effect.gen(function* (_) {
|
|
|
35
40
|
onFailure: cause => Either.match(Cause.failureOrCause(cause), {
|
|
36
41
|
onLeft: error => {
|
|
37
42
|
const transfers = options?.transfers ? options.transfers(error) : undefined;
|
|
38
|
-
return pipe(options?.encodeError ? options.encodeError(error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
43
|
+
return pipe(options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
39
44
|
},
|
|
40
45
|
onRight: cause => backing.send([id, 3, Cause.squash(cause)])
|
|
41
46
|
}),
|
|
42
47
|
onSuccess: data => {
|
|
43
48
|
const transfers = options?.transfers ? options.transfers(data) : undefined;
|
|
44
|
-
return pipe(options?.encodeOutput ? options.encodeOutput(data) : Effect.succeed(data), Effect.flatMap(payload => backing.send([id, 0, [payload]], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
49
|
+
return pipe(options?.encodeOutput ? options.encodeOutput(req[2], data) : Effect.succeed(data), Effect.flatMap(payload => backing.send([id, 0, [payload]], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
45
50
|
}
|
|
46
51
|
}) : pipe(stream, Stream.chunks, Stream.tap(data => {
|
|
47
52
|
if (options?.encodeOutput === undefined) {
|
|
@@ -54,13 +59,13 @@ export const make = (process, options) => Effect.gen(function* (_) {
|
|
|
54
59
|
if (options?.transfers) {
|
|
55
60
|
transfers.push(...options.transfers(data));
|
|
56
61
|
}
|
|
57
|
-
return Effect.orDie(options.encodeOutput(data));
|
|
62
|
+
return Effect.orDie(options.encodeOutput(req[2], data));
|
|
58
63
|
}), payload => backing.send([id, 0, payload], transfers));
|
|
59
64
|
}), Stream.runDrain, Effect.matchCauseEffect({
|
|
60
65
|
onFailure: cause => Either.match(Cause.failureOrCause(cause), {
|
|
61
66
|
onLeft: error => {
|
|
62
67
|
const transfers = options?.transfers ? options.transfers(error) : undefined;
|
|
63
|
-
return pipe(options?.encodeError ? options.encodeError(error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
68
|
+
return pipe(options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error), Effect.flatMap(payload => backing.send([id, 2, payload], transfers)), Effect.catchAllCause(cause => backing.send([id, 3, Cause.squash(cause)])));
|
|
64
69
|
},
|
|
65
70
|
onRight: cause => backing.send([id, 3, Cause.squash(cause)])
|
|
66
71
|
}),
|
|
@@ -73,37 +78,19 @@ export const make = (process, options) => Effect.gen(function* (_) {
|
|
|
73
78
|
export const layer = (process, options) => Layer.scopedDiscard(make(process, options));
|
|
74
79
|
/** @internal */
|
|
75
80
|
export const makeSerialized = (schema, handlers) => {
|
|
76
|
-
const parseRequest = Schema.
|
|
77
|
-
|
|
78
|
-
return make(request => {
|
|
79
|
-
if (Predicate.hasProperty(request, "_tag") && effectTags.has(request._tag)) {
|
|
80
|
-
return Effect.flatMap(parseRequest(request), request => {
|
|
81
|
-
const handler = handlers[request._tag];
|
|
82
|
-
if (!handler) {
|
|
83
|
-
return Effect.dieMessage(`No handler for ${request._tag}`);
|
|
84
|
-
}
|
|
85
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request));
|
|
86
|
-
return pipe(Effect.matchEffect(handler(request), {
|
|
87
|
-
onFailure: error => Effect.flatMap(Serializable.serializeFailure(request, error), Effect.fail),
|
|
88
|
-
onSuccess: encodeSuccess
|
|
89
|
-
}));
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
return Stream.flatMap(parseRequest(request), request => {
|
|
93
|
-
const handler = handlers[request._tag];
|
|
94
|
-
if (!handler) {
|
|
95
|
-
return Stream.dieMessage(`No handler for ${request._tag}`);
|
|
96
|
-
}
|
|
97
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request));
|
|
98
|
-
const stream = handler(request);
|
|
99
|
-
if (Effect.isEffect(stream)) {
|
|
100
|
-
effectTags.add(request._tag);
|
|
101
|
-
}
|
|
102
|
-
return pipe(stream, Stream.catchAll(error => Effect.flatMap(Serializable.serializeFailure(request, error), Effect.fail)), Stream.mapEffect(encodeSuccess));
|
|
103
|
-
});
|
|
104
|
-
}, {
|
|
81
|
+
const parseRequest = Schema.parse(schema);
|
|
82
|
+
return make(request => handlers[request._tag](request), {
|
|
105
83
|
transfers(message) {
|
|
106
84
|
return Transferable.get(message);
|
|
85
|
+
},
|
|
86
|
+
decode(message) {
|
|
87
|
+
return Effect.mapError(parseRequest(message), error => WorkerError.WorkerError("decode", error));
|
|
88
|
+
},
|
|
89
|
+
encodeError(request, message) {
|
|
90
|
+
return Effect.mapError(Serializable.serializeFailure(request, message), error => WorkerError.WorkerError("encode", error));
|
|
91
|
+
},
|
|
92
|
+
encodeOutput(request, message) {
|
|
93
|
+
return Effect.mapError(Serializable.serializeSuccess(request, message), error => WorkerError.WorkerError("encode", error));
|
|
107
94
|
}
|
|
108
95
|
});
|
|
109
96
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRunner.js","names":["Schema","Serializable","Cause","Chunk","Context","Effect","Either","Fiber","pipe","Layer","Option","
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["Schema","Serializable","Cause","Chunk","Context","Effect","Either","Fiber","identity","pipe","Layer","Option","Queue","Stream","Transferable","WorkerError","PlatformRunnerTypeId","Symbol","for","PlatformRunner","Tag","make","process","options","gen","_","platform","backing","start","fiberMap","Map","parentFiber","getOrThrow","getCurrentFiber","take","queue","decode","flatMap","req","succeed","map","data","tap","id","fiber","get","unit","interrupt","stream","effect","isEffect","matchCauseEffect","onFailure","cause","match","failureOrCause","onLeft","error","transfers","undefined","encodeError","payload","send","catchAllCause","squash","onRight","onSuccess","encodeOutput","chunks","toReadonlyArray","forEach","push","orDie","runDrain","ensuring","sync","delete","fork","set","forever","onInterrupt","forkScoped","layer","scopedDiscard","makeSerialized","schema","handlers","parseRequest","parse","request","_tag","message","mapError","serializeFailure","serializeSuccess","layerSerialized"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
package/src/WorkerRunner.ts
CHANGED
|
@@ -69,9 +69,10 @@ export declare namespace Runner {
|
|
|
69
69
|
* @since 1.0.0
|
|
70
70
|
* @category models
|
|
71
71
|
*/
|
|
72
|
-
export interface Options<E, O> {
|
|
73
|
-
readonly
|
|
74
|
-
readonly
|
|
72
|
+
export interface Options<I, E, O> {
|
|
73
|
+
readonly decode?: (message: unknown) => Effect.Effect<never, WorkerError, I>
|
|
74
|
+
readonly encodeOutput?: (request: I, message: O) => Effect.Effect<never, WorkerError, unknown>
|
|
75
|
+
readonly encodeError?: (request: I, error: E) => Effect.Effect<never, WorkerError, unknown>
|
|
75
76
|
readonly transfers?: (message: O | E) => ReadonlyArray<unknown>
|
|
76
77
|
}
|
|
77
78
|
}
|
|
@@ -82,7 +83,7 @@ export declare namespace Runner {
|
|
|
82
83
|
*/
|
|
83
84
|
export const make: <I, R, E, O>(
|
|
84
85
|
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
|
|
85
|
-
options?: Runner.Options<E, O> | undefined
|
|
86
|
+
options?: Runner.Options<I, E, O> | undefined
|
|
86
87
|
) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void> = internal.make
|
|
87
88
|
|
|
88
89
|
/**
|
|
@@ -91,7 +92,7 @@ export const make: <I, R, E, O>(
|
|
|
91
92
|
*/
|
|
92
93
|
export const layer: <I, R, E, O>(
|
|
93
94
|
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
|
|
94
|
-
options?: Runner.Options<E, O> | undefined
|
|
95
|
+
options?: Runner.Options<I, E, O> | undefined
|
|
95
96
|
) => Layer.Layer<R | PlatformRunner, WorkerError, never> = internal.layer
|
|
96
97
|
|
|
97
98
|
/**
|
|
@@ -6,16 +6,15 @@ import * as Context from "effect/Context"
|
|
|
6
6
|
import * as Effect from "effect/Effect"
|
|
7
7
|
import * as Either from "effect/Either"
|
|
8
8
|
import * as Fiber from "effect/Fiber"
|
|
9
|
-
import { pipe } from "effect/Function"
|
|
9
|
+
import { identity, pipe } from "effect/Function"
|
|
10
10
|
import * as Layer from "effect/Layer"
|
|
11
11
|
import * as Option from "effect/Option"
|
|
12
|
-
import * as Predicate from "effect/Predicate"
|
|
13
12
|
import * as Queue from "effect/Queue"
|
|
14
13
|
import type * as Scope from "effect/Scope"
|
|
15
14
|
import * as Stream from "effect/Stream"
|
|
16
15
|
import * as Transferable from "../Transferable.js"
|
|
17
16
|
import type * as Worker from "../Worker.js"
|
|
18
|
-
import
|
|
17
|
+
import * as WorkerError from "../WorkerError.js"
|
|
19
18
|
import type * as WorkerRunner from "../WorkerRunner.js"
|
|
20
19
|
|
|
21
20
|
/** @internal */
|
|
@@ -31,7 +30,7 @@ export const PlatformRunner = Context.Tag<WorkerRunner.PlatformRunner>(
|
|
|
31
30
|
/** @internal */
|
|
32
31
|
export const make = <I, R, E, O>(
|
|
33
32
|
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
|
|
34
|
-
options?: WorkerRunner.Runner.Options<E, O>
|
|
33
|
+
options?: WorkerRunner.Runner.Options<I, E, O>
|
|
35
34
|
) =>
|
|
36
35
|
Effect.gen(function*(_) {
|
|
37
36
|
const platform = yield* _(PlatformRunner)
|
|
@@ -41,6 +40,15 @@ export const make = <I, R, E, O>(
|
|
|
41
40
|
|
|
42
41
|
yield* _(
|
|
43
42
|
Queue.take(backing.queue),
|
|
43
|
+
options?.decode ?
|
|
44
|
+
Effect.flatMap((req): Effect.Effect<never, WorkerError.WorkerError, Worker.Worker.Request<I>> => {
|
|
45
|
+
if (req[1] === 1) {
|
|
46
|
+
return Effect.succeed(req)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return Effect.map(options.decode!(req[2]), (data) => [req[0], req[1], data])
|
|
50
|
+
}) :
|
|
51
|
+
identity,
|
|
44
52
|
Effect.tap((req) => {
|
|
45
53
|
const id = req[0]
|
|
46
54
|
if (req[1] === 1) {
|
|
@@ -58,7 +66,7 @@ export const make = <I, R, E, O>(
|
|
|
58
66
|
onLeft: (error) => {
|
|
59
67
|
const transfers = options?.transfers ? options.transfers(error) : undefined
|
|
60
68
|
return pipe(
|
|
61
|
-
options?.encodeError ? options.encodeError(error) : Effect.succeed(error),
|
|
69
|
+
options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error),
|
|
62
70
|
Effect.flatMap((payload) => backing.send([id, 2, payload as any], transfers)),
|
|
63
71
|
Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
|
|
64
72
|
)
|
|
@@ -68,7 +76,7 @@ export const make = <I, R, E, O>(
|
|
|
68
76
|
onSuccess: (data) => {
|
|
69
77
|
const transfers = options?.transfers ? options.transfers(data) : undefined
|
|
70
78
|
return pipe(
|
|
71
|
-
options?.encodeOutput ? options.encodeOutput(data) : Effect.succeed(data),
|
|
79
|
+
options?.encodeOutput ? options.encodeOutput(req[2], data) : Effect.succeed(data),
|
|
72
80
|
Effect.flatMap((payload) => backing.send([id, 0, [payload]], transfers)),
|
|
73
81
|
Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
|
|
74
82
|
)
|
|
@@ -90,7 +98,7 @@ export const make = <I, R, E, O>(
|
|
|
90
98
|
if (options?.transfers) {
|
|
91
99
|
transfers.push(...options.transfers(data))
|
|
92
100
|
}
|
|
93
|
-
return Effect.orDie(options.encodeOutput!(data))
|
|
101
|
+
return Effect.orDie(options.encodeOutput!(req[2], data))
|
|
94
102
|
}),
|
|
95
103
|
(payload) => backing.send([id, 0, payload], transfers)
|
|
96
104
|
)
|
|
@@ -102,7 +110,7 @@ export const make = <I, R, E, O>(
|
|
|
102
110
|
onLeft: (error) => {
|
|
103
111
|
const transfers = options?.transfers ? options.transfers(error) : undefined
|
|
104
112
|
return pipe(
|
|
105
|
-
options?.encodeError ? options.encodeError(error) : Effect.succeed(error),
|
|
113
|
+
options?.encodeError ? options.encodeError(req[2], error) : Effect.succeed(error),
|
|
106
114
|
Effect.flatMap((payload) => backing.send([id, 2, payload as any], transfers)),
|
|
107
115
|
Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
|
|
108
116
|
)
|
|
@@ -129,7 +137,7 @@ export const make = <I, R, E, O>(
|
|
|
129
137
|
/** @internal */
|
|
130
138
|
export const layer = <I, R, E, O>(
|
|
131
139
|
process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
|
|
132
|
-
options?: WorkerRunner.Runner.Options<E, O>
|
|
140
|
+
options?: WorkerRunner.Runner.Options<I, E, O>
|
|
133
141
|
): Layer.Layer<WorkerRunner.PlatformRunner | R, WorkerError.WorkerError, never> =>
|
|
134
142
|
Layer.scopedDiscard(make(process, options))
|
|
135
143
|
|
|
@@ -153,46 +161,28 @@ export const makeSerialized = <
|
|
|
153
161
|
WorkerError.WorkerError,
|
|
154
162
|
void
|
|
155
163
|
> => {
|
|
156
|
-
const parseRequest = Schema.
|
|
157
|
-
|
|
158
|
-
return make((request: I) => {
|
|
159
|
-
if (Predicate.hasProperty(request, "_tag") && effectTags.has(request._tag as string)) {
|
|
160
|
-
return Effect.flatMap(parseRequest(request), (request: A) => {
|
|
161
|
-
const handler =
|
|
162
|
-
(handlers as unknown as Record<string, (req: unknown) => Effect.Effect<never, any, any>>)[request._tag]
|
|
163
|
-
if (!handler) {
|
|
164
|
-
return Effect.dieMessage(`No handler for ${request._tag}`)
|
|
165
|
-
}
|
|
166
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request as any))
|
|
167
|
-
return pipe(
|
|
168
|
-
Effect.matchEffect(handler(request), {
|
|
169
|
-
onFailure: (error) => Effect.flatMap(Serializable.serializeFailure(request as any, error), Effect.fail),
|
|
170
|
-
onSuccess: encodeSuccess
|
|
171
|
-
})
|
|
172
|
-
)
|
|
173
|
-
})
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return Stream.flatMap(parseRequest(request), (request: A) => {
|
|
177
|
-
const handler =
|
|
178
|
-
(handlers as unknown as Record<string, (req: unknown) => Stream.Stream<never, any, any>>)[request._tag]
|
|
179
|
-
if (!handler) {
|
|
180
|
-
return Stream.dieMessage(`No handler for ${request._tag}`)
|
|
181
|
-
}
|
|
182
|
-
const encodeSuccess = Schema.encode(Serializable.successSchema(request as any))
|
|
183
|
-
const stream = handler(request)
|
|
184
|
-
if (Effect.isEffect(stream)) {
|
|
185
|
-
effectTags.add(request._tag)
|
|
186
|
-
}
|
|
187
|
-
return pipe(
|
|
188
|
-
stream,
|
|
189
|
-
Stream.catchAll((error) => Effect.flatMap(Serializable.serializeFailure(request as any, error), Effect.fail)),
|
|
190
|
-
Stream.mapEffect(encodeSuccess)
|
|
191
|
-
)
|
|
192
|
-
})
|
|
193
|
-
}, {
|
|
164
|
+
const parseRequest = Schema.parse(schema)
|
|
165
|
+
return make((request: A) => (handlers as any)[request._tag](request), {
|
|
194
166
|
transfers(message) {
|
|
195
167
|
return Transferable.get(message)
|
|
168
|
+
},
|
|
169
|
+
decode(message) {
|
|
170
|
+
return Effect.mapError(
|
|
171
|
+
parseRequest(message),
|
|
172
|
+
(error) => WorkerError.WorkerError("decode", error)
|
|
173
|
+
)
|
|
174
|
+
},
|
|
175
|
+
encodeError(request, message) {
|
|
176
|
+
return Effect.mapError(
|
|
177
|
+
Serializable.serializeFailure(request as any, message),
|
|
178
|
+
(error) => WorkerError.WorkerError("encode", error)
|
|
179
|
+
)
|
|
180
|
+
},
|
|
181
|
+
encodeOutput(request, message) {
|
|
182
|
+
return Effect.mapError(
|
|
183
|
+
Serializable.serializeSuccess(request as any, message),
|
|
184
|
+
(error) => WorkerError.WorkerError("encode", error)
|
|
185
|
+
)
|
|
196
186
|
}
|
|
197
187
|
})
|
|
198
188
|
}
|