@effect/platform 0.75.4 → 0.76.0

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.
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.run = exports.makeSerialized = exports.make = exports.layerSerialized = exports.layer = exports.PlatformRunnerTypeId = exports.PlatformRunner = void 0;
6
+ exports.makeSerialized = exports.make = exports.layerSerialized = exports.layerCloseLatch = exports.layer = exports.launch = exports.PlatformRunnerTypeId = exports.PlatformRunner = exports.CloseLatch = void 0;
7
7
  var internal = _interopRequireWildcard(require("./internal/workerRunner.js"));
8
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
9
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -18,10 +18,18 @@ const PlatformRunnerTypeId = exports.PlatformRunnerTypeId = internal.PlatformRun
18
18
  */
19
19
  const PlatformRunner = exports.PlatformRunner = internal.PlatformRunner;
20
20
  /**
21
+ * The worker close latch is used by platform runners to signal that the worker
22
+ * has been closed.
23
+ *
21
24
  * @since 1.0.0
22
- * @category constructors
25
+ * @category CloseLatch
26
+ */
27
+ const CloseLatch = exports.CloseLatch = internal.CloseLatch;
28
+ /**
29
+ * @since 1.0.0
30
+ * @category CloseLatch
23
31
  */
24
- const run = exports.run = internal.run;
32
+ const layerCloseLatch = exports.layerCloseLatch = internal.layerCloseLatch;
25
33
  /**
26
34
  * @since 1.0.0
27
35
  * @category constructors
@@ -42,4 +50,12 @@ const makeSerialized = exports.makeSerialized = internal.makeSerialized;
42
50
  * @category layers
43
51
  */
44
52
  const layerSerialized = exports.layerSerialized = internal.layerSerialized;
53
+ /**
54
+ * Launch the specified layer, interrupting the fiber when the CloseLatch is
55
+ * triggered.
56
+ *
57
+ * @since 1.0.0
58
+ * @category Execution
59
+ */
60
+ const launch = exports.launch = internal.launch;
45
61
  //# sourceMappingURL=WorkerRunner.js.map
@@ -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","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","PlatformRunner","run","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AASA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AA8BtD;;;;AAIO,MAAMW,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAkBvB,QAAQ,CAACuB,oBAAoB;AAiBhF;;;;AAIO,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAgDzB,QAAQ,CAACyB,cAAc;AA0BlG;;;;AAIO,MAAMC,GAAG,GAAAF,OAAA,CAAAE,GAAA,GAG6C1B,QAAQ,CAAC0B,GAAG;AAEzE;;;;AAIO,MAAMC,IAAI,GAAAH,OAAA,CAAAG,IAAA,GAGyD3B,QAAQ,CAAC2B,IAAI;AAEvF;;;;AAIO,MAAMC,KAAK,GAAAJ,OAAA,CAAAI,KAAA,GAGyC5B,QAAQ,CAAC4B,KAAK;AAyEzE;;;;AAIO,MAAMC,cAAc,GAAAL,OAAA,CAAAK,cAAA,GASzB7B,QAAQ,CAAC6B,cAAc;AAEzB;;;;AAIO,MAAMC,eAAe,GAAAN,OAAA,CAAAM,eAAA,GAS1B9B,QAAQ,CAAC8B,eAAe","ignoreList":[]}
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","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","PlatformRunner","CloseLatch","layerCloseLatch","make","layer","makeSerialized","layerSerialized","launch"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AAUA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AA8BtD;;;;AAIO,MAAMW,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAkBvB,QAAQ,CAACuB,oBAAoB;AAiBhF;;;;AAIO,MAAME,cAAc,GAAAD,OAAA,CAAAC,cAAA,GAAgDzB,QAAQ,CAACyB,cAAc;AAalG;;;;;;;AAOO,MAAMC,UAAU,GAAAF,OAAA,CAAAE,UAAA,GAAwE1B,QAAQ,CAAC0B,UAAU;AAElH;;;;AAIO,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAA4B3B,QAAQ,CAAC2B,eAAe;AA0BhF;;;;AAIO,MAAMC,IAAI,GAAAJ,OAAA,CAAAI,IAAA,GAGyD5B,QAAQ,CAAC4B,IAAI;AAEvF;;;;AAIO,MAAMC,KAAK,GAAAL,OAAA,CAAAK,KAAA,GAGyC7B,QAAQ,CAAC6B,KAAK;AAyEzE;;;;AAIO,MAAMC,cAAc,GAAAN,OAAA,CAAAM,cAAA,GAYvB9B,QAAQ,CAAC8B,cAAc;AAE3B;;;;AAIO,MAAMC,eAAe,GAAAP,OAAA,CAAAO,eAAA,GAS1B/B,QAAQ,CAAC+B,eAAe;AAE1B;;;;;;;AAOO,MAAMC,MAAM,GAAAR,OAAA,CAAAQ,MAAA,GAAsFhC,QAAQ,CAACgC,MAAM","ignoreList":[]}
@@ -3,16 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.run = exports.makeSerialized = exports.make = exports.layerSerialized = exports.layer = exports.PlatformRunnerTypeId = exports.PlatformRunner = void 0;
6
+ exports.makeSerialized = exports.make = exports.layerSerialized = exports.layerCloseLatch = exports.layer = exports.launch = exports.PlatformRunnerTypeId = exports.PlatformRunner = exports.CloseLatch = void 0;
7
7
  var Cause = _interopRequireWildcard(require("effect/Cause"));
8
8
  var Chunk = _interopRequireWildcard(require("effect/Chunk"));
9
9
  var Context = _interopRequireWildcard(require("effect/Context"));
10
+ var Deferred = _interopRequireWildcard(require("effect/Deferred"));
10
11
  var Effect = _interopRequireWildcard(require("effect/Effect"));
11
12
  var Either = _interopRequireWildcard(require("effect/Either"));
12
13
  var Fiber = _interopRequireWildcard(require("effect/Fiber"));
14
+ var FiberId = _interopRequireWildcard(require("effect/FiberId"));
13
15
  var _Function = require("effect/Function");
14
16
  var Layer = _interopRequireWildcard(require("effect/Layer"));
15
- var Schedule = _interopRequireWildcard(require("effect/Schedule"));
16
17
  var Schema = _interopRequireWildcard(require("effect/Schema"));
17
18
  var Stream = _interopRequireWildcard(require("effect/Stream"));
18
19
  var Transferable = _interopRequireWildcard(require("../Transferable.js"));
@@ -24,11 +25,18 @@ const PlatformRunnerTypeId = exports.PlatformRunnerTypeId = /*#__PURE__*/Symbol.
24
25
  /** @internal */
25
26
  const PlatformRunner = exports.PlatformRunner = /*#__PURE__*/Context.GenericTag("@effect/platform/Runner/PlatformRunner");
26
27
  /** @internal */
27
- const run = (process, options) => Effect.gen(function* () {
28
+ const CloseLatch = exports.CloseLatch = /*#__PURE__*/Context.Reference()("@effect/platform/WorkerRunner/CloseLatch", {
29
+ defaultValue: () => Deferred.unsafeMake(FiberId.none)
30
+ });
31
+ /** @internal */
32
+ const layerCloseLatch = exports.layerCloseLatch = /*#__PURE__*/Layer.effect(CloseLatch, /*#__PURE__*/Deferred.make());
33
+ /** @internal */
34
+ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (process, options) {
28
35
  const platform = yield* PlatformRunner;
29
- const backing = yield* platform.start();
36
+ const closeLatch = yield* CloseLatch;
37
+ const backing = yield* platform.start(closeLatch);
30
38
  const fiberMap = new Map();
31
- return yield* backing.run((portId, [id, kind, data, span]) => {
39
+ yield* backing.run((portId, [id, kind, data, span]) => {
32
40
  if (kind === 1) {
33
41
  const fiber = fiberMap.get(id);
34
42
  if (!fiber) return Effect.void;
@@ -68,14 +76,7 @@ const run = (process, options) => Effect.gen(function* () {
68
76
  });
69
77
  });
70
78
  /** @internal */
71
- exports.run = run;
72
- const make = (process, options) => Effect.withFiberRuntime(fiber => run(process, options).pipe(Effect.tapErrorCause(cause => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logWarning(cause)), Effect.retry(Schedule.spaced(1000)), Effect.annotateLogs({
73
- package: "@effect/platform-node",
74
- module: "WorkerRunner"
75
- }), Effect.ensuring(Fiber.interruptAsFork(fiber, fiber.id())), Effect.interruptible, Effect.forkScoped, Effect.asVoid));
76
- /** @internal */
77
- exports.make = make;
78
- const layer = (process, options) => Layer.scopedDiscard(make(process, options));
79
+ const layer = (process, options) => Layer.scopedDiscard(make(process, options)).pipe(Layer.provide(layerCloseLatch));
79
80
  /** @internal */
80
81
  exports.layer = layer;
81
82
  const makeSerialized = (schema, handlers) => Effect.gen(function* () {
@@ -115,6 +116,13 @@ const makeSerialized = (schema, handlers) => Effect.gen(function* () {
115
116
  });
116
117
  /** @internal */
117
118
  exports.makeSerialized = makeSerialized;
118
- const layerSerialized = (schema, handlers) => Layer.scopedDiscard(makeSerialized(schema, handlers));
119
+ const layerSerialized = (schema, handlers) => Layer.scopedDiscard(makeSerialized(schema, handlers)).pipe(Layer.provide(layerCloseLatch));
120
+ /** @internal */
119
121
  exports.layerSerialized = layerSerialized;
122
+ const launch = layer => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
123
+ const context = yield* Layer.buildWithScope(Layer.merge(layer, layerCloseLatch), scope);
124
+ const closeLatch = Context.get(context, CloseLatch);
125
+ return yield* Effect.never.pipe(Effect.raceFirst(Deferred.await(closeLatch)));
126
+ }));
127
+ exports.launch = launch;
120
128
  //# sourceMappingURL=workerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRunner.js","names":["Cause","_interopRequireWildcard","require","Chunk","Context","Effect","Either","Fiber","_Function","Layer","Schedule","Schema","Stream","Transferable","_WorkerError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","Symbol","for","PlatformRunner","GenericTag","run","process","options","gen","platform","backing","start","fiberMap","Map","portId","id","kind","data","span","fiber","void","interrupt","withFiberRuntime","decode","succeed","pipe","flatMap","input","collector","unsafeMakeCollector","stream","effect","isEffect","out","encodeOutput","provideService","Collector","payload","send","unsafeRead","runForEachChunk","chunk","undefined","toReadonlyArray","unsafeClear","forEach","andThen","withParentSpan","_tag","traceId","spanId","sampled","context","empty","uninterruptibleMask","restore","catchIf","isWorkerError","error","WorkerError","encodeCause","fail","catchAllCause","cause","match","failureOrCause","onLeft","encodeError","onRight","ensuring","sync","delete","make","tapErrorCause","isInterruptedOnly","logWarning","retry","spaced","annotateLogs","package","module","interruptAsFork","interruptible","forkScoped","asVoid","layer","scopedDiscard","makeSerialized","schema","handlers","scope","parseRequest","decodeUnknown","request","result","isLayer","buildWithScope","_","merge","provide","provideContext","message","mapError","reason","serializeFailure","serializeSuccess","layerSerialized"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workerRunner.js","names":["Cause","_interopRequireWildcard","require","Chunk","Context","Deferred","Effect","Either","Fiber","FiberId","_Function","Layer","Schema","Stream","Transferable","_WorkerError","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PlatformRunnerTypeId","exports","Symbol","for","PlatformRunner","GenericTag","CloseLatch","Reference","defaultValue","unsafeMake","none","layerCloseLatch","effect","make","fnUntraced","process","options","platform","closeLatch","backing","start","fiberMap","Map","run","portId","id","kind","data","span","fiber","void","interrupt","withFiberRuntime","decode","succeed","pipe","flatMap","input","collector","unsafeMakeCollector","stream","isEffect","out","encodeOutput","provideService","Collector","payload","send","unsafeRead","runForEachChunk","chunk","undefined","toReadonlyArray","unsafeClear","forEach","andThen","withParentSpan","_tag","traceId","spanId","sampled","context","empty","uninterruptibleMask","restore","catchIf","isWorkerError","error","WorkerError","encodeCause","fail","catchAllCause","cause","match","failureOrCause","onLeft","encodeError","onRight","ensuring","sync","delete","layer","scopedDiscard","provide","makeSerialized","schema","handlers","gen","scope","parseRequest","decodeUnknown","request","result","isLayer","buildWithScope","_","merge","provideContext","message","mapError","reason","serializeFailure","serializeSuccess","layerSerialized","launch","scopedWith","never","raceFirst","await"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import type * as Context from "effect/Context";
5
+ import type * as Deferred from "effect/Deferred";
5
6
  import type * as Effect from "effect/Effect";
6
7
  import type * as Layer from "effect/Layer";
7
8
  import type * as Schema from "effect/Schema";
@@ -13,7 +14,7 @@ import type { WorkerError } from "./WorkerError.js";
13
14
  * @category models
14
15
  */
15
16
  export interface BackingRunner<I, O> {
16
- readonly run: <A, E, R>(handler: (portId: number, message: I) => Effect.Effect<A, E, R>) => Effect.Effect<never, E | WorkerError, R>;
17
+ readonly run: <A, E, R>(handler: (portId: number, message: I) => Effect.Effect<A, E, R>) => Effect.Effect<void, never, Scope.Scope | R>;
17
18
  readonly send: (portId: number, message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<void>;
18
19
  }
19
20
  /**
@@ -43,13 +44,36 @@ export type PlatformRunnerTypeId = typeof PlatformRunnerTypeId;
43
44
  */
44
45
  export interface PlatformRunner {
45
46
  readonly [PlatformRunnerTypeId]: PlatformRunnerTypeId;
46
- readonly start: <I, O>() => Effect.Effect<BackingRunner<I, O>, WorkerError>;
47
+ readonly start: <I, O>(closeLatch: typeof CloseLatch.Service) => Effect.Effect<BackingRunner<I, O>, WorkerError>;
47
48
  }
48
49
  /**
49
50
  * @since 1.0.0
50
51
  * @category tags
51
52
  */
52
53
  export declare const PlatformRunner: Context.Tag<PlatformRunner, PlatformRunner>;
54
+ /**
55
+ * The worker close latch is used by platform runners to signal that the worker
56
+ * has been closed.
57
+ *
58
+ * @since 1.0.0
59
+ * @category CloseLatch
60
+ */
61
+ export interface CloseLatch {
62
+ readonly _: unique symbol;
63
+ }
64
+ /**
65
+ * The worker close latch is used by platform runners to signal that the worker
66
+ * has been closed.
67
+ *
68
+ * @since 1.0.0
69
+ * @category CloseLatch
70
+ */
71
+ export declare const CloseLatch: Context.Reference<CloseLatch, Deferred.Deferred<void, WorkerError>>;
72
+ /**
73
+ * @since 1.0.0
74
+ * @category CloseLatch
75
+ */
76
+ export declare const layerCloseLatch: Layer.Layer<CloseLatch>;
53
77
  /**
54
78
  * @since 1.0.0
55
79
  * @category models
@@ -65,11 +89,6 @@ export declare namespace Runner {
65
89
  readonly encodeError?: (request: I, error: E) => Effect.Effect<unknown, WorkerError>;
66
90
  }
67
91
  }
68
- /**
69
- * @since 1.0.0
70
- * @category constructors
71
- */
72
- export declare const run: <I, E, R, O>(process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>, options?: Runner.Options<I, O, E>) => Effect.Effect<never, WorkerError, PlatformRunner | R>;
73
92
  /**
74
93
  * @since 1.0.0
75
94
  * @category constructors
@@ -118,4 +137,12 @@ export declare const makeSerialized: <R, I, A extends Schema.TaggedRequest.All,
118
137
  * @category layers
119
138
  */
120
139
  export declare const layerSerialized: <R, I, A extends Schema.TaggedRequest.All, const Handlers extends SerializedRunner.Handlers<A>>(schema: Schema.Schema<A, I, R>, handlers: Handlers) => Layer.Layer<never, WorkerError, PlatformRunner | R | SerializedRunner.HandlersContext<Handlers>>;
140
+ /**
141
+ * Launch the specified layer, interrupting the fiber when the CloseLatch is
142
+ * triggered.
143
+ *
144
+ * @since 1.0.0
145
+ * @category Execution
146
+ */
147
+ export declare const launch: <A, E, R>(layer: Layer.Layer<A, E, R>) => Effect.Effect<void, E | WorkerError, R>;
121
148
  //# sourceMappingURL=WorkerRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"","sources":["../../src/WorkerRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"","sources":["../../src/WorkerRunner.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,18 @@ export const PlatformRunnerTypeId = internal.PlatformRunnerTypeId;
10
10
  */
11
11
  export const PlatformRunner = internal.PlatformRunner;
12
12
  /**
13
+ * The worker close latch is used by platform runners to signal that the worker
14
+ * has been closed.
15
+ *
13
16
  * @since 1.0.0
14
- * @category constructors
17
+ * @category CloseLatch
18
+ */
19
+ export const CloseLatch = internal.CloseLatch;
20
+ /**
21
+ * @since 1.0.0
22
+ * @category CloseLatch
15
23
  */
16
- export const run = internal.run;
24
+ export const layerCloseLatch = internal.layerCloseLatch;
17
25
  /**
18
26
  * @since 1.0.0
19
27
  * @category constructors
@@ -34,4 +42,12 @@ export const makeSerialized = internal.makeSerialized;
34
42
  * @category layers
35
43
  */
36
44
  export const layerSerialized = internal.layerSerialized;
45
+ /**
46
+ * Launch the specified layer, interrupting the fiber when the CloseLatch is
47
+ * triggered.
48
+ *
49
+ * @since 1.0.0
50
+ * @category Execution
51
+ */
52
+ export const launch = internal.launch;
37
53
  //# sourceMappingURL=WorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","run","make","layer","makeSerialized","layerSerialized"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AASA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AA8BtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AA0BlG;;;;AAIA,OAAO,MAAMC,GAAG,GAG6CH,QAAQ,CAACG,GAAG;AAEzE;;;;AAIA,OAAO,MAAMC,IAAI,GAGyDJ,QAAQ,CAACI,IAAI;AAEvF;;;;AAIA,OAAO,MAAMC,KAAK,GAGyCL,QAAQ,CAACK,KAAK;AAyEzE;;;;AAIA,OAAO,MAAMC,cAAc,GASzBN,QAAQ,CAACM,cAAc;AAEzB;;;;AAIA,OAAO,MAAMC,eAAe,GAS1BP,QAAQ,CAACO,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"WorkerRunner.js","names":["internal","PlatformRunnerTypeId","PlatformRunner","CloseLatch","layerCloseLatch","make","layer","makeSerialized","layerSerialized","launch"],"sources":["../../src/WorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAUA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AA8BtD;;;;AAIA,OAAO,MAAMC,oBAAoB,GAAkBD,QAAQ,CAACC,oBAAoB;AAiBhF;;;;AAIA,OAAO,MAAMC,cAAc,GAAgDF,QAAQ,CAACE,cAAc;AAalG;;;;;;;AAOA,OAAO,MAAMC,UAAU,GAAwEH,QAAQ,CAACG,UAAU;AAElH;;;;AAIA,OAAO,MAAMC,eAAe,GAA4BJ,QAAQ,CAACI,eAAe;AA0BhF;;;;AAIA,OAAO,MAAMC,IAAI,GAGyDL,QAAQ,CAACK,IAAI;AAEvF;;;;AAIA,OAAO,MAAMC,KAAK,GAGyCN,QAAQ,CAACM,KAAK;AAyEzE;;;;AAIA,OAAO,MAAMC,cAAc,GAYvBP,QAAQ,CAACO,cAAc;AAE3B;;;;AAIA,OAAO,MAAMC,eAAe,GAS1BR,QAAQ,CAACQ,eAAe;AAE1B;;;;;;;AAOA,OAAO,MAAMC,MAAM,GAAsFT,QAAQ,CAACS,MAAM","ignoreList":[]}
@@ -1,12 +1,13 @@
1
1
  import * as Cause from "effect/Cause";
2
2
  import * as Chunk from "effect/Chunk";
3
3
  import * as Context from "effect/Context";
4
+ import * as Deferred from "effect/Deferred";
4
5
  import * as Effect from "effect/Effect";
5
6
  import * as Either from "effect/Either";
6
7
  import * as Fiber from "effect/Fiber";
8
+ import * as FiberId from "effect/FiberId";
7
9
  import { pipe } from "effect/Function";
8
10
  import * as Layer from "effect/Layer";
9
- import * as Schedule from "effect/Schedule";
10
11
  import * as Schema from "effect/Schema";
11
12
  import * as Stream from "effect/Stream";
12
13
  import * as Transferable from "../Transferable.js";
@@ -16,11 +17,18 @@ export const PlatformRunnerTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Ru
16
17
  /** @internal */
17
18
  export const PlatformRunner = /*#__PURE__*/Context.GenericTag("@effect/platform/Runner/PlatformRunner");
18
19
  /** @internal */
19
- export const run = (process, options) => Effect.gen(function* () {
20
+ export const CloseLatch = /*#__PURE__*/Context.Reference()("@effect/platform/WorkerRunner/CloseLatch", {
21
+ defaultValue: () => Deferred.unsafeMake(FiberId.none)
22
+ });
23
+ /** @internal */
24
+ export const layerCloseLatch = /*#__PURE__*/Layer.effect(CloseLatch, /*#__PURE__*/Deferred.make());
25
+ /** @internal */
26
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* (process, options) {
20
27
  const platform = yield* PlatformRunner;
21
- const backing = yield* platform.start();
28
+ const closeLatch = yield* CloseLatch;
29
+ const backing = yield* platform.start(closeLatch);
22
30
  const fiberMap = new Map();
23
- return yield* backing.run((portId, [id, kind, data, span]) => {
31
+ yield* backing.run((portId, [id, kind, data, span]) => {
24
32
  if (kind === 1) {
25
33
  const fiber = fiberMap.get(id);
26
34
  if (!fiber) return Effect.void;
@@ -60,12 +68,7 @@ export const run = (process, options) => Effect.gen(function* () {
60
68
  });
61
69
  });
62
70
  /** @internal */
63
- export const make = (process, options) => Effect.withFiberRuntime(fiber => run(process, options).pipe(Effect.tapErrorCause(cause => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logWarning(cause)), Effect.retry(Schedule.spaced(1000)), Effect.annotateLogs({
64
- package: "@effect/platform-node",
65
- module: "WorkerRunner"
66
- }), Effect.ensuring(Fiber.interruptAsFork(fiber, fiber.id())), Effect.interruptible, Effect.forkScoped, Effect.asVoid));
67
- /** @internal */
68
- export const layer = (process, options) => Layer.scopedDiscard(make(process, options));
71
+ export const layer = (process, options) => Layer.scopedDiscard(make(process, options)).pipe(Layer.provide(layerCloseLatch));
69
72
  /** @internal */
70
73
  export const makeSerialized = (schema, handlers) => Effect.gen(function* () {
71
74
  const scope = yield* Effect.scope;
@@ -103,5 +106,11 @@ export const makeSerialized = (schema, handlers) => Effect.gen(function* () {
103
106
  });
104
107
  });
105
108
  /** @internal */
106
- export const layerSerialized = (schema, handlers) => Layer.scopedDiscard(makeSerialized(schema, handlers));
109
+ export const layerSerialized = (schema, handlers) => Layer.scopedDiscard(makeSerialized(schema, handlers)).pipe(Layer.provide(layerCloseLatch));
110
+ /** @internal */
111
+ export const launch = layer => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
112
+ const context = yield* Layer.buildWithScope(Layer.merge(layer, layerCloseLatch), scope);
113
+ const closeLatch = Context.get(context, CloseLatch);
114
+ return yield* Effect.never.pipe(Effect.raceFirst(Deferred.await(closeLatch)));
115
+ }));
107
116
  //# sourceMappingURL=workerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRunner.js","names":["Cause","Chunk","Context","Effect","Either","Fiber","pipe","Layer","Schedule","Schema","Stream","Transferable","isWorkerError","WorkerError","PlatformRunnerTypeId","Symbol","for","PlatformRunner","GenericTag","run","process","options","gen","platform","backing","start","fiberMap","Map","portId","id","kind","data","span","fiber","get","void","interrupt","withFiberRuntime","set","decode","succeed","flatMap","input","collector","unsafeMakeCollector","stream","effect","isEffect","out","encodeOutput","provideService","Collector","payload","send","unsafeRead","runForEachChunk","chunk","undefined","toReadonlyArray","unsafeClear","forEach","andThen","withParentSpan","_tag","traceId","spanId","sampled","context","empty","uninterruptibleMask","restore","catchIf","error","encodeCause","fail","catchAllCause","cause","match","failureOrCause","onLeft","encodeError","onRight","ensuring","sync","delete","make","tapErrorCause","isInterruptedOnly","logWarning","retry","spaced","annotateLogs","package","module","interruptAsFork","interruptible","forkScoped","asVoid","layer","scopedDiscard","makeSerialized","schema","handlers","scope","parseRequest","decodeUnknown","request","result","isLayer","buildWithScope","_","merge","provide","provideContext","message","mapError","reason","serializeFailure","serializeSuccess","layerSerialized"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workerRunner.js","names":["Cause","Chunk","Context","Deferred","Effect","Either","Fiber","FiberId","pipe","Layer","Schema","Stream","Transferable","isWorkerError","WorkerError","PlatformRunnerTypeId","Symbol","for","PlatformRunner","GenericTag","CloseLatch","Reference","defaultValue","unsafeMake","none","layerCloseLatch","effect","make","fnUntraced","process","options","platform","closeLatch","backing","start","fiberMap","Map","run","portId","id","kind","data","span","fiber","get","void","interrupt","withFiberRuntime","set","decode","succeed","flatMap","input","collector","unsafeMakeCollector","stream","isEffect","out","encodeOutput","provideService","Collector","payload","send","unsafeRead","runForEachChunk","chunk","undefined","toReadonlyArray","unsafeClear","forEach","andThen","withParentSpan","_tag","traceId","spanId","sampled","context","empty","uninterruptibleMask","restore","catchIf","error","encodeCause","fail","catchAllCause","cause","match","failureOrCause","onLeft","encodeError","onRight","ensuring","sync","delete","layer","scopedDiscard","provide","makeSerialized","schema","handlers","gen","scope","parseRequest","decodeUnknown","request","result","isLayer","buildWithScope","_","merge","provideContext","message","mapError","reason","serializeFailure","serializeSuccess","layerSerialized","launch","scopedWith","never","raceFirst","await"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.75.4",
3
+ "version": "0.76.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "multipasta": "^0.2.5"
15
15
  },
16
16
  "peerDependencies": {
17
- "effect": "^3.12.10"
17
+ "effect": "^3.12.11"
18
18
  },
19
19
  "publishConfig": {
20
20
  "provenance": true
@@ -2,6 +2,7 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  import type * as Context from "effect/Context"
5
+ import type * as Deferred from "effect/Deferred"
5
6
  import type * as Effect from "effect/Effect"
6
7
  import type * as Layer from "effect/Layer"
7
8
  import type * as Schema from "effect/Schema"
@@ -17,7 +18,7 @@ import type { WorkerError } from "./WorkerError.js"
17
18
  export interface BackingRunner<I, O> {
18
19
  readonly run: <A, E, R>(
19
20
  handler: (portId: number, message: I) => Effect.Effect<A, E, R>
20
- ) => Effect.Effect<never, E | WorkerError, R>
21
+ ) => Effect.Effect<void, never, Scope.Scope | R>
21
22
  readonly send: (
22
23
  portId: number,
23
24
  message: O,
@@ -55,7 +56,7 @@ export type PlatformRunnerTypeId = typeof PlatformRunnerTypeId
55
56
  */
56
57
  export interface PlatformRunner {
57
58
  readonly [PlatformRunnerTypeId]: PlatformRunnerTypeId
58
- readonly start: <I, O>() => Effect.Effect<BackingRunner<I, O>, WorkerError>
59
+ readonly start: <I, O>(closeLatch: typeof CloseLatch.Service) => Effect.Effect<BackingRunner<I, O>, WorkerError>
59
60
  }
60
61
 
61
62
  /**
@@ -64,6 +65,32 @@ export interface PlatformRunner {
64
65
  */
65
66
  export const PlatformRunner: Context.Tag<PlatformRunner, PlatformRunner> = internal.PlatformRunner
66
67
 
68
+ /**
69
+ * The worker close latch is used by platform runners to signal that the worker
70
+ * has been closed.
71
+ *
72
+ * @since 1.0.0
73
+ * @category CloseLatch
74
+ */
75
+ export interface CloseLatch {
76
+ readonly _: unique symbol
77
+ }
78
+
79
+ /**
80
+ * The worker close latch is used by platform runners to signal that the worker
81
+ * has been closed.
82
+ *
83
+ * @since 1.0.0
84
+ * @category CloseLatch
85
+ */
86
+ export const CloseLatch: Context.Reference<CloseLatch, Deferred.Deferred<void, WorkerError>> = internal.CloseLatch
87
+
88
+ /**
89
+ * @since 1.0.0
90
+ * @category CloseLatch
91
+ */
92
+ export const layerCloseLatch: Layer.Layer<CloseLatch> = internal.layerCloseLatch
93
+
67
94
  /**
68
95
  * @since 1.0.0
69
96
  * @category models
@@ -88,15 +115,6 @@ export declare namespace Runner {
88
115
  }
89
116
  }
90
117
 
91
- /**
92
- * @since 1.0.0
93
- * @category constructors
94
- */
95
- export const run: <I, E, R, O>(
96
- process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
97
- options?: Runner.Options<I, O, E>
98
- ) => Effect.Effect<never, WorkerError, PlatformRunner | R> = internal.run
99
-
100
118
  /**
101
119
  * @since 1.0.0
102
120
  * @category constructors
@@ -198,8 +216,11 @@ export const makeSerialized: <
198
216
  >(
199
217
  schema: Schema.Schema<A, I, R>,
200
218
  handlers: Handlers
201
- ) => Effect.Effect<void, WorkerError, PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers>> =
202
- internal.makeSerialized
219
+ ) => Effect.Effect<
220
+ void,
221
+ WorkerError,
222
+ PlatformRunner | Scope.Scope | R | SerializedRunner.HandlersContext<Handlers>
223
+ > = internal.makeSerialized
203
224
 
204
225
  /**
205
226
  * @since 1.0.0
@@ -215,3 +236,12 @@ export const layerSerialized: <
215
236
  handlers: Handlers
216
237
  ) => Layer.Layer<never, WorkerError, PlatformRunner | R | SerializedRunner.HandlersContext<Handlers>> =
217
238
  internal.layerSerialized
239
+
240
+ /**
241
+ * Launch the specified layer, interrupting the fiber when the CloseLatch is
242
+ * triggered.
243
+ *
244
+ * @since 1.0.0
245
+ * @category Execution
246
+ */
247
+ export const launch: <A, E, R>(layer: Layer.Layer<A, E, R>) => Effect.Effect<void, E | WorkerError, R> = internal.launch
@@ -1,12 +1,13 @@
1
1
  import * as Cause from "effect/Cause"
2
2
  import * as Chunk from "effect/Chunk"
3
3
  import * as Context from "effect/Context"
4
+ import * as Deferred from "effect/Deferred"
4
5
  import * as Effect from "effect/Effect"
5
6
  import * as Either from "effect/Either"
6
7
  import * as Fiber from "effect/Fiber"
8
+ import * as FiberId from "effect/FiberId"
7
9
  import { pipe } from "effect/Function"
8
10
  import * as Layer from "effect/Layer"
9
- import * as Schedule from "effect/Schedule"
10
11
  import * as Schema from "effect/Schema"
11
12
  import type * as Scope from "effect/Scope"
12
13
  import * as Stream from "effect/Stream"
@@ -26,125 +27,114 @@ export const PlatformRunner = Context.GenericTag<WorkerRunner.PlatformRunner>(
26
27
  )
27
28
 
28
29
  /** @internal */
29
- export const run = <I, E, R, O>(
30
+ export const CloseLatch = Context.Reference<WorkerRunner.CloseLatch>()("@effect/platform/WorkerRunner/CloseLatch", {
31
+ defaultValue: () => Deferred.unsafeMake<void, WorkerError>(FiberId.none)
32
+ })
33
+
34
+ /** @internal */
35
+ export const layerCloseLatch = Layer.effect(CloseLatch, Deferred.make())
36
+
37
+ /** @internal */
38
+ export const make = Effect.fnUntraced(function*<I, E, R, O>(
30
39
  process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
31
40
  options?: WorkerRunner.Runner.Options<I, O, E>
32
- ) =>
33
- Effect.gen(function*() {
34
- const platform = yield* PlatformRunner
35
- const backing = yield* platform.start<Worker.Worker.Request<I>, Worker.Worker.Response<E>>()
36
- const fiberMap = new Map<number, Fiber.Fiber<unknown, unknown>>()
41
+ ) {
42
+ const platform = yield* PlatformRunner
43
+ const closeLatch = yield* CloseLatch
44
+ const backing = yield* platform.start<Worker.Worker.Request<I>, Worker.Worker.Response<E>>(closeLatch)
45
+ const fiberMap = new Map<number, Fiber.Fiber<unknown, unknown>>()
37
46
 
38
- return yield* backing.run((portId, [id, kind, data, span]): Effect.Effect<void, WorkerError, R> => {
39
- if (kind === 1) {
40
- const fiber = fiberMap.get(id)
41
- if (!fiber) return Effect.void
42
- return Fiber.interrupt(fiber)
43
- }
47
+ yield* backing.run((portId, [id, kind, data, span]): Effect.Effect<void, WorkerError, R> => {
48
+ if (kind === 1) {
49
+ const fiber = fiberMap.get(id)
50
+ if (!fiber) return Effect.void
51
+ return Fiber.interrupt(fiber)
52
+ }
44
53
 
45
- return Effect.withFiberRuntime<I, WorkerError>((fiber) => {
46
- fiberMap.set(id, fiber)
47
- return options?.decode ? options.decode(data) : Effect.succeed(data)
48
- }).pipe(
49
- Effect.flatMap((input) => {
50
- const collector = Transferable.unsafeMakeCollector()
51
- const stream = process(input)
52
- let effect = Effect.isEffect(stream) ?
53
- Effect.flatMap(stream, (out) =>
54
- pipe(
55
- options?.encodeOutput
56
- ? Effect.provideService(options.encodeOutput(input, out), Transferable.Collector, collector)
57
- : Effect.succeed(out),
58
- Effect.flatMap((payload) => backing.send(portId, [id, 0, [payload]], collector.unsafeRead()))
59
- )) :
54
+ return Effect.withFiberRuntime<I, WorkerError>((fiber) => {
55
+ fiberMap.set(id, fiber)
56
+ return options?.decode ? options.decode(data) : Effect.succeed(data)
57
+ }).pipe(
58
+ Effect.flatMap((input) => {
59
+ const collector = Transferable.unsafeMakeCollector()
60
+ const stream = process(input)
61
+ let effect = Effect.isEffect(stream) ?
62
+ Effect.flatMap(stream, (out) =>
60
63
  pipe(
61
- stream,
62
- Stream.runForEachChunk((chunk) => {
63
- if (options?.encodeOutput === undefined) {
64
- const payload = Chunk.toReadonlyArray(chunk)
65
- return backing.send(portId, [id, 0, payload])
66
- }
64
+ options?.encodeOutput
65
+ ? Effect.provideService(options.encodeOutput(input, out), Transferable.Collector, collector)
66
+ : Effect.succeed(out),
67
+ Effect.flatMap((payload) => backing.send(portId, [id, 0, [payload]], collector.unsafeRead()))
68
+ )) :
69
+ pipe(
70
+ stream,
71
+ Stream.runForEachChunk((chunk) => {
72
+ if (options?.encodeOutput === undefined) {
73
+ const payload = Chunk.toReadonlyArray(chunk)
74
+ return backing.send(portId, [id, 0, payload])
75
+ }
67
76
 
68
- collector.unsafeClear()
69
- return pipe(
70
- Effect.forEach(chunk, (data) => options.encodeOutput!(input, data)),
71
- Effect.provideService(Transferable.Collector, collector),
72
- Effect.flatMap((payload) => backing.send(portId, [id, 0, payload], collector.unsafeRead()))
73
- )
74
- }),
75
- Effect.andThen(backing.send(portId, [id, 1]))
76
- )
77
+ collector.unsafeClear()
78
+ return pipe(
79
+ Effect.forEach(chunk, (data) => options.encodeOutput!(input, data)),
80
+ Effect.provideService(Transferable.Collector, collector),
81
+ Effect.flatMap((payload) => backing.send(portId, [id, 0, payload], collector.unsafeRead()))
82
+ )
83
+ }),
84
+ Effect.andThen(backing.send(portId, [id, 1]))
85
+ )
77
86
 
78
- if (span) {
79
- effect = Effect.withParentSpan(effect, {
80
- _tag: "ExternalSpan",
81
- traceId: span[0],
82
- spanId: span[1],
83
- sampled: span[2],
84
- context: Context.empty()
85
- })
86
- }
87
+ if (span) {
88
+ effect = Effect.withParentSpan(effect, {
89
+ _tag: "ExternalSpan",
90
+ traceId: span[0],
91
+ spanId: span[1],
92
+ sampled: span[2],
93
+ context: Context.empty()
94
+ })
95
+ }
87
96
 
88
- return Effect.uninterruptibleMask((restore) =>
89
- restore(effect).pipe(
90
- Effect.catchIf(
91
- isWorkerError,
92
- (error) => backing.send(portId, [id, 3, WorkerError.encodeCause(Cause.fail(error))])
93
- ),
94
- Effect.catchAllCause((cause) =>
95
- Either.match(Cause.failureOrCause(cause), {
96
- onLeft: (error) => {
97
- collector.unsafeClear()
98
- return pipe(
99
- options?.encodeError
100
- ? Effect.provideService(
101
- options.encodeError(input, error),
102
- Transferable.Collector,
103
- collector
104
- )
105
- : Effect.succeed(error),
106
- Effect.flatMap((payload) =>
107
- backing.send(portId, [id, 2, payload as any], collector.unsafeRead())
108
- ),
109
- Effect.catchAllCause((cause) => backing.send(portId, [id, 3, WorkerError.encodeCause(cause)]))
110
- )
111
- },
112
- onRight: (cause) => backing.send(portId, [id, 3, WorkerError.encodeCause(cause)])
113
- })
114
- )
97
+ return Effect.uninterruptibleMask((restore) =>
98
+ restore(effect).pipe(
99
+ Effect.catchIf(
100
+ isWorkerError,
101
+ (error) => backing.send(portId, [id, 3, WorkerError.encodeCause(Cause.fail(error))])
102
+ ),
103
+ Effect.catchAllCause((cause) =>
104
+ Either.match(Cause.failureOrCause(cause), {
105
+ onLeft: (error) => {
106
+ collector.unsafeClear()
107
+ return pipe(
108
+ options?.encodeError
109
+ ? Effect.provideService(
110
+ options.encodeError(input, error),
111
+ Transferable.Collector,
112
+ collector
113
+ )
114
+ : Effect.succeed(error),
115
+ Effect.flatMap((payload) => backing.send(portId, [id, 2, payload as any], collector.unsafeRead())),
116
+ Effect.catchAllCause((cause) => backing.send(portId, [id, 3, WorkerError.encodeCause(cause)]))
117
+ )
118
+ },
119
+ onRight: (cause) => backing.send(portId, [id, 3, WorkerError.encodeCause(cause)])
120
+ })
115
121
  )
116
122
  )
117
- }),
118
- Effect.ensuring(Effect.sync(() => fiberMap.delete(id)))
119
- )
120
- })
121
- })
122
-
123
- /** @internal */
124
- export const make = <I, E, R, O>(
125
- process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
126
- options?: WorkerRunner.Runner.Options<I, O, E>
127
- ): Effect.Effect<void, WorkerError, WorkerRunner.PlatformRunner | R | Scope.Scope> =>
128
- Effect.withFiberRuntime<void, never, WorkerRunner.PlatformRunner | R | Scope.Scope>((fiber) =>
129
- run(process, options).pipe(
130
- Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logWarning(cause)),
131
- Effect.retry(Schedule.spaced(1000)),
132
- Effect.annotateLogs({
133
- package: "@effect/platform-node",
134
- module: "WorkerRunner"
123
+ )
135
124
  }),
136
- Effect.ensuring(Fiber.interruptAsFork(fiber, fiber.id())),
137
- Effect.interruptible,
138
- Effect.forkScoped,
139
- Effect.asVoid
125
+ Effect.ensuring(Effect.sync(() => fiberMap.delete(id)))
140
126
  )
141
- )
127
+ })
128
+ })
142
129
 
143
130
  /** @internal */
144
131
  export const layer = <I, E, R, O>(
145
132
  process: (request: I) => Stream.Stream<O, E, R> | Effect.Effect<O, E, R>,
146
133
  options?: WorkerRunner.Runner.Options<I, O, E>
147
- ): Layer.Layer<never, WorkerError, WorkerRunner.PlatformRunner | R> => Layer.scopedDiscard(make(process, options))
134
+ ): Layer.Layer<never, WorkerError, WorkerRunner.PlatformRunner | R> =>
135
+ Layer.scopedDiscard(make(process, options)).pipe(
136
+ Layer.provide(layerCloseLatch)
137
+ )
148
138
 
149
139
  /** @internal */
150
140
  export const makeSerialized = <
@@ -216,4 +206,14 @@ export const layerSerialized = <
216
206
  | R
217
207
  | WorkerRunner.PlatformRunner
218
208
  | WorkerRunner.SerializedRunner.HandlersContext<Handlers>
219
- > => Layer.scopedDiscard(makeSerialized(schema, handlers))
209
+ > => Layer.scopedDiscard(makeSerialized(schema, handlers)).pipe(Layer.provide(layerCloseLatch))
210
+
211
+ /** @internal */
212
+ export const launch = <A, E, R>(layer: Layer.Layer<A, E, R>): Effect.Effect<void, E | WorkerError, R> =>
213
+ Effect.scopedWith(Effect.fnUntraced(function*(scope) {
214
+ const context = yield* Layer.buildWithScope(Layer.merge(layer, layerCloseLatch), scope)
215
+ const closeLatch = Context.get(context, CloseLatch)
216
+ return yield* Effect.never.pipe(
217
+ Effect.raceFirst(Deferred.await(closeLatch))
218
+ )
219
+ }))