@effect/platform 0.37.0 → 0.37.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Transferable.js","names":["symbol","Symbol","for","get","u"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;;;;AAIA,OAAO,MAAMA,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAUjE;;;;AAIA,OAAO,MAAMC,GAAG,GAAIC,CAAU,IAA4C;EACxE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIJ,MAAM,IAAII,CAAC,EAAE;IACtD,OAAQA,CAAkB,CAACJ,MAAM,CAAC,EAAE;EACtC;EACA,OAAO,EAAE;AACX,CAAC"}
1
+ {"version":3,"file":"Transferable.js","names":["AST","ParseResult","Schema","dual","symbol","Symbol","for","isTransferable","u","get","schema","self","f","transform","schemaFromSelf","to","input","output","item","declare","isDecoding","parse","encode","options","ast","fail","type","proto","__proto__","Object","getPrototypeOf","map","a","setPrototypeOf","IdentifierAnnotationId"],"sources":["../../src/Transferable.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,GAAG,MAAM,oBAAoB;AACzC,OAAO,KAAKC,WAAW,MAAM,4BAA4B;AACzD,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAC/C,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAGC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAUjE;;;;AAIA,OAAO,MAAMC,cAAc,GAAIC,CAAU,IAAwB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIJ,MAAM,IAAII,CAAC;AAEnH;;;;AAIA,OAAO,MAAMC,GAAG,GAAID,CAAU,IAA4C;EACxE,IAAID,cAAc,CAACC,CAAC,CAAC,EAAE;IACrB,OAAOA,CAAC,CAACJ,MAAM,CAAC,EAAE;EACpB;EACA,OAAO,EAAE;AACX,CAAC;AAED;;;;AAIA,OAAO,MAAMM,MAAM,gBAQfP,IAAI,CAQN,CAAC,EAAE,CACHQ,IAAyB,EACzBC,CAAmD,KAEnDV,MAAM,CAACW,SAAS,CACdF,IAAI,EACJG,cAAc,CAACZ,MAAM,CAACa,EAAE,CAACJ,IAAI,CAAC,CAAC,EAC9BK,KAAK,KACH;EACC,GAAGA,KAAK;EACR,CAACZ,MAAM,IAAC;IACN,OAAOQ,CAAC,CAAC,IAAW,CAAC;EACvB;CACD,CAAqB,EACvBK,MAAM,IAAKA,MAAW,CACxB,CAAC;AAEJ;;;;AAIA,OAAO,MAAMH,cAAc,GACzBI,IAAyB,IAC4B;EACrD,OAAOhB,MAAM,CAACiB,OAAO,CACnB,CAACD,IAAI,CAAC,EACNA,IAAI,EACJ,CAACE,UAAU,EAAEF,IAAI,KAAI;IACnB,MAAMG,KAAK,GAAGD,UAAU,GAAGlB,MAAM,CAACmB,KAAK,CAACH,IAAI,CAAC,GAAGhB,MAAM,CAACoB,MAAM,CAACJ,IAAI,CAAC;IACnE,OAAO,CAACV,CAAC,EAAEe,OAAO,EAAEC,GAAG,KAAI;MACzB,IAAI,CAACjB,cAAc,CAACC,CAAC,CAAC,EAAE;QACtB,OAAOP,WAAW,CAACwB,IAAI,CAACxB,WAAW,CAACyB,IAAI,CAACF,GAAG,EAAEhB,CAAC,CAAC,CAAC;MACnD;MACA,MAAMmB,KAAK,GAAG;QACZC,SAAS,EAAEC,MAAM,CAACC,cAAc,CAACtB,CAAC,CAAC;QACnC,CAACJ,MAAM,GAAGI,CAAC,CAACJ,MAAM;OACnB;MACD,OAAOH,WAAW,CAAC8B,GAAG,CACpBV,KAAK,CAACb,CAAC,EAAEe,OAAO,CAAC,EAChBS,CAAC,IAAKH,MAAM,CAACI,cAAc,CAACD,CAAC,EAAEL,KAAK,CAAC,CACvC;IACH,CAAC;EACH,CAAC,EACD;IAAE,CAAC3B,GAAG,CAACkC,sBAAsB,GAAG;EAAc,CAAE,CACjD;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.js","names":["internal","PlatformWorkerTypeId","PlatformWorker","WorkerManagerTypeId","WorkerManager","makeManager","layerManager","makePool","makePoolLayer","makeSerialized","makePoolSerialized","makePoolSerializedLayer"],"sources":["../../src/Worker.ts"],"sourcesContent":[null],"mappings":"AAeA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAyBhD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AA2FlG;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAkBH,QAAQ,CAACG,mBAAmB;AAmB9E;;;;AAIA,OAAO,MAAMC,aAAa,GAA8CJ,QAAQ,CAACI,aAAa;AAE9F;;;;AAIA,OAAO,MAAMC,WAAW,GAAwDL,QAAQ,CAACK,WAAW;AAEpG;;;;AAIA,OAAO,MAAMC,YAAY,GAAsDN,QAAQ,CAACM,YAAY;AAEpG;;;;AAIA,OAAO,MAAMC,QAAQ,GAEyDP,QAAQ,CAACO,QAAQ;AAE/F;;;;AAIA,OAAO,MAAMC,aAAa,GAKYR,QAAQ,CAACQ,aAAa;AAkF5D;;;;AAIA,OAAO,MAAMC,cAAc,GAEyDT,QAAQ,CAACS,cAAc;AAE3G;;;;AAIA,OAAO,MAAMC,kBAAkB,GAEmDV,QAAQ,CAACU,kBAAkB;AAE7G;;;;AAIA,OAAO,MAAMC,uBAAuB,GAKEX,QAAQ,CAACW,uBAAuB"}
1
+ {"version":3,"file":"Worker.js","names":["internal","PlatformWorkerTypeId","PlatformWorker","WorkerManagerTypeId","WorkerManager","makeManager","layerManager","makePool","makePoolLayer","makeSerialized","makePoolSerialized","makePoolSerializedLayer"],"sources":["../../src/Worker.ts"],"sourcesContent":[null],"mappings":"AAgBA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAyBhD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AA4FlG;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAkBH,QAAQ,CAACG,mBAAmB;AAmB9E;;;;AAIA,OAAO,MAAMC,aAAa,GAA8CJ,QAAQ,CAACI,aAAa;AAE9F;;;;AAIA,OAAO,MAAMC,WAAW,GAAwDL,QAAQ,CAACK,WAAW;AAEpG;;;;AAIA,OAAO,MAAMC,YAAY,GAAsDN,QAAQ,CAACM,YAAY;AAEpG;;;;AAIA,OAAO,MAAMC,QAAQ,GAEyDP,QAAQ,CAACO,QAAQ;AAE/F;;;;AAIA,OAAO,MAAMC,aAAa,GAKYR,QAAQ,CAACQ,aAAa;AAmF5D;;;;AAIA,OAAO,MAAMC,cAAc,GAEyDT,QAAQ,CAACS,cAAc;AAE3G;;;;AAIA,OAAO,MAAMC,kBAAkB,GAEmDV,QAAQ,CAACU,kBAAkB;AAE7G;;;;AAIA,OAAO,MAAMC,uBAAuB,GAKEX,QAAQ,CAACW,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","make","makeSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAyBtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AAiBlG;;;;AAIA,OAAO,MAAMC,IAAI,GAG0DH,QAAQ,CAACG,IAAI;AAExF;;;;AAIA,OAAO,MAAMC,cAAc,GAkBvBJ,QAAQ,CAACI,cAAc"}
1
+ {"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","make","makeSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAyBtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AAkBlG;;;;AAIA,OAAO,MAAMC,IAAI,GAG0DH,QAAQ,CAACG,IAAI;AAExF;;;;AAIA,OAAO,MAAMC,cAAc,GAkBvBJ,QAAQ,CAACI,cAAc"}
@@ -14,6 +14,7 @@ import * as Pool from "effect/Pool";
14
14
  import * as Queue from "effect/Queue";
15
15
  import * as Stream from "effect/Stream";
16
16
  import * as Transferable from "../Transferable.js";
17
+ import { WorkerError } from "../WorkerError.js";
17
18
  /** @internal */
18
19
  export const defaultQueue = () => Effect.map(Queue.unbounded(), queue => ({
19
20
  offer: (id, item) => Queue.offer(queue, [id, item]),
@@ -36,6 +37,7 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
36
37
  [WorkerManagerTypeId]: WorkerManagerTypeId,
37
38
  spawn({
38
39
  encode,
40
+ initialMessage,
39
41
  permits = 1,
40
42
  queue,
41
43
  spawn,
@@ -106,11 +108,13 @@ export const makeManager = /*#__PURE__*/Effect.gen(function* (_) {
106
108
  const result = requestMap.get(id);
107
109
  if (!result) return Effect.unit;
108
110
  const transferables = transfers(request);
109
- const payload = encode ? encode(request) : request;
110
- return Effect.zipRight(Effect.catchAllCause(backing.send([id, 0, payload], transferables), cause => Queue.offer(result[0], Exit.failCause(cause))), Deferred.await(result[1]));
111
+ return pipe(Effect.flatMap(encode ? encode(request) : Effect.succeed(request), payload => backing.send([id, 0, payload], transferables)), Effect.catchAllCause(cause => Queue.offer(result[0], Exit.failCause(cause))), Effect.zipRight(Deferred.await(result[1])));
111
112
  }), Effect.ensuring(semaphore.release(1)), Effect.fork)), Effect.forever);
112
113
  const postMessagesFiber = yield* _(Deferred.await(readyLatch), Effect.zipRight(postMessages), Effect.forkScoped);
113
114
  const join = Fiber.joinAll([backing.fiber, handleMessages, postMessagesFiber]);
115
+ if (initialMessage) {
116
+ yield* _(Effect.sync(initialMessage), Effect.flatMap(executeEffect), Effect.mapError(error => WorkerError("spawn", error)));
117
+ }
114
118
  return {
115
119
  id,
116
120
  join,
@@ -157,20 +161,23 @@ export const makeSerialized = options => Effect.gen(function* (_) {
157
161
  ...options,
158
162
  transfers(message) {
159
163
  return Transferable.get(message);
164
+ },
165
+ encode(message) {
166
+ return Effect.mapError(Serializable.serialize(message), error => WorkerError("encode", error));
160
167
  }
161
168
  }));
162
169
  const execute = message => {
163
170
  const parseSuccess = Schema.decode(Serializable.successSchema(message));
164
171
  const parseFailure = Schema.decode(Serializable.failureSchema(message));
165
- return pipe(Serializable.serialize(message), Stream.flatMap(message => backing.execute(message)), Stream.catchAll(error => Effect.flatMap(parseFailure(error), Effect.fail)), Stream.mapEffect(parseSuccess));
172
+ return pipe(backing.execute(message), Stream.catchAll(error => Effect.flatMap(parseFailure(error), Effect.fail)), Stream.mapEffect(parseSuccess));
166
173
  };
167
174
  const executeEffect = message => {
168
175
  const parseSuccess = Schema.decode(Serializable.successSchema(message));
169
176
  const parseFailure = Schema.decode(Serializable.failureSchema(message));
170
- return pipe(Serializable.serialize(message), Effect.flatMap(message => backing.executeEffect(message)), Effect.matchEffect({
177
+ return Effect.matchEffect(backing.executeEffect(message), {
171
178
  onFailure: error => Effect.flatMap(parseFailure(error), Effect.fail),
172
179
  onSuccess: parseSuccess
173
- }));
180
+ });
174
181
  };
175
182
  return identity({
176
183
  id: backing.id,
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","names":["Schema","Serializable","Cause","Channel","Chunk","Context","Deferred","Effect","Exit","Fiber","identity","pipe","Layer","Pool","Queue","Stream","Transferable","defaultQueue","map","unbounded","queue","offer","id","item","take","shutdown","PlatformWorkerTypeId","Symbol","for","PlatformWorker","Tag","WorkerManagerTypeId","WorkerManager","makeManager","gen","_","platform","idCounter","of","spawn","encode","permits","transfers","requestIdCounter","readyLatch","make","semaphore","makeSemaphore","requestMap","Map","outbound","addFinalizer","backing","zipRight","forEach","values","failCause","empty","discard","sync","clear","handleMessage","msg","suspend","complete","unit","response","get","succeed","length","fail","die","executeAcquire","request","tap","all","deferred","set","executeRelease","exit","release","delete","isInterrupted","ignore","send","execute","flatMap","acquireRelease","loop","match","onFailure","cause","isEmpty","onSuccess","value","write","fromChannel","executeEffect","acquireUseRelease","flatten","handleMessages","forever","forkScoped","postMessages","result","transferables","payload","catchAllCause","await","ensuring","fork","postMessagesFiber","join","joinAll","fiber","parallelFinalizers","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","add","onCreate","makeWithTTL","min","minSize","max","maxSize","timeToLive","size","pool","broadcast","message","concurrency","unwrap","scoped","makePoolLayer","managerLayer","tag","provide","makeSerialized","parseSuccess","decode","successSchema","parseFailure","failureSchema","serialize","catchAll","error","mapEffect","matchEffect","makePoolSerialized","provideService","makePoolSerializedLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","names":["Schema","Serializable","Cause","Channel","Chunk","Context","Deferred","Effect","Exit","Fiber","identity","pipe","Layer","Pool","Queue","Stream","Transferable","WorkerError","defaultQueue","map","unbounded","queue","offer","id","item","take","shutdown","PlatformWorkerTypeId","Symbol","for","PlatformWorker","Tag","WorkerManagerTypeId","WorkerManager","makeManager","gen","_","platform","idCounter","of","spawn","encode","initialMessage","permits","transfers","requestIdCounter","readyLatch","make","semaphore","makeSemaphore","requestMap","Map","outbound","addFinalizer","backing","zipRight","forEach","values","failCause","empty","discard","sync","clear","handleMessage","msg","suspend","complete","unit","response","get","succeed","length","fail","die","executeAcquire","request","tap","all","deferred","set","executeRelease","exit","release","delete","isInterrupted","ignore","send","execute","flatMap","acquireRelease","loop","match","onFailure","cause","isEmpty","onSuccess","value","write","fromChannel","executeEffect","acquireUseRelease","flatten","handleMessages","forever","forkScoped","postMessages","result","transferables","payload","catchAllCause","await","ensuring","fork","postMessagesFiber","join","joinAll","fiber","mapError","error","parallelFinalizers","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","add","onCreate","makeWithTTL","min","minSize","max","maxSize","timeToLive","size","pool","broadcast","message","concurrency","unwrap","scoped","makePoolLayer","managerLayer","tag","provide","makeSerialized","serialize","parseSuccess","decode","successSchema","parseFailure","failureSchema","catchAll","mapEffect","matchEffect","makePoolSerialized","provideService","makePoolSerializedLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -29,21 +29,25 @@ export const make = (process, options) => Effect.gen(function* (_) {
29
29
  const stream = process(req[2]);
30
30
  const effect = Effect.isEffect(stream) ? Effect.matchCauseEffect(stream, {
31
31
  onFailure: cause => Either.match(Cause.failureOrCause(cause), {
32
- onLeft: error => backing.send([id, 2, error]),
32
+ onLeft: error => {
33
+ const transfers = options?.transfers ? options.transfers(error) : undefined;
34
+ 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)])));
35
+ },
33
36
  onRight: cause => backing.send([id, 3, Cause.squash(cause)])
34
37
  }),
35
38
  onSuccess: data => {
36
39
  const transfers = options?.transfers ? options.transfers(data) : undefined;
37
- const payload = options?.encode ? options.encode(data) : data;
38
- return backing.send([id, 1, payload], transfers);
40
+ 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)])));
39
41
  }
40
- }) : pipe(stream, Stream.tap(item => {
41
- const transfers = options?.transfers ? options.transfers(item) : undefined;
42
- const payload = options?.encode ? options.encode(item) : item;
43
- return backing.send([id, 0, payload], transfers);
42
+ }) : pipe(stream, Stream.tap(data => {
43
+ const transfers = options?.transfers ? options.transfers(data) : undefined;
44
+ return Effect.flatMap(options?.encodeOutput ? Effect.orDie(options.encodeOutput(data)) : Effect.succeed(data), payload => backing.send([id, 0, payload], transfers));
44
45
  }), Stream.runDrain, Effect.matchCauseEffect({
45
46
  onFailure: cause => Either.match(Cause.failureOrCause(cause), {
46
- onLeft: error => backing.send([id, 2, error]),
47
+ onLeft: error => {
48
+ const transfers = options?.transfers ? options.transfers(error) : undefined;
49
+ 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)])));
50
+ },
47
51
  onRight: cause => backing.send([id, 3, Cause.squash(cause)])
48
52
  }),
49
53
  onSuccess: () => backing.send([id, 1])
@@ -1 +1 @@
1
- {"version":3,"file":"workerRunner.js","names":["Schema","Serializable","Cause","Context","Effect","Either","Fiber","pipe","Predicate","Queue","Stream","Transferable","PlatformRunnerTypeId","Symbol","for","PlatformRunner","Tag","make","process","options","gen","_","platform","backing","start","fiberMap","Map","handleRequests","take","queue","tap","req","id","fiber","get","unit","interrupt","stream","effect","isEffect","matchCauseEffect","onFailure","cause","match","failureOrCause","onLeft","error","send","onRight","squash","onSuccess","data","transfers","undefined","payload","encode","item","runDrain","ensuring","sync","delete","fork","set","forever","all","join","concurrency","discard","makeSerialized","schema","handlers","parseRequest","decode","effectTags","Set","request","hasProperty","has","_tag","flatMap","handler","dieMessage","encodeSuccess","successSchema","matchEffect","serializeFailure","fail","add","catchAll","mapEffect","message"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"workerRunner.js","names":["Schema","Serializable","Cause","Context","Effect","Either","Fiber","pipe","Predicate","Queue","Stream","Transferable","PlatformRunnerTypeId","Symbol","for","PlatformRunner","Tag","make","process","options","gen","_","platform","backing","start","fiberMap","Map","handleRequests","take","queue","tap","req","id","fiber","get","unit","interrupt","stream","effect","isEffect","matchCauseEffect","onFailure","cause","match","failureOrCause","onLeft","error","transfers","undefined","encodeError","succeed","flatMap","payload","send","catchAllCause","squash","onRight","onSuccess","data","encodeOutput","orDie","runDrain","ensuring","sync","delete","fork","set","forever","all","join","concurrency","discard","makeSerialized","schema","handlers","parseRequest","decode","effectTags","Set","request","hasProperty","has","_tag","handler","dieMessage","encodeSuccess","encode","successSchema","matchEffect","serializeFailure","fail","add","catchAll","mapEffect","message"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,YAAY,MAAM,6BAA6B;AAC3D,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,YAAY,MAAM,oBAAoB;AAKlD;AACA,OAAO,MAAMC,oBAAoB,gBAAsCC,MAAM,CAACC,GAAG,CAC/E,wCAAwC,CACJ;AAEtC;AACA,OAAO,MAAMC,cAAc,gBAAGZ,OAAO,CAACa,GAAG,CACvCJ,oBAAoB,CACrB;AAED;AACA,OAAO,MAAMK,IAAI,GAAGA,CAClBC,OAAwE,EACxEC,OAA2C,KAE3Cf,MAAM,CAACgB,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMC,QAAQ,GAAG,OAAOD,CAAC,CAACN,cAAc,CAAC;EACzC,MAAMQ,OAAO,GAAG,OAAOF,CAAC,CAACC,QAAQ,CAACE,KAAK,EAAuD,CAAC;EAC/F,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAAoC;EAE5D,MAAMC,cAAc,GAAGpB,IAAI,CACzBE,KAAK,CAACmB,IAAI,CAACL,OAAO,CAACM,KAAK,CAAC,EACzBzB,MAAM,CAAC0B,GAAG,CAAEC,GAAG,IAAI;IACjB,MAAMC,EAAE,GAAGD,GAAG,CAAC,CAAC,CAAC;IACjB,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;MAChB,MAAME,KAAK,GAAGR,QAAQ,CAACS,GAAG,CAACF,EAAE,CAAC;MAC9B,IAAI,CAACC,KAAK,EAAE,OAAO7B,MAAM,CAAC+B,IAAI;MAC9B,OAAO7B,KAAK,CAAC8B,SAAS,CAACH,KAAK,CAAC;IAC/B;IAEA,MAAMI,MAAM,GAAGnB,OAAO,CAACa,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9B,MAAMO,MAAM,GAAGlC,MAAM,CAACmC,QAAQ,CAACF,MAAM,CAAC,GACpCjC,MAAM,CAACoC,gBAAgB,CAACH,MAAM,EAAE;MAC9BI,SAAS,EAAGC,KAAK,IACfrC,MAAM,CAACsC,KAAK,CAACzC,KAAK,CAAC0C,cAAc,CAACF,KAAK,CAAC,EAAE;QACxCG,MAAM,EAAGC,KAAK,IAAI;UAChB,MAAMC,SAAS,GAAG5B,OAAO,EAAE4B,SAAS,GAAG5B,OAAO,CAAC4B,SAAS,CAACD,KAAK,CAAC,GAAGE,SAAS;UAC3E,OAAOzC,IAAI,CACTY,OAAO,EAAE8B,WAAW,GAAG9B,OAAO,CAAC8B,WAAW,CAACH,KAAK,CAAC,GAAG1C,MAAM,CAAC8C,OAAO,CAACJ,KAAK,CAAC,EACzE1C,MAAM,CAAC+C,OAAO,CAAEC,OAAO,IAAK7B,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAEoB,OAAc,CAAC,EAAEL,SAAS,CAAC,CAAC,EAC7E3C,MAAM,CAACkD,aAAa,CAAEZ,KAAK,IAAKnB,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAE9B,KAAK,CAACqD,MAAM,CAACb,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5E;QACH,CAAC;QACDc,OAAO,EAAGd,KAAK,IAAKnB,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAE9B,KAAK,CAACqD,MAAM,CAACb,KAAK,CAAC,CAAC;OAC9D,CAAC;MACJe,SAAS,EAAGC,IAAI,IAAI;QAClB,MAAMX,SAAS,GAAG5B,OAAO,EAAE4B,SAAS,GAAG5B,OAAO,CAAC4B,SAAS,CAACW,IAAI,CAAC,GAAGV,SAAS;QAC1E,OAAOzC,IAAI,CACTY,OAAO,EAAEwC,YAAY,GAAGxC,OAAO,CAACwC,YAAY,CAACD,IAAI,CAAC,GAAGtD,MAAM,CAAC8C,OAAO,CAACQ,IAAI,CAAC,EACzEtD,MAAM,CAAC+C,OAAO,CAAEC,OAAO,IAAK7B,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAEoB,OAAO,CAAC,EAAEL,SAAS,CAAC,CAAC,EACtE3C,MAAM,CAACkD,aAAa,CAAEZ,KAAK,IAAKnB,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAE9B,KAAK,CAACqD,MAAM,CAACb,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5E;MACH;KACD,CAAC,GACFnC,IAAI,CACF8B,MAAM,EACN3B,MAAM,CAACoB,GAAG,CAAE4B,IAAI,IAAI;MAClB,MAAMX,SAAS,GAAG5B,OAAO,EAAE4B,SAAS,GAAG5B,OAAO,CAAC4B,SAAS,CAACW,IAAI,CAAC,GAAGV,SAAS;MAC1E,OAAO5C,MAAM,CAAC+C,OAAO,CACnBhC,OAAO,EAAEwC,YAAY,GAAGvD,MAAM,CAACwD,KAAK,CAACzC,OAAO,CAACwC,YAAY,CAACD,IAAI,CAAC,CAAC,GAAGtD,MAAM,CAAC8C,OAAO,CAACQ,IAAI,CAAC,EACtFN,OAAO,IAAK7B,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAEoB,OAAO,CAAC,EAAEL,SAAS,CAAC,CACvD;IACH,CAAC,CAAC,EACFrC,MAAM,CAACmD,QAAQ,EACfzD,MAAM,CAACoC,gBAAgB,CAAC;MACtBC,SAAS,EAAGC,KAAK,IACfrC,MAAM,CAACsC,KAAK,CAACzC,KAAK,CAAC0C,cAAc,CAACF,KAAK,CAAC,EAAE;QACxCG,MAAM,EAAGC,KAAK,IAAI;UAChB,MAAMC,SAAS,GAAG5B,OAAO,EAAE4B,SAAS,GAAG5B,OAAO,CAAC4B,SAAS,CAACD,KAAK,CAAC,GAAGE,SAAS;UAC3E,OAAOzC,IAAI,CACTY,OAAO,EAAE8B,WAAW,GAAG9B,OAAO,CAAC8B,WAAW,CAACH,KAAK,CAAC,GAAG1C,MAAM,CAAC8C,OAAO,CAACJ,KAAK,CAAC,EACzE1C,MAAM,CAAC+C,OAAO,CAAEC,OAAO,IAAK7B,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAEoB,OAAc,CAAC,EAAEL,SAAS,CAAC,CAAC,EAC7E3C,MAAM,CAACkD,aAAa,CAAEZ,KAAK,IAAKnB,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAE9B,KAAK,CAACqD,MAAM,CAACb,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5E;QACH,CAAC;QACDc,OAAO,EAAGd,KAAK,IAAKnB,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,EAAE9B,KAAK,CAACqD,MAAM,CAACb,KAAK,CAAC,CAAC;OAC9D,CAAC;MACJe,SAAS,EAAEA,CAAA,KAAMlC,OAAO,CAAC8B,IAAI,CAAC,CAACrB,EAAE,EAAE,CAAC,CAAC;KACtC,CAAC,CACH;IAEH,OAAOzB,IAAI,CACT+B,MAAM,EACNlC,MAAM,CAAC0D,QAAQ,CAAC1D,MAAM,CAAC2D,IAAI,CAAC,MAAMtC,QAAQ,CAACuC,MAAM,CAAChC,EAAE,CAAC,CAAC,CAAC,EACvD5B,MAAM,CAAC6D,IAAI,EACX7D,MAAM,CAAC0B,GAAG,CAAEG,KAAK,IAAK7B,MAAM,CAAC2D,IAAI,CAAC,MAAMtC,QAAQ,CAACyC,GAAG,CAAClC,EAAE,EAAEC,KAAK,CAAC,CAAC,CAAC,CAClE;EACH,CAAC,CAAC,EACF7B,MAAM,CAAC+D,OAAO,CACf;EAED,OAAO,OAAO9C,CAAC,CACbjB,MAAM,CAACgE,GAAG,CAAC,CACTzC,cAAc,EACdrB,KAAK,CAAC+D,IAAI,CAAC9C,OAAO,CAACU,KAAK,CAAC,CAC1B,EAAE;IAAEqC,WAAW,EAAE,WAAW;IAAEC,OAAO,EAAE;EAAI,CAAE,CAAqD,CACpG;AACH,CAAC,CAAC;AAEJ;AACA,OAAO,MAAMC,cAAc,GAAGA,CAU5BC,MAA2B,EAC3BC,QAAkB,KAOhB;EACF,MAAMC,YAAY,GAAG3E,MAAM,CAAC4E,MAAM,CAACH,MAAM,CAAC;EAC1C,MAAMI,UAAU,GAAG,IAAIC,GAAG,EAAU;EACpC,OAAO7D,IAAI,CAAE8D,OAAU,IAAI;IACzB,IAAIvE,SAAS,CAACwE,WAAW,CAACD,OAAO,EAAE,MAAM,CAAC,IAAIF,UAAU,CAACI,GAAG,CAACF,OAAO,CAACG,IAAc,CAAC,EAAE;MACpF,OAAO9E,MAAM,CAAC+C,OAAO,CAACwB,YAAY,CAACI,OAAO,CAAC,EAAGA,OAAU,IAAI;QAC1D,MAAMI,OAAO,GACVT,QAAwF,CAACK,OAAO,CAACG,IAAI,CAAC;QACzG,IAAI,CAACC,OAAO,EAAE;UACZ,OAAO/E,MAAM,CAACgF,UAAU,CAAC,kBAAkBL,OAAO,CAACG,IAAI,EAAE,CAAC;QAC5D;QACA,MAAMG,aAAa,GAAGrF,MAAM,CAACsF,MAAM,CAACrF,YAAY,CAACsF,aAAa,CAACR,OAAc,CAAC,CAAC;QAC/E,OAAOxE,IAAI,CACTH,MAAM,CAACoF,WAAW,CAACL,OAAO,CAACJ,OAAO,CAAC,EAAE;UACnCtC,SAAS,EAAGK,KAAK,IAAK1C,MAAM,CAAC+C,OAAO,CAAClD,YAAY,CAACwF,gBAAgB,CAACV,OAAc,EAAEjC,KAAK,CAAC,EAAE1C,MAAM,CAACsF,IAAI,CAAC;UACvGjC,SAAS,EAAE4B;SACZ,CAAC,CACH;MACH,CAAC,CAAC;IACJ;IAEA,OAAO3E,MAAM,CAACyC,OAAO,CAACwB,YAAY,CAACI,OAAO,CAAC,EAAGA,OAAU,IAAI;MAC1D,MAAMI,OAAO,GACVT,QAAwF,CAACK,OAAO,CAACG,IAAI,CAAC;MACzG,IAAI,CAACC,OAAO,EAAE;QACZ,OAAOzE,MAAM,CAAC0E,UAAU,CAAC,kBAAkBL,OAAO,CAACG,IAAI,EAAE,CAAC;MAC5D;MACA,MAAMG,aAAa,GAAGrF,MAAM,CAACsF,MAAM,CAACrF,YAAY,CAACsF,aAAa,CAACR,OAAc,CAAC,CAAC;MAC/E,MAAM1C,MAAM,GAAG8C,OAAO,CAACJ,OAAO,CAAC;MAC/B,IAAI3E,MAAM,CAACmC,QAAQ,CAACF,MAAM,CAAC,EAAE;QAC3BwC,UAAU,CAACc,GAAG,CAACZ,OAAO,CAACG,IAAI,CAAC;MAC9B;MACA,OAAO3E,IAAI,CACT8B,MAAM,EACN3B,MAAM,CAACkF,QAAQ,CAAE9C,KAAK,IAAK1C,MAAM,CAAC+C,OAAO,CAAClD,YAAY,CAACwF,gBAAgB,CAACV,OAAc,EAAEjC,KAAK,CAAC,EAAE1C,MAAM,CAACsF,IAAI,CAAC,CAAC,EAC7GhF,MAAM,CAACmF,SAAS,CAACR,aAAa,CAAC,CAChC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE;IACDtC,SAASA,CAAC+C,OAAO;MACf,OAAOnF,YAAY,CAACuB,GAAG,CAAC4D,OAAO,CAAC;IAClC;GACD,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.37.0",
3
+ "version": "0.37.1",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -2,6 +2,11 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
 
5
+ import * as AST from "@effect/schema/AST"
6
+ import * as ParseResult from "@effect/schema/ParseResult"
7
+ import * as Schema from "@effect/schema/Schema"
8
+ import { dual } from "effect/Function"
9
+
5
10
  /**
6
11
  * @since 1.0.0
7
12
  * @category symbols
@@ -16,13 +21,86 @@ export interface Transferable {
16
21
  readonly [symbol]: () => ReadonlyArray<globalThis.Transferable>
17
22
  }
18
23
 
24
+ /**
25
+ * @since 1.0.0
26
+ * @category predicates
27
+ */
28
+ export const isTransferable = (u: unknown): u is Transferable => typeof u === "object" && u !== null && symbol in u
29
+
19
30
  /**
20
31
  * @since 1.0.0
21
32
  * @category accessors
22
33
  */
23
34
  export const get = (u: unknown): ReadonlyArray<globalThis.Transferable> => {
24
- if (typeof u === "object" && u !== null && symbol in u) {
25
- return (u as Transferable)[symbol]()
35
+ if (isTransferable(u)) {
36
+ return u[symbol]()
26
37
  }
27
38
  return []
28
39
  }
40
+
41
+ /**
42
+ * @since 1.0.0
43
+ * @category schema
44
+ */
45
+ export const schema: {
46
+ <A>(
47
+ f: (_: A) => ReadonlyArray<globalThis.Transferable>
48
+ ): <I>(self: Schema.Schema<I, A>) => Schema.Schema<I, A & Transferable>
49
+ <I, A>(
50
+ self: Schema.Schema<I, A>,
51
+ f: (_: A) => ReadonlyArray<globalThis.Transferable>
52
+ ): Schema.Schema<I, A & Transferable>
53
+ } = dual<
54
+ <A>(
55
+ f: (_: A) => ReadonlyArray<globalThis.Transferable>
56
+ ) => <I>(self: Schema.Schema<I, A>) => Schema.Schema<I, A & Transferable>,
57
+ <I, A>(
58
+ self: Schema.Schema<I, A>,
59
+ f: (_: A) => ReadonlyArray<globalThis.Transferable>
60
+ ) => Schema.Schema<I, A & Transferable>
61
+ >(2, <I, A>(
62
+ self: Schema.Schema<I, A>,
63
+ f: (_: A) => ReadonlyArray<globalThis.Transferable>
64
+ ) =>
65
+ Schema.transform(
66
+ self,
67
+ schemaFromSelf(Schema.to(self)),
68
+ (input) =>
69
+ ({
70
+ ...input,
71
+ [symbol]() {
72
+ return f(this as any)
73
+ }
74
+ }) as A & Transferable,
75
+ (output) => output as A
76
+ ))
77
+
78
+ /**
79
+ * @since 1.0.0
80
+ * @category schema
81
+ */
82
+ export const schemaFromSelf = <I, A>(
83
+ item: Schema.Schema<I, A>
84
+ ): Schema.Schema<I & Transferable, A & Transferable> => {
85
+ return Schema.declare(
86
+ [item],
87
+ item,
88
+ (isDecoding, item) => {
89
+ const parse = isDecoding ? Schema.parse(item) : Schema.encode(item)
90
+ return (u, options, ast) => {
91
+ if (!isTransferable(u)) {
92
+ return ParseResult.fail(ParseResult.type(ast, u))
93
+ }
94
+ const proto = {
95
+ __proto__: Object.getPrototypeOf(u),
96
+ [symbol]: u[symbol]
97
+ }
98
+ return ParseResult.map(
99
+ parse(u, options),
100
+ (a) => Object.setPrototypeOf(a, proto)
101
+ )
102
+ }
103
+ },
104
+ { [AST.IdentifierAnnotationId]: "Transferable" }
105
+ )
106
+ }
package/src/Worker.ts CHANGED
@@ -8,6 +8,7 @@ import type * as Context from "effect/Context"
8
8
  import type * as Duration from "effect/Duration"
9
9
  import type * as Effect from "effect/Effect"
10
10
  import type * as Fiber from "effect/Fiber"
11
+ import type { LazyArg } from "effect/Function"
11
12
  import type * as Layer from "effect/Layer"
12
13
  import type * as Pool from "effect/Pool"
13
14
  import type * as Queue from "effect/Queue"
@@ -87,10 +88,11 @@ export declare namespace Worker {
87
88
  */
88
89
  export interface Options<I, W = unknown> {
89
90
  readonly spawn: (id: number) => W
90
- readonly encode?: (message: I) => unknown
91
+ readonly encode?: (message: I) => Effect.Effect<never, WorkerError, unknown>
91
92
  readonly transfers?: (message: I) => ReadonlyArray<unknown>
92
93
  readonly permits?: number
93
94
  readonly queue?: WorkerQueue<I>
95
+ readonly initialMessage?: LazyArg<I>
94
96
  }
95
97
 
96
98
  /**
@@ -246,6 +248,7 @@ export declare namespace SerializedWorker {
246
248
  readonly spawn: (id: number) => W
247
249
  readonly permits?: number
248
250
  readonly queue?: WorkerQueue<I>
251
+ readonly initialMessage?: LazyArg<I>
249
252
  }
250
253
  }
251
254
 
@@ -23,7 +23,7 @@ export type WorkerErrorTypeId = typeof WorkerErrorTypeId
23
23
  export interface WorkerError extends Data.Case {
24
24
  readonly [WorkerErrorTypeId]: WorkerErrorTypeId
25
25
  readonly _tag: "WorkerError"
26
- readonly reason: "spawn" | "decode" | "send" | "unknown"
26
+ readonly reason: "spawn" | "decode" | "send" | "unknown" | "encode"
27
27
  readonly error: unknown
28
28
  readonly stack?: string
29
29
  }
@@ -33,7 +33,7 @@ export interface WorkerError extends Data.Case {
33
33
  * @category errors
34
34
  */
35
35
  export const WorkerError: (
36
- reason: "spawn" | "decode" | "send" | "unknown",
36
+ reason: "spawn" | "decode" | "send" | "unknown" | "encode",
37
37
  error: unknown,
38
38
  stack?: string
39
39
  ) => WorkerError = internal.WorkerError
@@ -70,9 +70,10 @@ export declare namespace Runner {
70
70
  * @since 1.0.0
71
71
  * @category models
72
72
  */
73
- export interface Options<O> {
74
- readonly encode?: (message: O) => unknown
75
- readonly transfers?: (message: O) => ReadonlyArray<unknown>
73
+ export interface Options<E, O> {
74
+ readonly encodeOutput?: (message: O) => Effect.Effect<never, WorkerError, unknown>
75
+ readonly encodeError?: (message: E) => Effect.Effect<never, WorkerError, unknown>
76
+ readonly transfers?: (message: O | E) => ReadonlyArray<unknown>
76
77
  }
77
78
  }
78
79
 
@@ -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<O> | undefined
86
+ options?: Runner.Options<E, O> | undefined
86
87
  ) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, never> = internal.make
87
88
 
88
89
  /**
@@ -4,7 +4,7 @@ import { dual } from "effect/Function"
4
4
  import * as HashMap from "effect/HashMap"
5
5
  import * as Option from "effect/Option"
6
6
  import { pipeArguments } from "effect/Pipeable"
7
- import type ReadonlyArray from "effect/ReadonlyArray"
7
+ import type * as ReadonlyArray from "effect/ReadonlyArray"
8
8
  import type { Scope } from "effect/Scope"
9
9
  import * as Stream from "effect/Stream"
10
10
  import type * as Command from "../Command.js"
@@ -16,7 +16,7 @@ import type * as Scope from "effect/Scope"
16
16
  import * as Stream from "effect/Stream"
17
17
  import * as Transferable from "../Transferable.js"
18
18
  import type * as Worker from "../Worker.js"
19
- import type { WorkerError } from "../WorkerError.js"
19
+ import { WorkerError } from "../WorkerError.js"
20
20
 
21
21
  /** @internal */
22
22
  export const defaultQueue = <I>() =>
@@ -55,7 +55,14 @@ export const makeManager = Effect.gen(function*(_) {
55
55
  let idCounter = 0
56
56
  return WorkerManager.of({
57
57
  [WorkerManagerTypeId]: WorkerManagerTypeId,
58
- spawn<I, E, O>({ encode, permits = 1, queue, spawn, transfers = (_) => [] }: Worker.Worker.Options<I>) {
58
+ spawn<I, E, O>({
59
+ encode,
60
+ initialMessage,
61
+ permits = 1,
62
+ queue,
63
+ spawn,
64
+ transfers = (_) => []
65
+ }: Worker.Worker.Options<I>) {
59
66
  return Effect.gen(function*(_) {
60
67
  const id = idCounter++
61
68
  let requestIdCounter = 0
@@ -194,13 +201,13 @@ export const makeManager = Effect.gen(function*(_) {
194
201
  const result = requestMap.get(id)
195
202
  if (!result) return Effect.unit
196
203
  const transferables = transfers(request)
197
- const payload = encode ? encode(request) : request
198
- return Effect.zipRight(
199
- Effect.catchAllCause(
200
- backing.send([id, 0, payload], transferables),
201
- (cause) => Queue.offer(result[0], Exit.failCause(cause))
204
+ return pipe(
205
+ Effect.flatMap(
206
+ encode ? encode(request) : Effect.succeed(request),
207
+ (payload) => backing.send([id, 0, payload], transferables)
202
208
  ),
203
- Deferred.await(result[1])
209
+ Effect.catchAllCause((cause) => Queue.offer(result[0], Exit.failCause(cause))),
210
+ Effect.zipRight(Deferred.await(result[1]))
204
211
  )
205
212
  }),
206
213
  Effect.ensuring(semaphore.release(1)),
@@ -222,6 +229,14 @@ export const makeManager = Effect.gen(function*(_) {
222
229
  never
223
230
  >
224
231
 
232
+ if (initialMessage) {
233
+ yield* _(
234
+ Effect.sync(initialMessage),
235
+ Effect.flatMap(executeEffect),
236
+ Effect.mapError((error) => WorkerError("spawn", error))
237
+ )
238
+ }
239
+
225
240
  return { id, join, execute, executeEffect }
226
241
  }).pipe(Effect.parallelFinalizers)
227
242
  }
@@ -303,6 +318,9 @@ export const makeSerialized = <
303
318
  ...options,
304
319
  transfers(message) {
305
320
  return Transferable.get(message)
321
+ },
322
+ encode(message) {
323
+ return Effect.mapError(Serializable.serialize(message), (error) => WorkerError("encode", error))
306
324
  }
307
325
  })
308
326
  )
@@ -310,8 +328,7 @@ export const makeSerialized = <
310
328
  const parseSuccess = Schema.decode(Serializable.successSchema(message as any))
311
329
  const parseFailure = Schema.decode(Serializable.failureSchema(message as any))
312
330
  return pipe(
313
- Serializable.serialize(message),
314
- Stream.flatMap((message) => backing.execute(message)),
331
+ backing.execute(message),
315
332
  Stream.catchAll((error) => Effect.flatMap(parseFailure(error), Effect.fail)),
316
333
  Stream.mapEffect(parseSuccess)
317
334
  )
@@ -319,14 +336,10 @@ export const makeSerialized = <
319
336
  const executeEffect = <Req extends I>(message: Req) => {
320
337
  const parseSuccess = Schema.decode(Serializable.successSchema(message as any))
321
338
  const parseFailure = Schema.decode(Serializable.failureSchema(message as any))
322
- return pipe(
323
- Serializable.serialize(message),
324
- Effect.flatMap((message) => backing.executeEffect(message)),
325
- Effect.matchEffect({
326
- onFailure: (error) => Effect.flatMap(parseFailure(error), Effect.fail),
327
- onSuccess: parseSuccess
328
- })
329
- )
339
+ return Effect.matchEffect(backing.executeEffect(message), {
340
+ onFailure: (error) => Effect.flatMap(parseFailure(error), Effect.fail),
341
+ onSuccess: parseSuccess
342
+ })
330
343
  }
331
344
  return identity<Worker.SerializedWorker<I>>({
332
345
  id: backing.id,
@@ -28,7 +28,7 @@ export const PlatformRunner = Context.Tag<WorkerRunner.PlatformRunner>(
28
28
  /** @internal */
29
29
  export const make = <I, R, E, O>(
30
30
  process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
31
- options?: WorkerRunner.Runner.Options<O>
31
+ options?: WorkerRunner.Runner.Options<E, O>
32
32
  ) =>
33
33
  Effect.gen(function*(_) {
34
34
  const platform = yield* _(PlatformRunner)
@@ -51,27 +51,46 @@ export const make = <I, R, E, O>(
51
51
  Effect.matchCauseEffect(stream, {
52
52
  onFailure: (cause) =>
53
53
  Either.match(Cause.failureOrCause(cause), {
54
- onLeft: (error) => backing.send([id, 2, error]),
54
+ onLeft: (error) => {
55
+ const transfers = options?.transfers ? options.transfers(error) : undefined
56
+ return pipe(
57
+ options?.encodeError ? options.encodeError(error) : Effect.succeed(error),
58
+ Effect.flatMap((payload) => backing.send([id, 2, payload as any], transfers)),
59
+ Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
60
+ )
61
+ },
55
62
  onRight: (cause) => backing.send([id, 3, Cause.squash(cause)])
56
63
  }),
57
64
  onSuccess: (data) => {
58
65
  const transfers = options?.transfers ? options.transfers(data) : undefined
59
- const payload = options?.encode ? options.encode(data) : data
60
- return backing.send([id, 1, payload], transfers)
66
+ return pipe(
67
+ options?.encodeOutput ? options.encodeOutput(data) : Effect.succeed(data),
68
+ Effect.flatMap((payload) => backing.send([id, 0, payload], transfers)),
69
+ Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
70
+ )
61
71
  }
62
72
  }) :
63
73
  pipe(
64
74
  stream,
65
- Stream.tap((item) => {
66
- const transfers = options?.transfers ? options.transfers(item) : undefined
67
- const payload = options?.encode ? options.encode(item) : item
68
- return backing.send([id, 0, payload], transfers)
75
+ Stream.tap((data) => {
76
+ const transfers = options?.transfers ? options.transfers(data) : undefined
77
+ return Effect.flatMap(
78
+ options?.encodeOutput ? Effect.orDie(options.encodeOutput(data)) : Effect.succeed(data),
79
+ (payload) => backing.send([id, 0, payload], transfers)
80
+ )
69
81
  }),
70
82
  Stream.runDrain,
71
83
  Effect.matchCauseEffect({
72
84
  onFailure: (cause) =>
73
85
  Either.match(Cause.failureOrCause(cause), {
74
- onLeft: (error) => backing.send([id, 2, error]),
86
+ onLeft: (error) => {
87
+ const transfers = options?.transfers ? options.transfers(error) : undefined
88
+ return pipe(
89
+ options?.encodeError ? options.encodeError(error) : Effect.succeed(error),
90
+ Effect.flatMap((payload) => backing.send([id, 2, payload as any], transfers)),
91
+ Effect.catchAllCause((cause) => backing.send([id, 3, Cause.squash(cause)]))
92
+ )
93
+ },
75
94
  onRight: (cause) => backing.send([id, 3, Cause.squash(cause)])
76
95
  }),
77
96
  onSuccess: () => backing.send([id, 1])