@effect/platform 0.26.3 → 0.26.4

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.
@@ -2,6 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var effect = require('effect');
6
+ var Channel = require('effect/Channel');
5
7
  var Context = require('effect/Context');
6
8
  var Deferred = require('effect/Deferred');
7
9
  var Effect = require('effect/Effect');
@@ -31,6 +33,7 @@ function _interopNamespace(e) {
31
33
  return Object.freeze(n);
32
34
  }
33
35
 
36
+ var Channel__namespace = /*#__PURE__*/_interopNamespace(Channel);
34
37
  var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
35
38
  var Deferred__namespace = /*#__PURE__*/_interopNamespace(Deferred);
36
39
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
@@ -75,7 +78,6 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
75
78
  }) {
76
79
  return Effect__namespace.gen(function* (_) {
77
80
  const id = idCounter++;
78
- const fiberId = yield* _(Effect__namespace.fiberId);
79
81
  let requestIdCounter = 0;
80
82
  const readyLatch = yield* _(Deferred__namespace.make());
81
83
  const semaphore = yield* _(Effect__namespace.makeSemaphore(permits));
@@ -83,7 +85,7 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
83
85
  const outbound = queue ?? (yield* _(defaultQueue()));
84
86
  yield* _(Effect__namespace.addFinalizer(() => outbound.shutdown));
85
87
  const backing = yield* _(platform.spawn(spawn(id)));
86
- yield* _(Effect__namespace.addFinalizer(() => Effect__namespace.zipRight(Effect__namespace.forEach(requestMap.values(), ([queue]) => Queue__namespace.shutdown(queue), {
88
+ yield* _(Effect__namespace.addFinalizer(() => Effect__namespace.zipRight(Effect__namespace.forEach(requestMap.values(), ([queue]) => Queue__namespace.offer(queue, Exit__namespace.failCause(effect.Cause.empty)), {
87
89
  discard: true
88
90
  }), Effect__namespace.sync(() => requestMap.clear()))));
89
91
  const handleMessage = msg => Effect__namespace.suspend(() => {
@@ -106,13 +108,13 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
106
108
  // end
107
109
  case 1:
108
110
  {
109
- return response.length === 2 ? Queue__namespace.shutdown(queue[0]) : Effect__namespace.zipRight(Queue__namespace.offer(queue[0], Exit__namespace.succeed(response[2])), Queue__namespace.shutdown(queue[0]));
111
+ return response.length === 2 ? Queue__namespace.offer(queue[0], Exit__namespace.failCause(effect.Cause.empty)) : Effect__namespace.zipRight(Queue__namespace.offer(queue[0], Exit__namespace.succeed(response[2])), Queue__namespace.offer(queue[0], Exit__namespace.failCause(effect.Cause.empty)));
110
112
  }
111
113
  // error / defect
112
114
  case 2:
113
115
  case 3:
114
116
  {
115
- return Effect__namespace.zipRight(Queue__namespace.offer(queue[0], response[1] === 2 ? Exit__namespace.fail(response[2]) : Exit__namespace.die(response[2])), Queue__namespace.shutdown(queue[0]));
117
+ return Queue__namespace.offer(queue[0], response[1] === 2 ? Exit__namespace.fail(response[2]) : Exit__namespace.die(response[2]));
116
118
  }
117
119
  }
118
120
  }
@@ -126,18 +128,22 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
126
128
  const release = Effect__namespace.zipRight(Deferred__namespace.complete(deferred, Effect__namespace.unit), Effect__namespace.sync(() => requestMap.delete(id)));
127
129
  return Exit__namespace.isInterrupted(exit) ? Effect__namespace.zipRight(backing.send([id, 1]), release) : release;
128
130
  };
129
- const execute = request => Stream__namespace.flatMap(Stream__namespace.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => Stream__namespace.flatten(Stream__namespace.fromQueue(queue)));
131
+ const execute = request => Stream__namespace.flatMap(Stream__namespace.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => {
132
+ const loop = Channel__namespace.flatMap(Queue__namespace.take(queue), Exit__namespace.match({
133
+ onFailure: cause => effect.Cause.isEmpty(cause) ? Channel__namespace.unit : Channel__namespace.failCause(cause),
134
+ onSuccess: value => Channel__namespace.flatMap(Channel__namespace.write(effect.Chunk.of(value)), () => loop)
135
+ }));
136
+ return Stream__namespace.fromChannel(loop);
137
+ });
130
138
  const executeEffect = request => Effect__namespace.acquireUseRelease(executeAcquire(request), ([, queue]) => Effect__namespace.flatten(Queue__namespace.take(queue)), executeRelease);
131
- const handleMessages = yield* _(Queue__namespace.take(backing.queue), Effect__namespace.flatMap(handleMessage), Effect__namespace.forever, Effect__namespace.forkDaemon);
132
- yield* _(Effect__namespace.addFinalizer(() => handleMessages.interruptAsFork(fiberId)));
139
+ const handleMessages = yield* _(Queue__namespace.take(backing.queue), Effect__namespace.flatMap(handleMessage), Effect__namespace.forever, Effect__namespace.forkScoped);
133
140
  const postMessages = yield* _(semaphore.take(1), Effect__namespace.zipRight(outbound.take), Effect__namespace.flatMap(([id, request]) => Function.pipe(Effect__namespace.suspend(() => {
134
141
  const result = requestMap.get(id);
135
142
  if (!result) return Effect__namespace.unit;
136
143
  const transferables = transfers(request);
137
144
  const payload = encode ? encode(request) : request;
138
145
  return Effect__namespace.zipRight(backing.send([id, 0, payload], transferables), Deferred__namespace.await(result[1]));
139
- }), Effect__namespace.ensuring(semaphore.release(1)), Effect__namespace.fork)), Effect__namespace.forever, Effect__namespace.forkDaemon);
140
- yield* _(Effect__namespace.addFinalizer(() => postMessages.interruptAsFork(fiberId)));
146
+ }), Effect__namespace.ensuring(semaphore.release(1)), Effect__namespace.fork)), Effect__namespace.forever, Effect__namespace.forkScoped);
141
147
  const join = Effect__namespace.race(Fiber__namespace.joinAll([handleMessages, postMessages]), backing.join);
142
148
  return {
143
149
  id,
@@ -156,12 +162,15 @@ const layerManager$1 = /*#__PURE__*/Layer__namespace.effect(WorkerManager$1, mak
156
162
  /** @internal */
157
163
  const makePool$1 = () => options => Effect__namespace.gen(function* (_) {
158
164
  const manager = yield* _(WorkerManager$1);
159
- const backing = yield* _("timeToLive" in options ? Pool__namespace.makeWithTTL({
160
- acquire: manager.spawn(options),
161
- min: options.minSize,
162
- max: options.maxSize,
163
- timeToLive: options.timeToLive
164
- }) : Pool__namespace.make({
165
+ const backing = yield* _(
166
+ // "timeToLive" in options ?
167
+ // Pool.makeWithTTL({
168
+ // acquire: manager.spawn<I, E, O>(options),
169
+ // min: options.minSize,
170
+ // max: options.maxSize,
171
+ // timeToLive: options.timeToLive
172
+ // }) :
173
+ Pool__namespace.make({
165
174
  acquire: manager.spawn(options),
166
175
  size: options.size
167
176
  }));
@@ -2,6 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var effect = require('effect');
6
+ var Channel = require('effect/Channel');
5
7
  var Context = require('effect/Context');
6
8
  var Deferred = require('effect/Deferred');
7
9
  var Effect = require('effect/Effect');
@@ -31,6 +33,7 @@ function _interopNamespace(e) {
31
33
  return Object.freeze(n);
32
34
  }
33
35
 
36
+ var Channel__namespace = /*#__PURE__*/_interopNamespace(Channel);
34
37
  var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
35
38
  var Deferred__namespace = /*#__PURE__*/_interopNamespace(Deferred);
36
39
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
@@ -75,7 +78,6 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
75
78
  }) {
76
79
  return Effect__namespace.gen(function* (_) {
77
80
  const id = idCounter++;
78
- const fiberId = yield* _(Effect__namespace.fiberId);
79
81
  let requestIdCounter = 0;
80
82
  const readyLatch = yield* _(Deferred__namespace.make());
81
83
  const semaphore = yield* _(Effect__namespace.makeSemaphore(permits));
@@ -83,7 +85,7 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
83
85
  const outbound = queue ?? (yield* _(defaultQueue()));
84
86
  yield* _(Effect__namespace.addFinalizer(() => outbound.shutdown));
85
87
  const backing = yield* _(platform.spawn(spawn(id)));
86
- yield* _(Effect__namespace.addFinalizer(() => Effect__namespace.zipRight(Effect__namespace.forEach(requestMap.values(), ([queue]) => Queue__namespace.shutdown(queue), {
88
+ yield* _(Effect__namespace.addFinalizer(() => Effect__namespace.zipRight(Effect__namespace.forEach(requestMap.values(), ([queue]) => Queue__namespace.offer(queue, Exit__namespace.failCause(effect.Cause.empty)), {
87
89
  discard: true
88
90
  }), Effect__namespace.sync(() => requestMap.clear()))));
89
91
  const handleMessage = msg => Effect__namespace.suspend(() => {
@@ -106,13 +108,13 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
106
108
  // end
107
109
  case 1:
108
110
  {
109
- return response.length === 2 ? Queue__namespace.shutdown(queue[0]) : Effect__namespace.zipRight(Queue__namespace.offer(queue[0], Exit__namespace.succeed(response[2])), Queue__namespace.shutdown(queue[0]));
111
+ return response.length === 2 ? Queue__namespace.offer(queue[0], Exit__namespace.failCause(effect.Cause.empty)) : Effect__namespace.zipRight(Queue__namespace.offer(queue[0], Exit__namespace.succeed(response[2])), Queue__namespace.offer(queue[0], Exit__namespace.failCause(effect.Cause.empty)));
110
112
  }
111
113
  // error / defect
112
114
  case 2:
113
115
  case 3:
114
116
  {
115
- return Effect__namespace.zipRight(Queue__namespace.offer(queue[0], response[1] === 2 ? Exit__namespace.fail(response[2]) : Exit__namespace.die(response[2])), Queue__namespace.shutdown(queue[0]));
117
+ return Queue__namespace.offer(queue[0], response[1] === 2 ? Exit__namespace.fail(response[2]) : Exit__namespace.die(response[2]));
116
118
  }
117
119
  }
118
120
  }
@@ -126,18 +128,22 @@ const makeManager$1 = /*#__PURE__*/Effect__namespace.gen(function* (_) {
126
128
  const release = Effect__namespace.zipRight(Deferred__namespace.complete(deferred, Effect__namespace.unit), Effect__namespace.sync(() => requestMap.delete(id)));
127
129
  return Exit__namespace.isInterrupted(exit) ? Effect__namespace.zipRight(backing.send([id, 1]), release) : release;
128
130
  };
129
- const execute = request => Stream__namespace.flatMap(Stream__namespace.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => Stream__namespace.flatten(Stream__namespace.fromQueue(queue)));
131
+ const execute = request => Stream__namespace.flatMap(Stream__namespace.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => {
132
+ const loop = Channel__namespace.flatMap(Queue__namespace.take(queue), Exit__namespace.match({
133
+ onFailure: cause => effect.Cause.isEmpty(cause) ? Channel__namespace.unit : Channel__namespace.failCause(cause),
134
+ onSuccess: value => Channel__namespace.flatMap(Channel__namespace.write(effect.Chunk.of(value)), () => loop)
135
+ }));
136
+ return Stream__namespace.fromChannel(loop);
137
+ });
130
138
  const executeEffect = request => Effect__namespace.acquireUseRelease(executeAcquire(request), ([, queue]) => Effect__namespace.flatten(Queue__namespace.take(queue)), executeRelease);
131
- const handleMessages = yield* _(Queue__namespace.take(backing.queue), Effect__namespace.flatMap(handleMessage), Effect__namespace.forever, Effect__namespace.forkDaemon);
132
- yield* _(Effect__namespace.addFinalizer(() => handleMessages.interruptAsFork(fiberId)));
139
+ const handleMessages = yield* _(Queue__namespace.take(backing.queue), Effect__namespace.flatMap(handleMessage), Effect__namespace.forever, Effect__namespace.forkScoped);
133
140
  const postMessages = yield* _(semaphore.take(1), Effect__namespace.zipRight(outbound.take), Effect__namespace.flatMap(([id, request]) => Function.pipe(Effect__namespace.suspend(() => {
134
141
  const result = requestMap.get(id);
135
142
  if (!result) return Effect__namespace.unit;
136
143
  const transferables = transfers(request);
137
144
  const payload = encode ? encode(request) : request;
138
145
  return Effect__namespace.zipRight(backing.send([id, 0, payload], transferables), Deferred__namespace.await(result[1]));
139
- }), Effect__namespace.ensuring(semaphore.release(1)), Effect__namespace.fork)), Effect__namespace.forever, Effect__namespace.forkDaemon);
140
- yield* _(Effect__namespace.addFinalizer(() => postMessages.interruptAsFork(fiberId)));
146
+ }), Effect__namespace.ensuring(semaphore.release(1)), Effect__namespace.fork)), Effect__namespace.forever, Effect__namespace.forkScoped);
141
147
  const join = Effect__namespace.race(Fiber__namespace.joinAll([handleMessages, postMessages]), backing.join);
142
148
  return {
143
149
  id,
@@ -156,12 +162,15 @@ const layerManager$1 = /*#__PURE__*/Layer__namespace.effect(WorkerManager$1, mak
156
162
  /** @internal */
157
163
  const makePool$1 = () => options => Effect__namespace.gen(function* (_) {
158
164
  const manager = yield* _(WorkerManager$1);
159
- const backing = yield* _("timeToLive" in options ? Pool__namespace.makeWithTTL({
160
- acquire: manager.spawn(options),
161
- min: options.minSize,
162
- max: options.maxSize,
163
- timeToLive: options.timeToLive
164
- }) : Pool__namespace.make({
165
+ const backing = yield* _(
166
+ // "timeToLive" in options ?
167
+ // Pool.makeWithTTL({
168
+ // acquire: manager.spawn<I, E, O>(options),
169
+ // min: options.minSize,
170
+ // max: options.maxSize,
171
+ // timeToLive: options.timeToLive
172
+ // }) :
173
+ Pool__namespace.make({
165
174
  acquire: manager.spawn(options),
166
175
  size: options.size
167
176
  }));
@@ -1,3 +1,5 @@
1
+ import { Cause, Chunk } from 'effect';
2
+ import * as Channel from 'effect/Channel';
1
3
  import * as Context from 'effect/Context';
2
4
  import * as Deferred from 'effect/Deferred';
3
5
  import * as Effect from 'effect/Effect';
@@ -43,7 +45,6 @@ const makeManager$1 = /*#__PURE__*/Effect.gen(function* (_) {
43
45
  }) {
44
46
  return Effect.gen(function* (_) {
45
47
  const id = idCounter++;
46
- const fiberId = yield* _(Effect.fiberId);
47
48
  let requestIdCounter = 0;
48
49
  const readyLatch = yield* _(Deferred.make());
49
50
  const semaphore = yield* _(Effect.makeSemaphore(permits));
@@ -51,7 +52,7 @@ const makeManager$1 = /*#__PURE__*/Effect.gen(function* (_) {
51
52
  const outbound = queue ?? (yield* _(defaultQueue()));
52
53
  yield* _(Effect.addFinalizer(() => outbound.shutdown));
53
54
  const backing = yield* _(platform.spawn(spawn(id)));
54
- yield* _(Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), ([queue]) => Queue.shutdown(queue), {
55
+ yield* _(Effect.addFinalizer(() => Effect.zipRight(Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(Cause.empty)), {
55
56
  discard: true
56
57
  }), Effect.sync(() => requestMap.clear()))));
57
58
  const handleMessage = msg => Effect.suspend(() => {
@@ -74,13 +75,13 @@ const makeManager$1 = /*#__PURE__*/Effect.gen(function* (_) {
74
75
  // end
75
76
  case 1:
76
77
  {
77
- return response.length === 2 ? Queue.shutdown(queue[0]) : Effect.zipRight(Queue.offer(queue[0], Exit.succeed(response[2])), Queue.shutdown(queue[0]));
78
+ return response.length === 2 ? Queue.offer(queue[0], Exit.failCause(Cause.empty)) : Effect.zipRight(Queue.offer(queue[0], Exit.succeed(response[2])), Queue.offer(queue[0], Exit.failCause(Cause.empty)));
78
79
  }
79
80
  // error / defect
80
81
  case 2:
81
82
  case 3:
82
83
  {
83
- return Effect.zipRight(Queue.offer(queue[0], response[1] === 2 ? Exit.fail(response[2]) : Exit.die(response[2])), Queue.shutdown(queue[0]));
84
+ return Queue.offer(queue[0], response[1] === 2 ? Exit.fail(response[2]) : Exit.die(response[2]));
84
85
  }
85
86
  }
86
87
  }
@@ -94,18 +95,22 @@ const makeManager$1 = /*#__PURE__*/Effect.gen(function* (_) {
94
95
  const release = Effect.zipRight(Deferred.complete(deferred, Effect.unit), Effect.sync(() => requestMap.delete(id)));
95
96
  return Exit.isInterrupted(exit) ? Effect.zipRight(backing.send([id, 1]), release) : release;
96
97
  };
97
- const execute = request => Stream.flatMap(Stream.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => Stream.flatten(Stream.fromQueue(queue)));
98
+ const execute = request => Stream.flatMap(Stream.acquireRelease(executeAcquire(request), executeRelease), ([, queue]) => {
99
+ const loop = Channel.flatMap(Queue.take(queue), Exit.match({
100
+ onFailure: cause => Cause.isEmpty(cause) ? Channel.unit : Channel.failCause(cause),
101
+ onSuccess: value => Channel.flatMap(Channel.write(Chunk.of(value)), () => loop)
102
+ }));
103
+ return Stream.fromChannel(loop);
104
+ });
98
105
  const executeEffect = request => Effect.acquireUseRelease(executeAcquire(request), ([, queue]) => Effect.flatten(Queue.take(queue)), executeRelease);
99
- const handleMessages = yield* _(Queue.take(backing.queue), Effect.flatMap(handleMessage), Effect.forever, Effect.forkDaemon);
100
- yield* _(Effect.addFinalizer(() => handleMessages.interruptAsFork(fiberId)));
106
+ const handleMessages = yield* _(Queue.take(backing.queue), Effect.flatMap(handleMessage), Effect.forever, Effect.forkScoped);
101
107
  const postMessages = yield* _(semaphore.take(1), Effect.zipRight(outbound.take), Effect.flatMap(([id, request]) => pipe(Effect.suspend(() => {
102
108
  const result = requestMap.get(id);
103
109
  if (!result) return Effect.unit;
104
110
  const transferables = transfers(request);
105
111
  const payload = encode ? encode(request) : request;
106
112
  return Effect.zipRight(backing.send([id, 0, payload], transferables), Deferred.await(result[1]));
107
- }), Effect.ensuring(semaphore.release(1)), Effect.fork)), Effect.forever, Effect.forkDaemon);
108
- yield* _(Effect.addFinalizer(() => postMessages.interruptAsFork(fiberId)));
113
+ }), Effect.ensuring(semaphore.release(1)), Effect.fork)), Effect.forever, Effect.forkScoped);
109
114
  const join = Effect.race(Fiber.joinAll([handleMessages, postMessages]), backing.join);
110
115
  return {
111
116
  id,
@@ -124,12 +129,15 @@ const layerManager$1 = /*#__PURE__*/Layer.effect(WorkerManager$1, makeManager$1)
124
129
  /** @internal */
125
130
  const makePool$1 = () => options => Effect.gen(function* (_) {
126
131
  const manager = yield* _(WorkerManager$1);
127
- const backing = yield* _("timeToLive" in options ? Pool.makeWithTTL({
128
- acquire: manager.spawn(options),
129
- min: options.minSize,
130
- max: options.maxSize,
131
- timeToLive: options.timeToLive
132
- }) : Pool.make({
132
+ const backing = yield* _(
133
+ // "timeToLive" in options ?
134
+ // Pool.makeWithTTL({
135
+ // acquire: manager.spawn<I, E, O>(options),
136
+ // min: options.minSize,
137
+ // max: options.maxSize,
138
+ // timeToLive: options.timeToLive
139
+ // }) :
140
+ Pool.make({
133
141
  acquire: manager.spawn(options),
134
142
  size: options.size
135
143
  }));
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import type { Effect } from "effect";
5
5
  import type * as Context from "effect/Context";
6
- import type * as Duration from "effect/Duration";
7
6
  import type * as Layer from "effect/Layer";
8
7
  import type * as Pool from "effect/Pool";
9
8
  import type * as Queue from "effect/Queue";
@@ -110,10 +109,6 @@ export declare namespace WorkerPool {
110
109
  */
111
110
  type Options<I, W = unknown> = Worker.Options<I, W> & ({
112
111
  readonly size: number;
113
- } | {
114
- readonly minSize: number;
115
- readonly maxSize: number;
116
- readonly timeToLive: Duration.DurationInput;
117
112
  });
118
113
  }
119
114
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.d.ts","sourceRoot":"../../../src","sources":["Worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"../../../src","sources":["Worker.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import type { WorkerError } from "./WorkerError.js";
13
13
  * @category models
14
14
  */
15
15
  export interface BackingRunner<I, O> {
16
- readonly fiber: Fiber.Fiber<WorkerError, void>;
16
+ readonly fiber: Fiber.Fiber<WorkerError, never>;
17
17
  readonly queue: Queue.Dequeue<I>;
18
18
  readonly send: (message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<never, never, void>;
19
19
  }
@@ -69,5 +69,5 @@ export declare namespace Runner {
69
69
  * @since 1.0.0
70
70
  * @category constructors
71
71
  */
72
- export declare const make: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<O> | undefined) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void>;
72
+ export declare const make: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>, options?: Runner.Options<O> | undefined) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, never>;
73
73
  //# sourceMappingURL=WorkerRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"../../../src","sources":["WorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,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,yBAAqB;AAEhD;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;IAC9C,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;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAA;QACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAA;KAC5D;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,CAAC,GAAG,SAAS,KACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,IAAI,CAAiB,CAAA"}
1
+ {"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"../../../src","sources":["WorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,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,yBAAqB;AAEhD;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAC/C,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;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAA;QACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,CAAA;KAC5D;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,CAAC,GAAG,SAAS,KACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,cAAc,EAAE,WAAW,EAAE,KAAK,CAAiB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.26.3",
3
+ "version": "0.26.4",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "main": "dist/effect-platform.cjs.js",
6
6
  "module": "dist/effect-platform.esm.js",
package/src/Worker.ts CHANGED
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import type { Effect } from "effect"
5
5
  import type * as Context from "effect/Context"
6
- import type * as Duration from "effect/Duration"
7
6
  import type * as Layer from "effect/Layer"
8
7
  import type * as Pool from "effect/Pool"
9
8
  import type * as Queue from "effect/Queue"
@@ -130,10 +129,10 @@ export declare namespace WorkerPool {
130
129
  & Worker.Options<I, W>
131
130
  & ({
132
131
  readonly size: number
133
- } | {
134
- readonly minSize: number
135
- readonly maxSize: number
136
- readonly timeToLive: Duration.DurationInput
132
+ // } | {
133
+ // readonly minSize: number
134
+ // readonly maxSize: number
135
+ // readonly timeToLive: Duration.DurationInput
137
136
  })
138
137
  }
139
138
 
@@ -15,7 +15,7 @@ import type { WorkerError } from "./WorkerError"
15
15
  * @category models
16
16
  */
17
17
  export interface BackingRunner<I, O> {
18
- readonly fiber: Fiber.Fiber<WorkerError, void>
18
+ readonly fiber: Fiber.Fiber<WorkerError, never>
19
19
  readonly queue: Queue.Dequeue<I>
20
20
  readonly send: (message: O, transfers?: ReadonlyArray<unknown>) => Effect.Effect<never, never, void>
21
21
  }
@@ -81,4 +81,4 @@ export declare namespace Runner {
81
81
  export const make: <I, R, E, O>(
82
82
  process: (request: I) => Stream.Stream<R, E, O> | Effect.Effect<R, E, O>,
83
83
  options?: Runner.Options<O> | undefined
84
- ) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, void> = internal.make
84
+ ) => Effect.Effect<Scope.Scope | R | PlatformRunner, WorkerError, never> = internal.make
@@ -1,3 +1,5 @@
1
+ import { Cause, Chunk } from "effect"
2
+ import * as Channel from "effect/Channel"
1
3
  import * as Context from "effect/Context"
2
4
  import * as Deferred from "effect/Deferred"
3
5
  import * as Effect from "effect/Effect"
@@ -51,7 +53,6 @@ export const makeManager = Effect.gen(function*(_) {
51
53
  spawn<I, E, O>({ encode, permits = 1, queue, spawn, transfers = (_) => [] }: Worker.Worker.Options<I>) {
52
54
  return Effect.gen(function*(_) {
53
55
  const id = idCounter++
54
- const fiberId = yield* _(Effect.fiberId)
55
56
  let requestIdCounter = 0
56
57
  const readyLatch = yield* _(Deferred.make<never, void>())
57
58
  const semaphore = yield* _(Effect.makeSemaphore(permits))
@@ -66,7 +67,9 @@ export const makeManager = Effect.gen(function*(_) {
66
67
 
67
68
  yield* _(Effect.addFinalizer(() =>
68
69
  Effect.zipRight(
69
- Effect.forEach(requestMap.values(), ([queue]) => Queue.shutdown(queue), { discard: true }),
70
+ Effect.forEach(requestMap.values(), ([queue]) => Queue.offer(queue, Exit.failCause(Cause.empty)), {
71
+ discard: true
72
+ }),
70
73
  Effect.sync(() => requestMap.clear())
71
74
  )
72
75
  ))
@@ -90,23 +93,20 @@ export const makeManager = Effect.gen(function*(_) {
90
93
  // end
91
94
  case 1: {
92
95
  return response.length === 2 ?
93
- Queue.shutdown(queue[0]) :
96
+ Queue.offer(queue[0], Exit.failCause(Cause.empty)) :
94
97
  Effect.zipRight(
95
98
  Queue.offer(queue[0], Exit.succeed(response[2])),
96
- Queue.shutdown(queue[0])
99
+ Queue.offer(queue[0], Exit.failCause(Cause.empty))
97
100
  )
98
101
  }
99
102
  // error / defect
100
103
  case 2:
101
104
  case 3: {
102
- return Effect.zipRight(
103
- Queue.offer(
104
- queue[0],
105
- response[1] === 2
106
- ? Exit.fail(response[2])
107
- : Exit.die(response[2])
108
- ),
109
- Queue.shutdown(queue[0])
105
+ return Queue.offer(
106
+ queue[0],
107
+ response[1] === 2
108
+ ? Exit.fail(response[2])
109
+ : Exit.die(response[2])
110
110
  )
111
111
  }
112
112
  }
@@ -150,7 +150,16 @@ export const makeManager = Effect.gen(function*(_) {
150
150
  executeAcquire(request),
151
151
  executeRelease
152
152
  ),
153
- ([, queue]) => Stream.flatten(Stream.fromQueue(queue))
153
+ ([, queue]) => {
154
+ const loop: Channel.Channel<never, unknown, unknown, unknown, E, Chunk.Chunk<O>, void> = Channel.flatMap(
155
+ Queue.take(queue),
156
+ Exit.match({
157
+ onFailure: (cause) => Cause.isEmpty(cause) ? Channel.unit : Channel.failCause(cause),
158
+ onSuccess: (value) => Channel.flatMap(Channel.write(Chunk.of(value)), () => loop)
159
+ })
160
+ )
161
+ return Stream.fromChannel(loop)
162
+ }
154
163
  )
155
164
 
156
165
  const executeEffect = (request: I) =>
@@ -164,9 +173,8 @@ export const makeManager = Effect.gen(function*(_) {
164
173
  Queue.take(backing.queue),
165
174
  Effect.flatMap(handleMessage),
166
175
  Effect.forever,
167
- Effect.forkDaemon
176
+ Effect.forkScoped
168
177
  )
169
- yield* _(Effect.addFinalizer(() => handleMessages.interruptAsFork(fiberId)))
170
178
 
171
179
  const postMessages = yield* _(
172
180
  semaphore.take(1),
@@ -188,9 +196,8 @@ export const makeManager = Effect.gen(function*(_) {
188
196
  )
189
197
  ),
190
198
  Effect.forever,
191
- Effect.forkDaemon
199
+ Effect.forkScoped
192
200
  )
193
- yield* _(Effect.addFinalizer(() => postMessages.interruptAsFork(fiberId)))
194
201
 
195
202
  const join = Effect.race(
196
203
  Fiber.joinAll([
@@ -217,17 +224,17 @@ export const makePool = <W>() =>
217
224
  Effect.gen(function*(_) {
218
225
  const manager = yield* _(WorkerManager)
219
226
  const backing = yield* _(
220
- "timeToLive" in options ?
221
- Pool.makeWithTTL({
222
- acquire: manager.spawn<I, E, O>(options),
223
- min: options.minSize,
224
- max: options.maxSize,
225
- timeToLive: options.timeToLive
226
- }) :
227
- Pool.make({
228
- acquire: manager.spawn<I, E, O>(options),
229
- size: options.size
230
- })
227
+ // "timeToLive" in options ?
228
+ // Pool.makeWithTTL({
229
+ // acquire: manager.spawn<I, E, O>(options),
230
+ // min: options.minSize,
231
+ // max: options.maxSize,
232
+ // timeToLive: options.timeToLive
233
+ // }) :
234
+ Pool.make({
235
+ acquire: manager.spawn<I, E, O>(options),
236
+ size: options.size
237
+ })
231
238
  )
232
239
  const pool: Worker.WorkerPool<I, E, O> = {
233
240
  backing,
@@ -7,6 +7,7 @@ import { pipe } from "effect/Function"
7
7
  import * as Queue from "effect/Queue"
8
8
  import * as Stream from "effect/Stream"
9
9
  import type * as Worker from "../Worker"
10
+ import type * as WorkerError from "../WorkerError"
10
11
  import type * as WorkerRunner from "../WorkerRunner"
11
12
 
12
13
  /** @internal */
@@ -86,6 +87,6 @@ export const make = <I, R, E, O>(
86
87
  Effect.all([
87
88
  handleRequests,
88
89
  Fiber.join(backing.fiber)
89
- ], { concurrency: "unbounded", discard: true })
90
+ ], { concurrency: "unbounded", discard: true }) as Effect.Effect<R, WorkerError.WorkerError, never>
90
91
  )
91
92
  })