@effect/platform-node 0.23.0 → 0.23.2

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 (67) hide show
  1. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.cjs.dev.js +1 -1
  2. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.cjs.prod.js +1 -1
  3. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.esm.js +1 -1
  4. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.cjs.dev.js +2 -2
  5. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.cjs.prod.js +2 -2
  6. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.esm.js +2 -2
  7. package/Http/Server/dist/effect-platform-node-Http-Server.cjs.dev.js +2 -2
  8. package/Http/Server/dist/effect-platform-node-Http-Server.cjs.prod.js +2 -2
  9. package/Http/Server/dist/effect-platform-node-Http-Server.esm.js +2 -2
  10. package/HttpClient/dist/effect-platform-node-HttpClient.cjs.dev.js +2 -2
  11. package/HttpClient/dist/effect-platform-node-HttpClient.cjs.prod.js +2 -2
  12. package/HttpClient/dist/effect-platform-node-HttpClient.esm.js +2 -2
  13. package/HttpServer/dist/effect-platform-node-HttpServer.cjs.dev.js +2 -2
  14. package/HttpServer/dist/effect-platform-node-HttpServer.cjs.prod.js +2 -2
  15. package/HttpServer/dist/effect-platform-node-HttpServer.esm.js +2 -2
  16. package/NodeContext/dist/effect-platform-node-NodeContext.cjs.dev.js +1 -1
  17. package/NodeContext/dist/effect-platform-node-NodeContext.cjs.prod.js +1 -1
  18. package/NodeContext/dist/effect-platform-node-NodeContext.esm.js +1 -1
  19. package/Sink/dist/effect-platform-node-Sink.cjs.dev.js +1 -1
  20. package/Sink/dist/effect-platform-node-Sink.cjs.prod.js +1 -1
  21. package/Sink/dist/effect-platform-node-Sink.esm.js +1 -1
  22. package/Worker/dist/effect-platform-node-Worker.cjs.d.mts +2 -0
  23. package/Worker/dist/effect-platform-node-Worker.cjs.d.mts.map +1 -0
  24. package/Worker/dist/effect-platform-node-Worker.cjs.d.ts +2 -0
  25. package/Worker/dist/effect-platform-node-Worker.cjs.d.ts.map +1 -0
  26. package/Worker/dist/effect-platform-node-Worker.cjs.dev.js +129 -0
  27. package/Worker/dist/effect-platform-node-Worker.cjs.js +7 -0
  28. package/Worker/dist/effect-platform-node-Worker.cjs.mjs +1 -0
  29. package/Worker/dist/effect-platform-node-Worker.cjs.prod.js +129 -0
  30. package/Worker/dist/effect-platform-node-Worker.esm.js +93 -0
  31. package/Worker/package.json +4 -0
  32. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.d.mts +2 -0
  33. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.d.mts.map +1 -0
  34. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.d.ts +2 -0
  35. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.d.ts.map +1 -0
  36. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.dev.js +96 -0
  37. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.js +7 -0
  38. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.mjs +1 -0
  39. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.cjs.prod.js +96 -0
  40. package/WorkerRunner/dist/effect-platform-node-WorkerRunner.esm.js +63 -0
  41. package/WorkerRunner/package.json +4 -0
  42. package/dist/declarations/src/Worker.d.ts +37 -0
  43. package/dist/declarations/src/Worker.d.ts.map +1 -0
  44. package/dist/declarations/src/WorkerRunner.d.ts +20 -0
  45. package/dist/declarations/src/WorkerRunner.d.ts.map +1 -0
  46. package/dist/declarations/src/index.d.ts +12 -0
  47. package/dist/declarations/src/index.d.ts.map +1 -1
  48. package/dist/effect-platform-node.cjs.dev.js +6 -0
  49. package/dist/effect-platform-node.cjs.mjs +3 -1
  50. package/dist/effect-platform-node.cjs.prod.js +6 -0
  51. package/dist/effect-platform-node.esm.js +4 -0
  52. package/dist/{sink-3a150604.cjs.dev.js → sink-1665024d.cjs.dev.js} +7 -10
  53. package/dist/{sink-570c8582.cjs.prod.js → sink-2e5c0562.cjs.prod.js} +7 -10
  54. package/dist/{sink-5dfcc09e.esm.js → sink-6f7ec01c.esm.js} +7 -10
  55. package/package.json +19 -5
  56. package/src/Worker.ts +46 -0
  57. package/src/WorkerRunner.ts +25 -0
  58. package/src/index.ts +14 -0
  59. package/src/internal/sink.ts +21 -23
  60. package/src/internal/worker.ts +63 -0
  61. package/src/internal/workerRunner.ts +53 -0
  62. /package/dist/{NodeClient-433f41ed.cjs.dev.js → NodeClient-537e7d57.cjs.dev.js} +0 -0
  63. /package/dist/{NodeClient-1b5f7152.esm.js → NodeClient-7d78f700.esm.js} +0 -0
  64. /package/dist/{NodeClient-8d8ff956.cjs.prod.js → NodeClient-881f6bd6.cjs.prod.js} +0 -0
  65. /package/dist/{Server-66eb964d.cjs.dev.js → Server-173b9a31.cjs.dev.js} +0 -0
  66. /package/dist/{Server-2dd836bc.cjs.prod.js → Server-f3212345.cjs.prod.js} +0 -0
  67. /package/dist/{Server-913d7080.esm.js → Server-fce717d2.esm.js} +0 -0
@@ -0,0 +1,93 @@
1
+ import * as Worker from '@effect/platform/Worker';
2
+ export * from '@effect/platform/Worker';
3
+ import { WorkerError } from '@effect/platform/WorkerError';
4
+ import * as Effect from 'effect/Effect';
5
+ import * as Fiber from 'effect/Fiber';
6
+ import * as Layer from 'effect/Layer';
7
+ import * as Queue from 'effect/Queue';
8
+
9
+ const platformWorkerImpl = /*#__PURE__*/Worker.PlatformWorker.of({
10
+ [Worker.PlatformWorkerTypeId]: Worker.PlatformWorkerTypeId,
11
+ spawn(worker_) {
12
+ return Effect.gen(function* (_) {
13
+ const worker = worker_;
14
+ yield* _(Effect.addFinalizer(() => Effect.suspend(() => {
15
+ worker.postMessage([1]);
16
+ return Effect.async(resume => {
17
+ worker.once("exit", () => {
18
+ resume(Effect.unit);
19
+ });
20
+ });
21
+ })));
22
+ const fiberId = yield* _(Effect.fiberId);
23
+ const queue = yield* _(Queue.unbounded());
24
+ yield* _(Effect.addFinalizer(() => Queue.shutdown(queue)));
25
+ const fiber = yield* _(Effect.async(resume => {
26
+ worker.on("message", message => {
27
+ queue.unsafeOffer(message);
28
+ });
29
+ worker.on("messageerror", error => {
30
+ resume(Effect.fail(WorkerError("decode", error)));
31
+ });
32
+ worker.on("error", error => {
33
+ resume(Effect.fail(WorkerError("unknown", error)));
34
+ });
35
+ worker.on("exit", code => {
36
+ resume(Effect.fail(WorkerError("unknown", new Error(`exited with code ${code}`))));
37
+ });
38
+ }), Effect.forkDaemon);
39
+ yield* _(Effect.addFinalizer(() => fiber.interruptAsFork(fiberId)));
40
+ const join = Fiber.join(fiber);
41
+ const send = (message, transfers) => Effect.sync(() => worker.postMessage([0, message], transfers));
42
+ return {
43
+ join,
44
+ queue,
45
+ send
46
+ };
47
+ });
48
+ }
49
+ });
50
+
51
+ /** @internal */
52
+ const layerWorker$1 = /*#__PURE__*/Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
53
+
54
+ /** @internal */
55
+ const layerManager$1 = /*#__PURE__*/Layer.provide(layerWorker$1, Worker.layerManager);
56
+
57
+ /** @internal */
58
+ const makePool$1 = /*#__PURE__*/Worker.makePool();
59
+
60
+ /** @internal */
61
+ const makePoolLayer$1 = /*#__PURE__*/Worker.makePoolLayer(layerManager$1);
62
+
63
+ /**
64
+ * @since 1.0.0
65
+ *
66
+ * Also includes exports from [`@effect/platform/Worker`](https://effect-ts.github.io/platform/platform/Worker.ts.html).
67
+ */
68
+
69
+ /**
70
+ * @since 1.0.0
71
+ * @category constructors
72
+ */
73
+ const makePool = makePool$1;
74
+
75
+ /**
76
+ * @since 1.0.0
77
+ * @category constructors
78
+ */
79
+ const makePoolLayer = makePoolLayer$1;
80
+
81
+ /**
82
+ * @since 1.0.0
83
+ * @category layers
84
+ */
85
+ const layerManager = layerManager$1;
86
+
87
+ /**
88
+ * @since 1.0.0
89
+ * @category layers
90
+ */
91
+ const layerWorker = layerWorker$1;
92
+
93
+ export { layerManager, layerWorker, makePool, makePoolLayer };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/effect-platform-node-Worker.cjs.js",
3
+ "module": "dist/effect-platform-node-Worker.esm.js"
4
+ }
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/WorkerRunner.js";
2
+ //# sourceMappingURL=effect-platform-node-WorkerRunner.cjs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-platform-node-WorkerRunner.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/WorkerRunner.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "../../dist/declarations/src/WorkerRunner";
2
+ //# sourceMappingURL=effect-platform-node-WorkerRunner.cjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-platform-node-WorkerRunner.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/WorkerRunner.d.ts"],"names":[],"mappings":"AAAA"}
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var WorkerError = require('@effect/platform/WorkerError');
6
+ var Runner = require('@effect/platform/WorkerRunner');
7
+ var Effect = require('effect/Effect');
8
+ var Layer = require('effect/Layer');
9
+ var Queue = require('effect/Queue');
10
+ var WorkerThreads = require('node:worker_threads');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var Runner__namespace = /*#__PURE__*/_interopNamespace(Runner);
31
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
32
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
33
+ var Queue__namespace = /*#__PURE__*/_interopNamespace(Queue);
34
+ var WorkerThreads__namespace = /*#__PURE__*/_interopNamespace(WorkerThreads);
35
+
36
+ const platformRunnerImpl = /*#__PURE__*/Runner__namespace.PlatformRunner.of({
37
+ [Runner__namespace.PlatformRunnerTypeId]: Runner__namespace.PlatformRunnerTypeId,
38
+ start() {
39
+ return Effect__namespace.gen(function* (_) {
40
+ if (!WorkerThreads__namespace.parentPort) {
41
+ return yield* _(Effect__namespace.fail(WorkerError.WorkerError("spawn", "not in worker")));
42
+ }
43
+ const port = WorkerThreads__namespace.parentPort;
44
+ const queue = yield* _(Queue__namespace.unbounded());
45
+ const fiber = yield* _(Effect__namespace.async(resume => {
46
+ port.on("message", message => {
47
+ if (message[0] === 0) {
48
+ queue.unsafeOffer(message[1]);
49
+ } else {
50
+ Effect__namespace.runFork(Queue__namespace.shutdown(queue));
51
+ }
52
+ });
53
+ port.on("messageerror", error => {
54
+ resume(Effect__namespace.fail(WorkerError.WorkerError("decode", error)));
55
+ });
56
+ port.on("error", error => {
57
+ resume(Effect__namespace.fail(WorkerError.WorkerError("unknown", error)));
58
+ });
59
+ }), Effect__namespace.forkScoped);
60
+ const send = (message, transfers) => Effect__namespace.sync(() => port.postMessage([1, message], transfers));
61
+ // ready
62
+ port.postMessage([0]);
63
+ return {
64
+ fiber,
65
+ queue,
66
+ send
67
+ };
68
+ });
69
+ }
70
+ });
71
+
72
+ /** @internal */
73
+ const layer = /*#__PURE__*/Layer__namespace.succeed(Runner__namespace.PlatformRunner, platformRunnerImpl);
74
+
75
+ /** @internal */
76
+ const make$1 = (process, options) => Effect__namespace.provide(Runner__namespace.make(process, options), layer);
77
+
78
+ /**
79
+ * @since 1.0.0
80
+ *
81
+ * Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/platform/platform/WorkerRunner.ts.html).
82
+ */
83
+
84
+ /**
85
+ * @since 1.0.0
86
+ * @category constructors
87
+ */
88
+ const make = make$1;
89
+
90
+ exports.make = make;
91
+ Object.keys(Runner).forEach(function (k) {
92
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
93
+ enumerable: true,
94
+ get: function () { return Runner[k]; }
95
+ });
96
+ });
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./effect-platform-node-WorkerRunner.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./effect-platform-node-WorkerRunner.cjs.dev.js");
7
+ }
@@ -0,0 +1 @@
1
+ export * from "./effect-platform-node-WorkerRunner.cjs.js";
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var WorkerError = require('@effect/platform/WorkerError');
6
+ var Runner = require('@effect/platform/WorkerRunner');
7
+ var Effect = require('effect/Effect');
8
+ var Layer = require('effect/Layer');
9
+ var Queue = require('effect/Queue');
10
+ var WorkerThreads = require('node:worker_threads');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n["default"] = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var Runner__namespace = /*#__PURE__*/_interopNamespace(Runner);
31
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
32
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
33
+ var Queue__namespace = /*#__PURE__*/_interopNamespace(Queue);
34
+ var WorkerThreads__namespace = /*#__PURE__*/_interopNamespace(WorkerThreads);
35
+
36
+ const platformRunnerImpl = /*#__PURE__*/Runner__namespace.PlatformRunner.of({
37
+ [Runner__namespace.PlatformRunnerTypeId]: Runner__namespace.PlatformRunnerTypeId,
38
+ start() {
39
+ return Effect__namespace.gen(function* (_) {
40
+ if (!WorkerThreads__namespace.parentPort) {
41
+ return yield* _(Effect__namespace.fail(WorkerError.WorkerError("spawn", "not in worker")));
42
+ }
43
+ const port = WorkerThreads__namespace.parentPort;
44
+ const queue = yield* _(Queue__namespace.unbounded());
45
+ const fiber = yield* _(Effect__namespace.async(resume => {
46
+ port.on("message", message => {
47
+ if (message[0] === 0) {
48
+ queue.unsafeOffer(message[1]);
49
+ } else {
50
+ Effect__namespace.runFork(Queue__namespace.shutdown(queue));
51
+ }
52
+ });
53
+ port.on("messageerror", error => {
54
+ resume(Effect__namespace.fail(WorkerError.WorkerError("decode", error)));
55
+ });
56
+ port.on("error", error => {
57
+ resume(Effect__namespace.fail(WorkerError.WorkerError("unknown", error)));
58
+ });
59
+ }), Effect__namespace.forkScoped);
60
+ const send = (message, transfers) => Effect__namespace.sync(() => port.postMessage([1, message], transfers));
61
+ // ready
62
+ port.postMessage([0]);
63
+ return {
64
+ fiber,
65
+ queue,
66
+ send
67
+ };
68
+ });
69
+ }
70
+ });
71
+
72
+ /** @internal */
73
+ const layer = /*#__PURE__*/Layer__namespace.succeed(Runner__namespace.PlatformRunner, platformRunnerImpl);
74
+
75
+ /** @internal */
76
+ const make$1 = (process, options) => Effect__namespace.provide(Runner__namespace.make(process, options), layer);
77
+
78
+ /**
79
+ * @since 1.0.0
80
+ *
81
+ * Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/platform/platform/WorkerRunner.ts.html).
82
+ */
83
+
84
+ /**
85
+ * @since 1.0.0
86
+ * @category constructors
87
+ */
88
+ const make = make$1;
89
+
90
+ exports.make = make;
91
+ Object.keys(Runner).forEach(function (k) {
92
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
93
+ enumerable: true,
94
+ get: function () { return Runner[k]; }
95
+ });
96
+ });
@@ -0,0 +1,63 @@
1
+ import { WorkerError } from '@effect/platform/WorkerError';
2
+ import * as Runner from '@effect/platform/WorkerRunner';
3
+ export * from '@effect/platform/WorkerRunner';
4
+ import * as Effect from 'effect/Effect';
5
+ import * as Layer from 'effect/Layer';
6
+ import * as Queue from 'effect/Queue';
7
+ import * as WorkerThreads from 'node:worker_threads';
8
+
9
+ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
10
+ [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
11
+ start() {
12
+ return Effect.gen(function* (_) {
13
+ if (!WorkerThreads.parentPort) {
14
+ return yield* _(Effect.fail(WorkerError("spawn", "not in worker")));
15
+ }
16
+ const port = WorkerThreads.parentPort;
17
+ const queue = yield* _(Queue.unbounded());
18
+ const fiber = yield* _(Effect.async(resume => {
19
+ port.on("message", message => {
20
+ if (message[0] === 0) {
21
+ queue.unsafeOffer(message[1]);
22
+ } else {
23
+ Effect.runFork(Queue.shutdown(queue));
24
+ }
25
+ });
26
+ port.on("messageerror", error => {
27
+ resume(Effect.fail(WorkerError("decode", error)));
28
+ });
29
+ port.on("error", error => {
30
+ resume(Effect.fail(WorkerError("unknown", error)));
31
+ });
32
+ }), Effect.forkScoped);
33
+ const send = (message, transfers) => Effect.sync(() => port.postMessage([1, message], transfers));
34
+ // ready
35
+ port.postMessage([0]);
36
+ return {
37
+ fiber,
38
+ queue,
39
+ send
40
+ };
41
+ });
42
+ }
43
+ });
44
+
45
+ /** @internal */
46
+ const layer = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
47
+
48
+ /** @internal */
49
+ const make$1 = (process, options) => Effect.provide(Runner.make(process, options), layer);
50
+
51
+ /**
52
+ * @since 1.0.0
53
+ *
54
+ * Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/platform/platform/WorkerRunner.ts.html).
55
+ */
56
+
57
+ /**
58
+ * @since 1.0.0
59
+ * @category constructors
60
+ */
61
+ const make = make$1;
62
+
63
+ export { make };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/effect-platform-node-WorkerRunner.cjs.js",
3
+ "module": "dist/effect-platform-node-WorkerRunner.esm.js"
4
+ }
@@ -0,0 +1,37 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * @since 1.0.0
4
+ *
5
+ * Also includes exports from [`@effect/platform/Worker`](https://effect-ts.github.io/platform/platform/Worker.ts.html).
6
+ */
7
+ import type * as Worker from "@effect/platform/Worker";
8
+ import type { Effect } from "effect";
9
+ import type * as Context from "effect/Context";
10
+ import type * as Layer from "effect/Layer";
11
+ import type * as Scope from "effect/Scope";
12
+ import type * as WorkerThreads from "node:worker_threads";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * from "@effect/platform/Worker";
17
+ /**
18
+ * @since 1.0.0
19
+ * @category constructors
20
+ */
21
+ export declare const makePool: <I, E, O>(options: Worker.WorkerPool.Options<I, WorkerThreads.Worker>) => Effect.Effect<Worker.WorkerManager | Scope.Scope, never, Worker.WorkerPool<I, E, O>>;
22
+ /**
23
+ * @since 1.0.0
24
+ * @category constructors
25
+ */
26
+ export declare const makePoolLayer: <Tag, I, E, O>(tag: Context.Tag<Tag, Worker.WorkerPool<I, E, O>>, options: Worker.WorkerPool.Options<I, WorkerThreads.Worker>) => Layer.Layer<never, never, Tag>;
27
+ /**
28
+ * @since 1.0.0
29
+ * @category layers
30
+ */
31
+ export declare const layerManager: Layer.Layer<never, never, Worker.WorkerManager>;
32
+ /**
33
+ * @since 1.0.0
34
+ * @category layers
35
+ */
36
+ export declare const layerWorker: Layer.Layer<never, never, Worker.PlatformWorker>;
37
+ //# sourceMappingURL=Worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Worker.d.ts","sourceRoot":"../../../src","sources":["Worker.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACtD,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,aAAa,MAAM,qBAAqB,CAAA;AAGzD;;GAEG;AACH,cAAc,yBAAyB,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,KACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAqB,CAAA;AAE7G;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,KACxD,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAA0B,CAAA;AAE5D;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,CAAyB,CAAA;AAElG;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAwB,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @since 1.0.0
3
+ *
4
+ * Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/platform/platform/WorkerRunner.ts.html).
5
+ */
6
+ import type { WorkerError } from "@effect/platform/WorkerError";
7
+ import type * as Runner from "@effect/platform/WorkerRunner";
8
+ import type { Effect } from "effect";
9
+ import type * as Scope from "effect/Scope";
10
+ import type * as Stream from "effect/Stream";
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export * from "@effect/platform/WorkerRunner";
15
+ /**
16
+ * @since 1.0.0
17
+ * @category constructors
18
+ */
19
+ export declare const make: <I, R, E, O>(process: (request: I) => Stream.Stream<R, E, O>, options?: Runner.Runner.Options<O> | undefined) => Effect.Effect<R | Scope.Scope, WorkerError, void>;
20
+ //# sourceMappingURL=WorkerRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"../../../src","sources":["WorkerRunner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAG5C;;GAEG;AACH,cAAc,+BAA+B,CAAA;AAE7C;;;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,EAC/C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,KAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAiB,CAAA"}
@@ -52,4 +52,16 @@ export * as Sink from "./Sink.js";
52
52
  * @since 1.0.0
53
53
  */
54
54
  export * as Stream from "./Stream.js";
55
+ /**
56
+ * @since 1.0.0
57
+ *
58
+ * Also includes exports from [`@effect/platform/Worker`](https://effect-ts.github.io/platform/platform/Worker.ts.html).
59
+ */
60
+ export * as Worker from "./Worker.js";
61
+ /**
62
+ * @since 1.0.0
63
+ *
64
+ * Also includes exports from [`@effect/platform/WorkerRunner`](https://effect-ts.github.io/platform/platform/WorkerRunner.ts.html).
65
+ */
66
+ export * as WorkerRunner from "./WorkerRunner.js";
55
67
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,eAAe,6BAA6C;AAExE;;GAEG;AACH,OAAO,KAAK,SAAS,uBAAuC;AAE5D;;GAEG;AACH,OAAO,KAAK,KAAK,mBAAmC;AAEpD;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;;;GAIG;AACH,OAAO,KAAK,aAAa,2BAA2C;AAEpE;;GAEG;AACH,OAAO,KAAK,WAAW,yBAAyC;AAEhE;;GAEG;AACH,OAAO,KAAK,IAAI,kBAAkC;AAElD;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,IAAI,kBAAkC;AAElD;;GAEG;AACH,OAAO,KAAK,MAAM,oBAAoC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,eAAe,6BAA6C;AAExE;;GAEG;AACH,OAAO,KAAK,SAAS,uBAAuC;AAE5D;;GAEG;AACH,OAAO,KAAK,KAAK,mBAAmC;AAEpD;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;GAEG;AACH,OAAO,KAAK,UAAU,wBAAwC;AAE9D;;;;GAIG;AACH,OAAO,KAAK,aAAa,2BAA2C;AAEpE;;GAEG;AACH,OAAO,KAAK,WAAW,yBAAyC;AAEhE;;GAEG;AACH,OAAO,KAAK,IAAI,kBAAkC;AAElD;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,IAAI,kBAAkC;AAElD;;GAEG;AACH,OAAO,KAAK,MAAM,oBAAoC;AAEtD;;;;GAIG;AACH,OAAO,KAAK,MAAM,oBAAoC;AAEtD;;;;GAIG;AACH,OAAO,KAAK,YAAY,0BAA0C"}
@@ -15,6 +15,8 @@ var Path = require('@effect/platform-node/Path');
15
15
  var Runtime = require('@effect/platform-node/Runtime');
16
16
  var Sink = require('@effect/platform-node/Sink');
17
17
  var Stream = require('@effect/platform-node/Stream');
18
+ var Worker = require('@effect/platform-node/Worker');
19
+ var WorkerRunner = require('@effect/platform-node/WorkerRunner');
18
20
 
19
21
  function _interopNamespace(e) {
20
22
  if (e && e.__esModule) return e;
@@ -47,6 +49,8 @@ var Path__namespace = /*#__PURE__*/_interopNamespace(Path);
47
49
  var Runtime__namespace = /*#__PURE__*/_interopNamespace(Runtime);
48
50
  var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
49
51
  var Stream__namespace = /*#__PURE__*/_interopNamespace(Stream);
52
+ var Worker__namespace = /*#__PURE__*/_interopNamespace(Worker);
53
+ var WorkerRunner__namespace = /*#__PURE__*/_interopNamespace(WorkerRunner);
50
54
 
51
55
 
52
56
 
@@ -63,3 +67,5 @@ exports.Path = Path__namespace;
63
67
  exports.Runtime = Runtime__namespace;
64
68
  exports.Sink = Sink__namespace;
65
69
  exports.Stream = Stream__namespace;
70
+ exports.Worker = Worker__namespace;
71
+ exports.WorkerRunner = WorkerRunner__namespace;
@@ -11,5 +11,7 @@ export {
11
11
  Path,
12
12
  Runtime,
13
13
  Sink,
14
- Stream
14
+ Stream,
15
+ Worker,
16
+ WorkerRunner
15
17
  } from "./effect-platform-node.cjs.js";
@@ -15,6 +15,8 @@ var Path = require('@effect/platform-node/Path');
15
15
  var Runtime = require('@effect/platform-node/Runtime');
16
16
  var Sink = require('@effect/platform-node/Sink');
17
17
  var Stream = require('@effect/platform-node/Stream');
18
+ var Worker = require('@effect/platform-node/Worker');
19
+ var WorkerRunner = require('@effect/platform-node/WorkerRunner');
18
20
 
19
21
  function _interopNamespace(e) {
20
22
  if (e && e.__esModule) return e;
@@ -47,6 +49,8 @@ var Path__namespace = /*#__PURE__*/_interopNamespace(Path);
47
49
  var Runtime__namespace = /*#__PURE__*/_interopNamespace(Runtime);
48
50
  var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
49
51
  var Stream__namespace = /*#__PURE__*/_interopNamespace(Stream);
52
+ var Worker__namespace = /*#__PURE__*/_interopNamespace(Worker);
53
+ var WorkerRunner__namespace = /*#__PURE__*/_interopNamespace(WorkerRunner);
50
54
 
51
55
 
52
56
 
@@ -63,3 +67,5 @@ exports.Path = Path__namespace;
63
67
  exports.Runtime = Runtime__namespace;
64
68
  exports.Sink = Sink__namespace;
65
69
  exports.Stream = Stream__namespace;
70
+ exports.Worker = Worker__namespace;
71
+ exports.WorkerRunner = WorkerRunner__namespace;
@@ -24,3 +24,7 @@ import * as Sink from '@effect/platform-node/Sink';
24
24
  export { Sink };
25
25
  import * as Stream from '@effect/platform-node/Stream';
26
26
  export { Stream };
27
+ import * as Worker from '@effect/platform-node/Worker';
28
+ export { Worker };
29
+ import * as WorkerRunner from '@effect/platform-node/WorkerRunner';
30
+ export { WorkerRunner };
@@ -31,18 +31,15 @@ var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
31
31
 
32
32
  /** @internal */
33
33
  const fromWritable = (evaluate, onError, options = {}) => Sink__namespace.suspend(() => Sink__namespace.fromChannel(writeChannel(evaluate(), onError, options)));
34
- const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => {
35
- const input = stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit));
36
- return Channel__namespace.embedInput(writableOutput(writable, deferred, onError), input);
37
- });
38
- const writableOutput = (writable, deferred, onError) => Effect__namespace.raceFirst(Effect__namespace.async(resume => {
34
+ const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => Channel__namespace.embedInput(writableOutput(writable, deferred, onError), stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit))));
35
+ const writableOutput = (writable, deferred, onError) => Effect__namespace.suspend(() => {
39
36
  function handleError(err) {
40
- resume(Effect__namespace.fail(onError(err)));
37
+ Deferred__namespace.unsafeDone(deferred, Effect__namespace.fail(onError(err)));
41
38
  }
42
39
  writable.on("error", handleError);
43
- return Effect__namespace.sync(() => {
44
- writable.off("error", handleError);
45
- });
46
- }), Deferred__namespace.await(deferred));
40
+ return Effect__namespace.ensuring(Deferred__namespace.await(deferred), Effect__namespace.sync(() => {
41
+ writable.removeListener("error", handleError);
42
+ }));
43
+ });
47
44
 
48
45
  exports.fromWritable = fromWritable;
@@ -31,18 +31,15 @@ var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
31
31
 
32
32
  /** @internal */
33
33
  const fromWritable = (evaluate, onError, options = {}) => Sink__namespace.suspend(() => Sink__namespace.fromChannel(writeChannel(evaluate(), onError, options)));
34
- const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => {
35
- const input = stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit));
36
- return Channel__namespace.embedInput(writableOutput(writable, deferred, onError), input);
37
- });
38
- const writableOutput = (writable, deferred, onError) => Effect__namespace.raceFirst(Effect__namespace.async(resume => {
34
+ const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => Channel__namespace.embedInput(writableOutput(writable, deferred, onError), stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit))));
35
+ const writableOutput = (writable, deferred, onError) => Effect__namespace.suspend(() => {
39
36
  function handleError(err) {
40
- resume(Effect__namespace.fail(onError(err)));
37
+ Deferred__namespace.unsafeDone(deferred, Effect__namespace.fail(onError(err)));
41
38
  }
42
39
  writable.on("error", handleError);
43
- return Effect__namespace.sync(() => {
44
- writable.off("error", handleError);
45
- });
46
- }), Deferred__namespace.await(deferred));
40
+ return Effect__namespace.ensuring(Deferred__namespace.await(deferred), Effect__namespace.sync(() => {
41
+ writable.removeListener("error", handleError);
42
+ }));
43
+ });
47
44
 
48
45
  exports.fromWritable = fromWritable;
@@ -6,18 +6,15 @@ import { w as writeInput } from './stream-faaffb40.esm.js';
6
6
 
7
7
  /** @internal */
8
8
  const fromWritable = (evaluate, onError, options = {}) => Sink.suspend(() => Sink.fromChannel(writeChannel(evaluate(), onError, options)));
9
- const writeChannel = (writable, onError, options = {}) => Channel.flatMap(Deferred.make(), deferred => {
10
- const input = writeInput(writable, _ => Deferred.failCause(deferred, _), options, Deferred.complete(deferred, Effect.unit));
11
- return Channel.embedInput(writableOutput(writable, deferred, onError), input);
12
- });
13
- const writableOutput = (writable, deferred, onError) => Effect.raceFirst(Effect.async(resume => {
9
+ const writeChannel = (writable, onError, options = {}) => Channel.flatMap(Deferred.make(), deferred => Channel.embedInput(writableOutput(writable, deferred, onError), writeInput(writable, _ => Deferred.failCause(deferred, _), options, Deferred.complete(deferred, Effect.unit))));
10
+ const writableOutput = (writable, deferred, onError) => Effect.suspend(() => {
14
11
  function handleError(err) {
15
- resume(Effect.fail(onError(err)));
12
+ Deferred.unsafeDone(deferred, Effect.fail(onError(err)));
16
13
  }
17
14
  writable.on("error", handleError);
18
- return Effect.sync(() => {
19
- writable.off("error", handleError);
20
- });
21
- }), Deferred.await(deferred));
15
+ return Effect.ensuring(Deferred.await(deferred), Effect.sync(() => {
16
+ writable.removeListener("error", handleError);
17
+ }));
18
+ });
22
19
 
23
20
  export { fromWritable as f };