@effect/platform 0.26.2 → 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.
Files changed (31) hide show
  1. package/Http/Client/dist/effect-platform-Http-Client.cjs.dev.js +2 -2
  2. package/Http/Client/dist/effect-platform-Http-Client.cjs.prod.js +2 -2
  3. package/Http/Client/dist/effect-platform-Http-Client.esm.js +2 -2
  4. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.dev.js +2 -2
  5. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.prod.js +2 -2
  6. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.esm.js +2 -2
  7. package/HttpClient/dist/effect-platform-HttpClient.cjs.dev.js +3 -3
  8. package/HttpClient/dist/effect-platform-HttpClient.cjs.prod.js +3 -3
  9. package/HttpClient/dist/effect-platform-HttpClient.esm.js +3 -3
  10. package/Worker/dist/effect-platform-Worker.cjs.dev.js +24 -15
  11. package/Worker/dist/effect-platform-Worker.cjs.prod.js +24 -15
  12. package/Worker/dist/effect-platform-Worker.esm.js +23 -15
  13. package/dist/{Client-77da56b5.cjs.dev.js → Client-52f7a6e7.cjs.dev.js} +1 -1
  14. package/dist/{Client-d31ac2bf.cjs.prod.js → Client-669a8097.cjs.prod.js} +1 -1
  15. package/dist/{Client-ed53ec74.esm.js → Client-74166618.esm.js} +1 -1
  16. package/dist/{ClientResponse-fbb89e61.cjs.prod.js → ClientResponse-044a9ddf.cjs.prod.js} +1 -1
  17. package/dist/{ClientResponse-85010856.esm.js → ClientResponse-7b314e3d.esm.js} +1 -1
  18. package/dist/{ClientResponse-25eefa3b.cjs.dev.js → ClientResponse-f7c92fce.cjs.dev.js} +1 -1
  19. package/dist/{clientResponse-e8e1442e.esm.js → clientResponse-613ef549.esm.js} +6 -6
  20. package/dist/{clientResponse-84589d0a.cjs.prod.js → clientResponse-bb91e48f.cjs.prod.js} +6 -6
  21. package/dist/{clientResponse-b269ed37.cjs.dev.js → clientResponse-e65925b7.cjs.dev.js} +6 -6
  22. package/dist/declarations/src/Worker.d.ts +0 -5
  23. package/dist/declarations/src/Worker.d.ts.map +1 -1
  24. package/dist/declarations/src/WorkerRunner.d.ts +2 -2
  25. package/dist/declarations/src/WorkerRunner.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/Worker.ts +4 -5
  28. package/src/WorkerRunner.ts +2 -2
  29. package/src/internal/http/clientResponse.ts +9 -6
  30. package/src/internal/worker.ts +35 -28
  31. package/src/internal/workerRunner.ts +2 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Http_Client_dist_effectPlatformHttpClient = require('../../../dist/Client-77da56b5.cjs.dev.js');
5
+ var Http_Client_dist_effectPlatformHttpClient = require('../../../dist/Client-52f7a6e7.cjs.dev.js');
6
6
  require('@effect/schema/Schema');
7
7
  require('effect/Context');
8
8
  require('effect/Effect');
@@ -26,7 +26,7 @@ require('../../../dist/clientRequest-07f3c216.cjs.dev.js');
26
26
  require('../../../dist/Headers-f56bc667.cjs.dev.js');
27
27
  require('effect/ReadonlyArray');
28
28
  require('effect/ReadonlyRecord');
29
- require('../../../dist/clientResponse-b269ed37.cjs.dev.js');
29
+ require('../../../dist/clientResponse-e65925b7.cjs.dev.js');
30
30
  require('../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js');
31
31
  require('@effect/schema/ParseResult');
32
32
  require('effect/FiberRef');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Http_Client_dist_effectPlatformHttpClient = require('../../../dist/Client-d31ac2bf.cjs.prod.js');
5
+ var Http_Client_dist_effectPlatformHttpClient = require('../../../dist/Client-669a8097.cjs.prod.js');
6
6
  require('@effect/schema/Schema');
7
7
  require('effect/Context');
8
8
  require('effect/Effect');
@@ -26,7 +26,7 @@ require('../../../dist/clientRequest-d5011790.cjs.prod.js');
26
26
  require('../../../dist/Headers-122cb877.cjs.prod.js');
27
27
  require('effect/ReadonlyArray');
28
28
  require('effect/ReadonlyRecord');
29
- require('../../../dist/clientResponse-84589d0a.cjs.prod.js');
29
+ require('../../../dist/clientResponse-bb91e48f.cjs.prod.js');
30
30
  require('../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js');
31
31
  require('@effect/schema/ParseResult');
32
32
  require('effect/FiberRef');
@@ -1,4 +1,4 @@
1
- export { a as Client, T as TypeId, c as catchAll, d as catchTag, e as catchTags, f as fetch, b as fetchOk, g as filterOrElse, h as filterOrFail, i as filterStatus, j as filterStatusOk, l as layer, m as make, k as makeDefault, o as map, p as mapEffect, q as mapRequest, r as mapRequestEffect, s as retry, u as schemaFunction, v as tap, w as tapRequest, t as transform, n as transformResponse } from '../../../dist/Client-ed53ec74.esm.js';
1
+ export { a as Client, T as TypeId, c as catchAll, d as catchTag, e as catchTags, f as fetch, b as fetchOk, g as filterOrElse, h as filterOrFail, i as filterStatus, j as filterStatusOk, l as layer, m as make, k as makeDefault, o as map, p as mapEffect, q as mapRequest, r as mapRequestEffect, s as retry, u as schemaFunction, v as tap, w as tapRequest, t as transform, n as transformResponse } from '../../../dist/Client-74166618.esm.js';
2
2
  import '@effect/schema/Schema';
3
3
  import 'effect/Context';
4
4
  import 'effect/Effect';
@@ -22,7 +22,7 @@ import '../../../dist/clientRequest-24b9b51c.esm.js';
22
22
  import '../../../dist/Headers-58b56a08.esm.js';
23
23
  import 'effect/ReadonlyArray';
24
24
  import 'effect/ReadonlyRecord';
25
- import '../../../dist/clientResponse-e8e1442e.esm.js';
25
+ import '../../../dist/clientResponse-613ef549.esm.js';
26
26
  import '../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js';
27
27
  import '@effect/schema/ParseResult';
28
28
  import 'effect/FiberRef';
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../../dist/clientResponse-b269ed37.cjs.dev.js');
5
+ require('../../../dist/clientResponse-e65925b7.cjs.dev.js');
6
6
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js');
7
- var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../../dist/ClientResponse-25eefa3b.cjs.dev.js');
7
+ var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../../dist/ClientResponse-f7c92fce.cjs.dev.js');
8
8
  require('@effect/schema/Schema');
9
9
  require('effect/Effect');
10
10
  require('effect/Option');
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('../../../dist/clientResponse-84589d0a.cjs.prod.js');
5
+ require('../../../dist/clientResponse-bb91e48f.cjs.prod.js');
6
6
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js');
7
- var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../../dist/ClientResponse-fbb89e61.cjs.prod.js');
7
+ var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../../dist/ClientResponse-044a9ddf.cjs.prod.js');
8
8
  require('@effect/schema/Schema');
9
9
  require('effect/Effect');
10
10
  require('effect/Option');
@@ -1,6 +1,6 @@
1
- import '../../../dist/clientResponse-e8e1442e.esm.js';
1
+ import '../../../dist/clientResponse-613ef549.esm.js';
2
2
  export { schemaBodyJson, schemaBodyUrlParams, schemaHeaders } from '../../IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js';
3
- export { T as TypeId, f as fromWeb, s as schemaJson, a as schemaNoBody } from '../../../dist/ClientResponse-85010856.esm.js';
3
+ export { T as TypeId, f as fromWeb, s as schemaJson, a as schemaNoBody } from '../../../dist/ClientResponse-7b314e3d.esm.js';
4
4
  import '@effect/schema/Schema';
5
5
  import 'effect/Effect';
6
6
  import 'effect/Option';
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Http_Body_dist_effectPlatformHttpBody = require('../../dist/Body-f4eb1a35.cjs.dev.js');
6
- var Http_Client_dist_effectPlatformHttpClient = require('../../dist/Client-77da56b5.cjs.dev.js');
6
+ var Http_Client_dist_effectPlatformHttpClient = require('../../dist/Client-52f7a6e7.cjs.dev.js');
7
7
  var Http_ClientError_dist_effectPlatformHttpClientError = require('../../dist/ClientError-b7828377.cjs.dev.js');
8
8
  var Http_ClientRequest_dist_effectPlatformHttpClientRequest = require('../../dist/ClientRequest-4c64deb3.cjs.dev.js');
9
- var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../dist/ClientResponse-25eefa3b.cjs.dev.js');
9
+ var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../dist/ClientResponse-f7c92fce.cjs.dev.js');
10
10
  var Http_Headers_dist_effectPlatformHttpHeaders = require('../../dist/Headers-f56bc667.cjs.dev.js');
11
11
  var Http_UrlParams_dist_effectPlatformHttpUrlParams = require('../../dist/UrlParams-5e0910f1.cjs.dev.js');
12
12
  require('../../dist/body-a150eddc.cjs.dev.js');
@@ -28,7 +28,7 @@ require('effect/Pipeable');
28
28
  require('../../Http/Method/dist/effect-platform-Http-Method.cjs.dev.js');
29
29
  require('../../dist/clientError-52d24cd8.cjs.dev.js');
30
30
  require('../../dist/clientRequest-07f3c216.cjs.dev.js');
31
- require('../../dist/clientResponse-b269ed37.cjs.dev.js');
31
+ require('../../dist/clientResponse-e65925b7.cjs.dev.js');
32
32
  require('../../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js');
33
33
  require('@effect/schema/ParseResult');
34
34
  require('effect/FiberRef');
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var Http_Body_dist_effectPlatformHttpBody = require('../../dist/Body-bf109de0.cjs.prod.js');
6
- var Http_Client_dist_effectPlatformHttpClient = require('../../dist/Client-d31ac2bf.cjs.prod.js');
6
+ var Http_Client_dist_effectPlatformHttpClient = require('../../dist/Client-669a8097.cjs.prod.js');
7
7
  var Http_ClientError_dist_effectPlatformHttpClientError = require('../../dist/ClientError-22781879.cjs.prod.js');
8
8
  var Http_ClientRequest_dist_effectPlatformHttpClientRequest = require('../../dist/ClientRequest-71df9f94.cjs.prod.js');
9
- var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../dist/ClientResponse-fbb89e61.cjs.prod.js');
9
+ var Http_ClientResponse_dist_effectPlatformHttpClientResponse = require('../../dist/ClientResponse-044a9ddf.cjs.prod.js');
10
10
  var Http_Headers_dist_effectPlatformHttpHeaders = require('../../dist/Headers-122cb877.cjs.prod.js');
11
11
  var Http_UrlParams_dist_effectPlatformHttpUrlParams = require('../../dist/UrlParams-1228a686.cjs.prod.js');
12
12
  require('../../dist/body-c9112f14.cjs.prod.js');
@@ -28,7 +28,7 @@ require('effect/Pipeable');
28
28
  require('../../Http/Method/dist/effect-platform-Http-Method.cjs.prod.js');
29
29
  require('../../dist/clientError-de103d6a.cjs.prod.js');
30
30
  require('../../dist/clientRequest-d5011790.cjs.prod.js');
31
- require('../../dist/clientResponse-84589d0a.cjs.prod.js');
31
+ require('../../dist/clientResponse-bb91e48f.cjs.prod.js');
32
32
  require('../../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js');
33
33
  require('@effect/schema/ParseResult');
34
34
  require('effect/FiberRef');
@@ -1,8 +1,8 @@
1
1
  export { B as body } from '../../dist/Body-e69a4f4c.esm.js';
2
- export { C as client } from '../../dist/Client-ed53ec74.esm.js';
2
+ export { C as client } from '../../dist/Client-74166618.esm.js';
3
3
  export { C as error } from '../../dist/ClientError-98b5da8c.esm.js';
4
4
  export { C as request } from '../../dist/ClientRequest-dc3e2234.esm.js';
5
- export { C as response } from '../../dist/ClientResponse-85010856.esm.js';
5
+ export { C as response } from '../../dist/ClientResponse-7b314e3d.esm.js';
6
6
  export { H as headers } from '../../dist/Headers-58b56a08.esm.js';
7
7
  export { U as urlParams } from '../../dist/UrlParams-1286c728.esm.js';
8
8
  import '../../dist/body-752ece55.esm.js';
@@ -24,7 +24,7 @@ import 'effect/Pipeable';
24
24
  import '../../Http/Method/dist/effect-platform-Http-Method.esm.js';
25
25
  import '../../dist/clientError-c4e1466c.esm.js';
26
26
  import '../../dist/clientRequest-24b9b51c.esm.js';
27
- import '../../dist/clientResponse-e8e1442e.esm.js';
27
+ import '../../dist/clientResponse-613ef549.esm.js';
28
28
  import '../../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js';
29
29
  import '@effect/schema/ParseResult';
30
30
  import 'effect/FiberRef';
@@ -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
  }));
@@ -13,7 +13,7 @@ var Http_UrlParams_dist_effectPlatformHttpUrlParams = require('./UrlParams-5e091
13
13
  var body = require('./body-a150eddc.cjs.dev.js');
14
14
  var clientError = require('./clientError-52d24cd8.cjs.dev.js');
15
15
  var clientRequest = require('./clientRequest-07f3c216.cjs.dev.js');
16
- var clientResponse = require('./clientResponse-b269ed37.cjs.dev.js');
16
+ var clientResponse = require('./clientResponse-e65925b7.cjs.dev.js');
17
17
 
18
18
  function _interopNamespace(e) {
19
19
  if (e && e.__esModule) return e;
@@ -13,7 +13,7 @@ var Http_UrlParams_dist_effectPlatformHttpUrlParams = require('./UrlParams-1228a
13
13
  var body = require('./body-c9112f14.cjs.prod.js');
14
14
  var clientError = require('./clientError-de103d6a.cjs.prod.js');
15
15
  var clientRequest = require('./clientRequest-d5011790.cjs.prod.js');
16
- var clientResponse = require('./clientResponse-84589d0a.cjs.prod.js');
16
+ var clientResponse = require('./clientResponse-bb91e48f.cjs.prod.js');
17
17
 
18
18
  function _interopNamespace(e) {
19
19
  if (e && e.__esModule) return e;
@@ -11,7 +11,7 @@ import { m as makeUrl } from './UrlParams-1286c728.esm.js';
11
11
  import { u as uint8Array } from './body-752ece55.esm.js';
12
12
  import { r as requestError, a as responseError } from './clientError-c4e1466c.esm.js';
13
13
  import { s as setBody, a as setHeader } from './clientRequest-24b9b51c.esm.js';
14
- import { f as fromWeb } from './clientResponse-e8e1442e.esm.js';
14
+ import { f as fromWeb } from './clientResponse-613ef549.esm.js';
15
15
 
16
16
  /** @internal */
17
17
  const TypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/Http/Client");
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var clientResponse = require('./clientResponse-84589d0a.cjs.prod.js');
3
+ var clientResponse = require('./clientResponse-bb91e48f.cjs.prod.js');
4
4
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js');
5
5
 
6
6
  /**
@@ -1,4 +1,4 @@
1
- import { T as TypeId$1, f as fromWeb$1, s as schemaJson$1, a as schemaNoBody$1 } from './clientResponse-e8e1442e.esm.js';
1
+ import { T as TypeId$1, f as fromWeb$1, s as schemaJson$1, a as schemaNoBody$1 } from './clientResponse-613ef549.esm.js';
2
2
  import { schemaBodyJson, schemaBodyUrlParams, schemaHeaders } from '../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js';
3
3
 
4
4
  /**
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var clientResponse = require('./clientResponse-b269ed37.cjs.dev.js');
3
+ var clientResponse = require('./clientResponse-e65925b7.cjs.dev.js');
4
4
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js');
5
5
 
6
6
  /**
@@ -53,7 +53,7 @@ class ClientResponseImpl {
53
53
  });
54
54
  }
55
55
  get text() {
56
- return Effect.tryPromise({
56
+ return this.textBody ??= Effect.tryPromise({
57
57
  try: () => this.source.text(),
58
58
  catch: _ => responseError({
59
59
  request: this.request,
@@ -61,7 +61,7 @@ class ClientResponseImpl {
61
61
  reason: "Decode",
62
62
  error: _
63
63
  })
64
- });
64
+ }).pipe(Effect.cached, Effect.runSync);
65
65
  }
66
66
  get urlParamsBody() {
67
67
  return Effect.flatMap(this.text, _ => Effect.try({
@@ -75,7 +75,7 @@ class ClientResponseImpl {
75
75
  }));
76
76
  }
77
77
  get formData() {
78
- return Effect.tryPromise({
78
+ return this.formDataBody ??= Effect.tryPromise({
79
79
  try: () => this.source.formData(),
80
80
  catch: _ => responseError({
81
81
  request: this.request,
@@ -83,10 +83,10 @@ class ClientResponseImpl {
83
83
  reason: "Decode",
84
84
  error: _
85
85
  })
86
- });
86
+ }).pipe(Effect.cached, Effect.runSync);
87
87
  }
88
88
  get arrayBuffer() {
89
- return Effect.tryPromise({
89
+ return this.arrayBufferBody ??= Effect.tryPromise({
90
90
  try: () => this.source.arrayBuffer(),
91
91
  catch: _ => responseError({
92
92
  request: this.request,
@@ -94,7 +94,7 @@ class ClientResponseImpl {
94
94
  reason: "Decode",
95
95
  error: _
96
96
  })
97
- });
97
+ }).pipe(Effect.cached, Effect.runSync);
98
98
  }
99
99
  }
100
100
 
@@ -78,7 +78,7 @@ class ClientResponseImpl {
78
78
  });
79
79
  }
80
80
  get text() {
81
- return Effect__namespace.tryPromise({
81
+ return this.textBody ??= Effect__namespace.tryPromise({
82
82
  try: () => this.source.text(),
83
83
  catch: _ => clientError.responseError({
84
84
  request: this.request,
@@ -86,7 +86,7 @@ class ClientResponseImpl {
86
86
  reason: "Decode",
87
87
  error: _
88
88
  })
89
- });
89
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
90
90
  }
91
91
  get urlParamsBody() {
92
92
  return Effect__namespace.flatMap(this.text, _ => Effect__namespace.try({
@@ -100,7 +100,7 @@ class ClientResponseImpl {
100
100
  }));
101
101
  }
102
102
  get formData() {
103
- return Effect__namespace.tryPromise({
103
+ return this.formDataBody ??= Effect__namespace.tryPromise({
104
104
  try: () => this.source.formData(),
105
105
  catch: _ => clientError.responseError({
106
106
  request: this.request,
@@ -108,10 +108,10 @@ class ClientResponseImpl {
108
108
  reason: "Decode",
109
109
  error: _
110
110
  })
111
- });
111
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
112
112
  }
113
113
  get arrayBuffer() {
114
- return Effect__namespace.tryPromise({
114
+ return this.arrayBufferBody ??= Effect__namespace.tryPromise({
115
115
  try: () => this.source.arrayBuffer(),
116
116
  catch: _ => clientError.responseError({
117
117
  request: this.request,
@@ -119,7 +119,7 @@ class ClientResponseImpl {
119
119
  reason: "Decode",
120
120
  error: _
121
121
  })
122
- });
122
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
123
123
  }
124
124
  }
125
125
 
@@ -78,7 +78,7 @@ class ClientResponseImpl {
78
78
  });
79
79
  }
80
80
  get text() {
81
- return Effect__namespace.tryPromise({
81
+ return this.textBody ??= Effect__namespace.tryPromise({
82
82
  try: () => this.source.text(),
83
83
  catch: _ => clientError.responseError({
84
84
  request: this.request,
@@ -86,7 +86,7 @@ class ClientResponseImpl {
86
86
  reason: "Decode",
87
87
  error: _
88
88
  })
89
- });
89
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
90
90
  }
91
91
  get urlParamsBody() {
92
92
  return Effect__namespace.flatMap(this.text, _ => Effect__namespace.try({
@@ -100,7 +100,7 @@ class ClientResponseImpl {
100
100
  }));
101
101
  }
102
102
  get formData() {
103
- return Effect__namespace.tryPromise({
103
+ return this.formDataBody ??= Effect__namespace.tryPromise({
104
104
  try: () => this.source.formData(),
105
105
  catch: _ => clientError.responseError({
106
106
  request: this.request,
@@ -108,10 +108,10 @@ class ClientResponseImpl {
108
108
  reason: "Decode",
109
109
  error: _
110
110
  })
111
- });
111
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
112
112
  }
113
113
  get arrayBuffer() {
114
- return Effect__namespace.tryPromise({
114
+ return this.arrayBufferBody ??= Effect__namespace.tryPromise({
115
115
  try: () => this.source.arrayBuffer(),
116
116
  catch: _ => clientError.responseError({
117
117
  request: this.request,
@@ -119,7 +119,7 @@ class ClientResponseImpl {
119
119
  reason: "Decode",
120
120
  error: _
121
121
  })
122
- });
122
+ }).pipe(Effect__namespace.cached, Effect__namespace.runSync);
123
123
  }
124
124
  }
125
125
 
@@ -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":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAA;AACxC,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,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;IACvD,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;IACpG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CACxD;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACrE;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,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CACxG;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAA2B,CAAA;AAElG;;;GAGG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;IACvD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACnE;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAiB,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO;QACrC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,CAAC,CAAA;QACjC,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;QAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;KAChC;IAED;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAE1G;;;OAGG;IACH,KAAY,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IAC/B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GACjC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAC7B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAChC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAClC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;CAC9C;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,CAAA;IAC1E,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,CAAA;CACjF;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC;;;OAGG;IACH,KAAY,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,IAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GACpB,CAAC;QACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,GAAG;QACF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;QACxB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAA;KAC5C,CAAC,CAAA;CACL;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CACrD;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAA;AAE9E;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACnD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACtB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KACvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAC9D;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAA0B,CAAA;AAE9F;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,CAAwB,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,aAAa,CAAyB,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAC9B,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAE/F;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,CAAC,EAC5B,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KACnD,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAC1C,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAC9B,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAA0B,CAAA"}
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.2",
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
@@ -74,8 +74,9 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
74
74
  })
75
75
  }
76
76
 
77
+ private textBody?: Effect.Effect<never, Error.ResponseError, string>
77
78
  get text(): Effect.Effect<never, Error.ResponseError, string> {
78
- return Effect.tryPromise({
79
+ return this.textBody ??= Effect.tryPromise({
79
80
  try: () => this.source.text(),
80
81
  catch: (_) =>
81
82
  internalError.responseError({
@@ -84,7 +85,7 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
84
85
  reason: "Decode",
85
86
  error: _
86
87
  })
87
- })
88
+ }).pipe(Effect.cached, Effect.runSync)
88
89
  }
89
90
 
90
91
  get urlParamsBody(): Effect.Effect<never, Error.ResponseError, UrlParams.UrlParams> {
@@ -101,8 +102,9 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
101
102
  }))
102
103
  }
103
104
 
105
+ private formDataBody?: Effect.Effect<never, Error.ResponseError, FormData>
104
106
  get formData(): Effect.Effect<never, Error.ResponseError, FormData> {
105
- return Effect.tryPromise({
107
+ return this.formDataBody ??= Effect.tryPromise({
106
108
  try: () => this.source.formData(),
107
109
  catch: (_) =>
108
110
  internalError.responseError({
@@ -111,11 +113,12 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
111
113
  reason: "Decode",
112
114
  error: _
113
115
  })
114
- })
116
+ }).pipe(Effect.cached, Effect.runSync)
115
117
  }
116
118
 
119
+ private arrayBufferBody?: Effect.Effect<never, Error.ResponseError, ArrayBuffer>
117
120
  get arrayBuffer(): Effect.Effect<never, Error.ResponseError, ArrayBuffer> {
118
- return Effect.tryPromise({
121
+ return this.arrayBufferBody ??= Effect.tryPromise({
119
122
  try: () => this.source.arrayBuffer(),
120
123
  catch: (_) =>
121
124
  internalError.responseError({
@@ -124,7 +127,7 @@ class ClientResponseImpl implements ClientResponse.ClientResponse {
124
127
  reason: "Decode",
125
128
  error: _
126
129
  })
127
- })
130
+ }).pipe(Effect.cached, Effect.runSync)
128
131
  }
129
132
  }
130
133
 
@@ -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
  })