@livestore/utils 0.4.0-dev.3 → 0.4.0-dev.6
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.
- package/dist/.tsbuildinfo.json +1 -1
- package/dist/NoopTracer.d.ts.map +1 -1
- package/dist/NoopTracer.js +1 -0
- package/dist/NoopTracer.js.map +1 -1
- package/dist/effect/Effect.d.ts +1 -2
- package/dist/effect/Effect.d.ts.map +1 -1
- package/dist/effect/Effect.js +2 -2
- package/dist/effect/Effect.js.map +1 -1
- package/dist/effect/Error.d.ts +1 -1
- package/dist/effect/Error.js.map +1 -1
- package/dist/effect/Logger.d.ts +4 -1
- package/dist/effect/Logger.d.ts.map +1 -1
- package/dist/effect/Logger.js +12 -3
- package/dist/effect/Logger.js.map +1 -1
- package/dist/effect/OtelTracer.d.ts +5 -0
- package/dist/effect/OtelTracer.d.ts.map +1 -0
- package/dist/effect/OtelTracer.js +8 -0
- package/dist/effect/OtelTracer.js.map +1 -0
- package/dist/effect/RpcClient.d.ts +32 -0
- package/dist/effect/RpcClient.d.ts.map +1 -0
- package/dist/effect/RpcClient.js +142 -0
- package/dist/effect/RpcClient.js.map +1 -0
- package/dist/effect/Schema/index.d.ts +0 -1
- package/dist/effect/Schema/index.d.ts.map +1 -1
- package/dist/effect/Schema/index.js +0 -1
- package/dist/effect/Schema/index.js.map +1 -1
- package/dist/effect/Stream.d.ts +73 -2
- package/dist/effect/Stream.d.ts.map +1 -1
- package/dist/effect/Stream.js +68 -1
- package/dist/effect/Stream.js.map +1 -1
- package/dist/effect/Stream.test.d.ts +2 -0
- package/dist/effect/Stream.test.d.ts.map +1 -0
- package/dist/effect/Stream.test.js +84 -0
- package/dist/effect/Stream.test.js.map +1 -0
- package/dist/effect/SubscriptionRef.d.ts +2 -2
- package/dist/effect/SubscriptionRef.d.ts.map +1 -1
- package/dist/effect/SubscriptionRef.js +6 -1
- package/dist/effect/SubscriptionRef.js.map +1 -1
- package/dist/effect/WebSocket.js +1 -1
- package/dist/effect/WebSocket.js.map +1 -1
- package/dist/effect/index.d.ts +9 -5
- package/dist/effect/index.d.ts.map +1 -1
- package/dist/effect/index.js +10 -7
- package/dist/effect/index.js.map +1 -1
- package/dist/global.d.ts +1 -0
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js.map +1 -1
- package/dist/mod.d.ts +2 -0
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +4 -0
- package/dist/mod.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.d.ts.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js +54 -10
- package/dist/node/ChildProcessRunner/ChildProcessRunner.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js +182 -3
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts +12 -3
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.d.ts.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js +7 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/schema.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js +11 -1
- package/dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts +16 -0
- package/dist/node/ChildProcessRunner/ChildProcessWorker.d.ts.map +1 -1
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js +98 -2
- package/dist/node/ChildProcessRunner/ChildProcessWorker.js.map +1 -1
- package/dist/node/mod.d.ts +1 -1
- package/dist/node/mod.d.ts.map +1 -1
- package/dist/node/mod.js +2 -2
- package/dist/node/mod.js.map +1 -1
- package/package.json +31 -32
- package/src/NoopTracer.ts +1 -0
- package/src/effect/Effect.ts +15 -3
- package/src/effect/Error.ts +1 -1
- package/src/effect/Logger.ts +14 -4
- package/src/effect/OtelTracer.ts +11 -0
- package/src/effect/RpcClient.ts +205 -0
- package/src/effect/Schema/index.ts +0 -1
- package/src/effect/Stream.test.ts +127 -0
- package/src/effect/Stream.ts +111 -2
- package/src/effect/SubscriptionRef.ts +14 -2
- package/src/effect/WebSocket.ts +1 -1
- package/src/effect/index.ts +16 -5
- package/src/global.ts +1 -0
- package/src/mod.ts +9 -0
- package/src/node/ChildProcessRunner/ChildProcessRunner.ts +59 -10
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts +253 -3
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts +14 -1
- package/src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts +14 -1
- package/src/node/ChildProcessRunner/ChildProcessWorker.ts +111 -3
- package/src/node/mod.ts +3 -3
- package/src/effect/Schema/msgpack.ts +0 -8
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
// import * as WorkerThreads from 'node:worker_threads'
|
|
2
1
|
import * as ChildProcess from 'node:child_process';
|
|
3
2
|
import * as EffectWorker from '@effect/platform/Worker';
|
|
4
3
|
import { assert, describe, it } from '@effect/vitest';
|
|
5
|
-
import { Chunk, Effect, Stream } from 'effect';
|
|
4
|
+
import { Chunk, Effect, Exit, Fiber, Scope, Stream } from 'effect';
|
|
6
5
|
import * as ChildProcessWorker from "../ChildProcessWorker.js";
|
|
7
|
-
import { GetPersonById, GetUserById, InitialMessage, Person, User } from "./schema.js";
|
|
6
|
+
import { GetPersonById, GetUserById, InitialMessage, Person, StartStubbornWorker, User } from "./schema.js";
|
|
8
7
|
const WorkerLive = ChildProcessWorker.layer(() => ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url)));
|
|
9
8
|
// const WorkerLive = NodeWorker.layer(
|
|
10
9
|
// () =>
|
|
@@ -35,5 +34,185 @@ describe('ChildProcessRunner', { timeout: 10_000 }, () => {
|
|
|
35
34
|
new Person({ id: 123, name: 'ing', data: new Uint8Array([4, 5, 6]) }),
|
|
36
35
|
]);
|
|
37
36
|
}).pipe(Effect.scoped, Effect.provide(WorkerLive), Effect.runPromise));
|
|
37
|
+
describe('Process Cleanup', { timeout: 15_000 }, () => {
|
|
38
|
+
const isProcessRunning = (pid) => {
|
|
39
|
+
try {
|
|
40
|
+
process.kill(pid, 0); // Signal 0 checks if process exists
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
it('should clean up child processes when Effect is interrupted', () => Effect.gen(function* () {
|
|
48
|
+
let workerPid;
|
|
49
|
+
const testEffect = Effect.gen(function* () {
|
|
50
|
+
const pool = yield* EffectWorker.makePoolSerialized({
|
|
51
|
+
size: 1,
|
|
52
|
+
initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
53
|
+
});
|
|
54
|
+
const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 }));
|
|
55
|
+
workerPid = result.pid;
|
|
56
|
+
// Verify the worker process is running
|
|
57
|
+
assert.strictEqual(isProcessRunning(workerPid), true, 'Worker process should be running');
|
|
58
|
+
// Start a long-running operation that we'll interrupt
|
|
59
|
+
yield* Effect.sleep('60 seconds');
|
|
60
|
+
}).pipe(Effect.scoped, Effect.provide(WorkerLive));
|
|
61
|
+
// Run the test effect but interrupt it after 2 seconds
|
|
62
|
+
const fiber = yield* Effect.fork(testEffect);
|
|
63
|
+
yield* Effect.sleep('2 seconds');
|
|
64
|
+
yield* Fiber.interrupt(fiber);
|
|
65
|
+
// Wait a moment for cleanup to complete
|
|
66
|
+
yield* Effect.sleep('1 second');
|
|
67
|
+
// Verify the child process was cleaned up
|
|
68
|
+
if (workerPid) {
|
|
69
|
+
assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after Effect interruption`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
assert.fail('Worker PID was not captured');
|
|
73
|
+
}
|
|
74
|
+
}).pipe(Effect.runPromise));
|
|
75
|
+
it('should clean up child processes when scope is closed abruptly', () => Effect.gen(function* () {
|
|
76
|
+
let workerPid;
|
|
77
|
+
// Create a scope that we can close manually
|
|
78
|
+
const scope = yield* Scope.make();
|
|
79
|
+
try {
|
|
80
|
+
const pool = yield* EffectWorker.makePoolSerialized({
|
|
81
|
+
size: 1,
|
|
82
|
+
initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
83
|
+
}).pipe(Scope.extend(scope), Effect.provide(WorkerLive));
|
|
84
|
+
const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 }));
|
|
85
|
+
workerPid = result.pid;
|
|
86
|
+
// Verify the worker is running
|
|
87
|
+
assert.strictEqual(isProcessRunning(workerPid), true, 'Worker process should be running');
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
// Abruptly close the scope (simulating test abortion)
|
|
91
|
+
yield* Scope.close(scope, Exit.void);
|
|
92
|
+
}
|
|
93
|
+
// Wait for cleanup
|
|
94
|
+
yield* Effect.sleep('1 second');
|
|
95
|
+
// This should pass but will initially fail due to zombie process issue
|
|
96
|
+
if (workerPid) {
|
|
97
|
+
assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after scope closure`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
assert.fail('Worker PID was not captured');
|
|
101
|
+
}
|
|
102
|
+
}).pipe(Effect.runPromise));
|
|
103
|
+
it('should clean up child processes when parent receives SIGINT', () => Effect.gen(function* () {
|
|
104
|
+
let workerPid;
|
|
105
|
+
const pool = yield* EffectWorker.makePoolSerialized({
|
|
106
|
+
size: 1,
|
|
107
|
+
initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
108
|
+
});
|
|
109
|
+
const result = yield* pool.executeEffect(new StartStubbornWorker({ blockDuration: 60_000 }));
|
|
110
|
+
workerPid = result.pid;
|
|
111
|
+
// Verify the worker is running
|
|
112
|
+
assert.strictEqual(isProcessRunning(workerPid), true, 'Worker process should be running');
|
|
113
|
+
// Simulate SIGINT being sent to current process (like Ctrl+C in vitest)
|
|
114
|
+
// This should trigger cleanup of child processes
|
|
115
|
+
yield* Effect.async((resume) => {
|
|
116
|
+
// Store current listeners before we manipulate them
|
|
117
|
+
const currentSIGINTListeners = process.listeners('SIGINT').slice();
|
|
118
|
+
// Set up our test handler
|
|
119
|
+
const testHandler = () => {
|
|
120
|
+
// Emit SIGINT to all current listeners to trigger cleanup
|
|
121
|
+
currentSIGINTListeners.forEach((listener) => {
|
|
122
|
+
try {
|
|
123
|
+
;
|
|
124
|
+
listener();
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Ignore errors
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
resume(Effect.void);
|
|
131
|
+
};
|
|
132
|
+
// Remove all current SIGINT listeners and add our test handler
|
|
133
|
+
process.removeAllListeners('SIGINT');
|
|
134
|
+
process.once('SIGINT', testHandler);
|
|
135
|
+
// Send SIGINT after a short delay
|
|
136
|
+
setTimeout(() => {
|
|
137
|
+
process.kill(process.pid, 'SIGINT');
|
|
138
|
+
}, 1000);
|
|
139
|
+
});
|
|
140
|
+
// Wait for cleanup to complete
|
|
141
|
+
yield* Effect.sleep('2 seconds');
|
|
142
|
+
// This test should initially fail - child process will still be running
|
|
143
|
+
if (workerPid) {
|
|
144
|
+
assert.strictEqual(isProcessRunning(workerPid), false, `Worker process ${workerPid} should be terminated after SIGINT`);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
assert.fail('Worker PID was not captured');
|
|
148
|
+
}
|
|
149
|
+
}).pipe(Effect.scoped, Effect.provide(WorkerLive), Effect.runPromise));
|
|
150
|
+
it('should clean up multiple concurrent child processes', () => Effect.gen(function* () {
|
|
151
|
+
let workerPids = [];
|
|
152
|
+
const testEffect = Effect.gen(function* () {
|
|
153
|
+
const pool = yield* EffectWorker.makePoolSerialized({
|
|
154
|
+
size: 3, // Multiple workers
|
|
155
|
+
initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
156
|
+
});
|
|
157
|
+
// Start multiple stubborn workers
|
|
158
|
+
const workers = yield* Effect.all([
|
|
159
|
+
pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
|
|
160
|
+
pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
|
|
161
|
+
pool.executeEffect(new StartStubbornWorker({ blockDuration: 30_000 })),
|
|
162
|
+
], { concurrency: 'unbounded' });
|
|
163
|
+
workerPids = workers.map((w) => w.pid);
|
|
164
|
+
// Verify all workers are running
|
|
165
|
+
for (const pid of workerPids) {
|
|
166
|
+
assert.strictEqual(isProcessRunning(pid), true, `Worker process ${pid} should be running`);
|
|
167
|
+
}
|
|
168
|
+
yield* Effect.sleep('30 seconds'); // Keep running until interrupted
|
|
169
|
+
}).pipe(Effect.scoped, Effect.provide(WorkerLive));
|
|
170
|
+
// Run with timeout to force termination
|
|
171
|
+
const fiber = yield* Effect.fork(testEffect);
|
|
172
|
+
yield* Effect.sleep('2 seconds');
|
|
173
|
+
yield* Fiber.interrupt(fiber);
|
|
174
|
+
// Wait for cleanup
|
|
175
|
+
yield* Effect.sleep('2 seconds');
|
|
176
|
+
// All worker processes should be cleaned up
|
|
177
|
+
for (const pid of workerPids) {
|
|
178
|
+
assert.strictEqual(isProcessRunning(pid), false, `Worker process ${pid} should be terminated after pool cleanup`);
|
|
179
|
+
}
|
|
180
|
+
}).pipe(Effect.runPromise));
|
|
181
|
+
it('should handle direct ChildProcess.fork cleanup (node-sync pattern)', () => Effect.gen(function* () {
|
|
182
|
+
let childPid;
|
|
183
|
+
// This mimics the exact pattern used in node-sync tests
|
|
184
|
+
const nodeChildProcess = ChildProcess.fork(new URL('../../../../dist/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.js', import.meta.url), ['test-client']);
|
|
185
|
+
childPid = nodeChildProcess.pid;
|
|
186
|
+
const testEffect = Effect.gen(function* () {
|
|
187
|
+
const worker = yield* EffectWorker.makePoolSerialized({
|
|
188
|
+
size: 1,
|
|
189
|
+
concurrency: 100,
|
|
190
|
+
initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
191
|
+
}).pipe(Effect.provide(ChildProcessWorker.layer(() => nodeChildProcess)));
|
|
192
|
+
// Start stubborn worker
|
|
193
|
+
yield* worker.executeEffect(new StartStubbornWorker({ blockDuration: 60_000 }));
|
|
194
|
+
// Verify process is running
|
|
195
|
+
if (childPid) {
|
|
196
|
+
assert.strictEqual(isProcessRunning(childPid), true, 'Child process should be running');
|
|
197
|
+
}
|
|
198
|
+
// Keep running until interrupted
|
|
199
|
+
yield* Effect.sleep('30 seconds');
|
|
200
|
+
}).pipe(Effect.scoped);
|
|
201
|
+
// Simulate the exact abortion pattern from node-sync
|
|
202
|
+
const fiber = yield* Effect.fork(testEffect);
|
|
203
|
+
yield* Effect.sleep('2 seconds');
|
|
204
|
+
// Force kill the fiber without proper cleanup (simulates Ctrl+C)
|
|
205
|
+
yield* Fiber.interrupt(fiber);
|
|
206
|
+
// Wait for cleanup
|
|
207
|
+
yield* Effect.sleep('3 seconds');
|
|
208
|
+
// This test should initially fail - demonstrating the zombie process issue
|
|
209
|
+
if (childPid) {
|
|
210
|
+
assert.strictEqual(isProcessRunning(childPid), false, `Child process ${childPid} should be terminated after forced interruption`);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
assert.fail('Child PID was not captured');
|
|
214
|
+
}
|
|
215
|
+
}).pipe(Effect.runPromise));
|
|
216
|
+
});
|
|
38
217
|
});
|
|
39
218
|
//# sourceMappingURL=ChildProcessRunner.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessRunner.test.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChildProcessRunner.test.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/ChildProcessRunner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,11 +28,11 @@ declare const Person_base: Schema.Class<Person, {
|
|
|
28
28
|
name: typeof Schema.String;
|
|
29
29
|
data: typeof Schema.Uint8Array;
|
|
30
30
|
}>, never, {
|
|
31
|
-
readonly data: Uint8Array<ArrayBufferLike>;
|
|
32
|
-
} & {
|
|
33
31
|
readonly id: number;
|
|
34
32
|
} & {
|
|
35
33
|
readonly name: string;
|
|
34
|
+
} & {
|
|
35
|
+
readonly data: Uint8Array<ArrayBufferLike>;
|
|
36
36
|
}, {}, {}>;
|
|
37
37
|
export declare class Person extends Person_base {
|
|
38
38
|
}
|
|
@@ -48,6 +48,15 @@ declare const RunnerInterrupt_base: Schema.TaggedRequestClass<RunnerInterrupt, "
|
|
|
48
48
|
}, typeof Schema.Void, typeof Schema.Never>;
|
|
49
49
|
export declare class RunnerInterrupt extends RunnerInterrupt_base {
|
|
50
50
|
}
|
|
51
|
+
declare const StartStubbornWorker_base: Schema.TaggedRequestClass<StartStubbornWorker, "StartStubbornWorker", {
|
|
52
|
+
readonly _tag: Schema.tag<"StartStubbornWorker">;
|
|
53
|
+
} & {
|
|
54
|
+
blockDuration: typeof Schema.Number;
|
|
55
|
+
}, Schema.Struct<{
|
|
56
|
+
pid: typeof Schema.Number;
|
|
57
|
+
}>, typeof Schema.Never>;
|
|
58
|
+
export declare class StartStubbornWorker extends StartStubbornWorker_base {
|
|
59
|
+
}
|
|
51
60
|
declare const InitialMessage_base: Schema.TaggedRequestClass<InitialMessage, "InitialMessage", {
|
|
52
61
|
readonly _tag: Schema.tag<"InitialMessage">;
|
|
53
62
|
} & {
|
|
@@ -69,7 +78,7 @@ declare const GetSpan_base: Schema.TaggedRequestClass<GetSpan, "GetSpan", {
|
|
|
69
78
|
}>, typeof Schema.Never>;
|
|
70
79
|
export declare class GetSpan extends GetSpan_base {
|
|
71
80
|
}
|
|
72
|
-
export declare const WorkerMessage: Schema.Union<[typeof GetUserById, typeof GetPersonById, typeof InitialMessage, typeof GetSpan, typeof RunnerInterrupt]>;
|
|
81
|
+
export declare const WorkerMessage: Schema.Union<[typeof GetUserById, typeof GetPersonById, typeof InitialMessage, typeof GetSpan, typeof RunnerInterrupt, typeof StartStubbornWorker]>;
|
|
73
82
|
export type WorkerMessage = Schema.Schema.Type<typeof WorkerMessage>;
|
|
74
83
|
export {};
|
|
75
84
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;;;;;;;AAEvC,qBAAa,IAAK,SAAQ,SAGxB;CAAG;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,MAAO,SAAQ,WAK1B;CAAG;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAMjC;CAAG;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAQlC;CAAG;;;;;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAc3B;CAAG;AAEL,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;;;;;;;AAEvC,qBAAa,IAAK,SAAQ,SAGxB;CAAG;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;;;;;;;;;;;;;;;;AAEL,qBAAa,MAAO,SAAQ,WAK1B;CAAG;;;;;;AAEL,qBAAa,aAAc,SAAQ,kBAMjC;CAAG;;;;AAEL,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;;;;;;;;AAEL,qBAAa,mBAAoB,SAAQ,wBAIvC;CAAG;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAQlC;CAAG;;;;;;;;;;;;AAEL,qBAAa,OAAQ,SAAQ,YAc3B;CAAG;AAEL,eAAO,MAAM,aAAa,qJAOzB,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,aAAa,CAAC,CAAA"}
|
|
@@ -34,6 +34,12 @@ export class RunnerInterrupt extends Schema.TaggedRequest()('RunnerInterrupt', {
|
|
|
34
34
|
payload: {},
|
|
35
35
|
}) {
|
|
36
36
|
}
|
|
37
|
+
export class StartStubbornWorker extends Schema.TaggedRequest()('StartStubbornWorker', {
|
|
38
|
+
failure: Schema.Never,
|
|
39
|
+
success: Schema.Struct({ pid: Schema.Number }),
|
|
40
|
+
payload: { blockDuration: Schema.Number },
|
|
41
|
+
}) {
|
|
42
|
+
}
|
|
37
43
|
export class InitialMessage extends Schema.TaggedRequest()('InitialMessage', {
|
|
38
44
|
failure: Schema.Never,
|
|
39
45
|
success: Schema.Void,
|
|
@@ -58,5 +64,5 @@ export class GetSpan extends Schema.TaggedRequest()('GetSpan', {
|
|
|
58
64
|
payload: {},
|
|
59
65
|
}) {
|
|
60
66
|
}
|
|
61
|
-
export const WorkerMessage = Schema.Union(GetUserById, GetPersonById, InitialMessage, GetSpan, RunnerInterrupt);
|
|
67
|
+
export const WorkerMessage = Schema.Union(GetUserById, GetPersonById, InitialMessage, GetSpan, RunnerInterrupt, StartStubbornWorker);
|
|
62
68
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,OAAO,IAAK,SAAQ,MAAM,CAAC,KAAK,CAAO,MAAM,CAAC,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC;CAAG;AAEL,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,aAAa,EAAe,CAAC,aAAa,EAAE;IAClF,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC,MAAM;KAClB;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,MAAO,SAAQ,MAAM,CAAC,KAAK,CAAS,QAAQ,CAAC,CAAC;IACzD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC,UAAU;CACxB,CAAC;CAAG;AAEL,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,aAAa,EAAiB,CAAC,eAAe,EAAE;IACxF,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC,MAAM;KAClB;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,aAAa,EAAmB,CAAC,iBAAiB,EAAE;IAC9F,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,IAAI;IACpB,OAAO,EAAE,EAAE;CACZ,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,aAAa,EAAkB,CAAC,gBAAgB,EAAE;IAC3F,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,IAAI;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,iCAAiC;KAClC;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,OAAQ,SAAQ,MAAM,CAAC,aAAa,EAAW,CAAC,SAAS,EAAE;IACtE,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,MAAM,CAAC,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CACH;KACF,CAAC;IACF,OAAO,EAAE,EAAE;CACZ,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/schema.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,OAAO,IAAK,SAAQ,MAAM,CAAC,KAAK,CAAO,MAAM,CAAC,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC;CAAG;AAEL,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,aAAa,EAAe,CAAC,aAAa,EAAE;IAClF,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC,MAAM;KAClB;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,MAAO,SAAQ,MAAM,CAAC,KAAK,CAAS,QAAQ,CAAC,CAAC;IACzD,EAAE,EAAE,MAAM,CAAC,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC,UAAU;CACxB,CAAC;CAAG;AAEL,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,aAAa,EAAiB,CAAC,eAAe,EAAE;IACxF,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC,MAAM;KAClB;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,aAAa,EAAmB,CAAC,iBAAiB,EAAE;IAC9F,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,IAAI;IACpB,OAAO,EAAE,EAAE;CACZ,CAAC;CAAG;AAEL,MAAM,OAAO,mBAAoB,SAAQ,MAAM,CAAC,aAAa,EAAuB,CAAC,qBAAqB,EAAE;IAC1G,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC9C,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;CAC1C,CAAC;CAAG;AAEL,MAAM,OAAO,cAAe,SAAQ,MAAM,CAAC,aAAa,EAAkB,CAAC,gBAAgB,EAAE;IAC3F,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,IAAI;IACpB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,IAAI,EAAE,MAAM,CAAC,UAAU;QACvB,iCAAiC;KAClC;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,OAAQ,SAAQ,MAAM,CAAC,aAAa,EAAW,CAAC,SAAS,EAAE;IACtE,OAAO,EAAE,MAAM,CAAC,KAAK;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,MAAM,CAAC,MAAM,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CACH;KACF,CAAC;IACF,OAAO,EAAE,EAAE;CACZ,CAAC;CAAG;AAEL,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CACvC,WAAW,EACX,aAAa,EACb,cAAc,EACd,OAAO,EACP,eAAe,EACf,mBAAmB,CACpB,CAAA"}
|
|
@@ -12,7 +12,7 @@ const WorkerLive = Runner.layerSerialized(WorkerMessage, {
|
|
|
12
12
|
GetUserById: (req) => Effect.map(Name, (name) => new User({ id: req.id, name })),
|
|
13
13
|
// InitialMessage: (req) => Layer.succeed(Name, req.name),
|
|
14
14
|
InitialMessage: (req) => Effect.gen(function* () {
|
|
15
|
-
yield* Effect.addFinalizer(() => Effect.log('closing worker scope'))
|
|
15
|
+
// yield* Effect.addFinalizer(() => Effect.log('closing worker scope'))
|
|
16
16
|
return Layer.succeed(Name, req.name);
|
|
17
17
|
}).pipe(Layer.unwrapScoped),
|
|
18
18
|
// InitialMessage: (req) =>
|
|
@@ -36,6 +36,16 @@ const WorkerLive = Runner.layerSerialized(WorkerMessage, {
|
|
|
36
36
|
};
|
|
37
37
|
}).pipe(Effect.withSpan('GetSpan')),
|
|
38
38
|
RunnerInterrupt: () => Effect.interrupt,
|
|
39
|
+
StartStubbornWorker: ({ blockDuration }) => Effect.gen(function* () {
|
|
40
|
+
// Start a blocking operation that won't respond to normal shutdown signals
|
|
41
|
+
const pid = process.pid;
|
|
42
|
+
yield* Effect.fork(Effect.gen(function* () {
|
|
43
|
+
// Block for the specified duration, ignoring shutdown attempts
|
|
44
|
+
yield* Effect.sleep(`${blockDuration} millis`);
|
|
45
|
+
yield* Effect.log('Stubborn worker finished blocking');
|
|
46
|
+
}).pipe(Effect.uninterruptible));
|
|
47
|
+
return { pid };
|
|
48
|
+
}),
|
|
39
49
|
}).pipe(Layer.provide(ChildProcessRunner.layer));
|
|
40
50
|
// }).pipe(Layer.provide(PlatformNode.NodeWorkerRunner.layer))
|
|
41
51
|
PlatformNode.NodeRuntime.runMain(Runner.launch(WorkerLive));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializedWorker.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/D,wEAAwE;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKzD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAe,MAAM,CAAC,CAAA;AAErD,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE;IACvD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;QACrB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACzE,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACzE,CAAA;IACH,CAAC;IACD,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,0DAA0D;IAC1D,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,
|
|
1
|
+
{"version":3,"file":"serializedWorker.js","sourceRoot":"","sources":["../../../../src/node/ChildProcessRunner/ChildProcessRunnerTest/serializedWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,21 @@ import * as Worker from '@effect/platform/Worker';
|
|
|
3
3
|
import * as Layer from 'effect/Layer';
|
|
4
4
|
export declare const layerWorker: Layer.Layer<Worker.PlatformWorker, never, never>;
|
|
5
5
|
export declare const layerManager: Layer.Layer<Worker.WorkerManager, never, never>;
|
|
6
|
+
/**
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import * as ChildProcess from 'node:child_process'
|
|
10
|
+
* import { Effect, Worker } from '@effect/platform/Worker'
|
|
11
|
+
* import { ChildProcessWorker } from '@livestore/utils/node'
|
|
12
|
+
*
|
|
13
|
+
* Worker.makePoolSerialized<WorkerMessage>({
|
|
14
|
+
* size: 1,
|
|
15
|
+
* initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
16
|
+
* }).pipe(
|
|
17
|
+
* Effect.provide(ChildProcessWorker.layer(() => ChildProcess.fork(new URL('worker.ts', import.meta.url)))),
|
|
18
|
+
* )
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
6
22
|
export declare const layer: (spawn: (id: number) => ChildProcess.ChildProcess) => Layer.Layer<Worker.Spawner | Worker.WorkerManager, never, never>;
|
|
7
23
|
//# sourceMappingURL=ChildProcessWorker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessWorker.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAKjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"ChildProcessWorker.d.ts","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,YAAY,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAKjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AA4IrC,eAAO,MAAM,WAAW,kDAA2D,CAAA;AAEnF,eAAO,MAAM,YAAY,iDAAkD,CAAA;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,CAAC,YAAY,qEACf,CAAA"}
|
|
@@ -5,16 +5,96 @@ import * as Effect from 'effect/Effect';
|
|
|
5
5
|
import * as Exit from 'effect/Exit';
|
|
6
6
|
import * as Layer from 'effect/Layer';
|
|
7
7
|
import * as Scope from 'effect/Scope';
|
|
8
|
+
// Track child processes for cleanup on process signals
|
|
9
|
+
const childProcesses = new Set();
|
|
10
|
+
// Force cleanup all tracked child processes
|
|
11
|
+
const forceCleanupChildren = (signal = 'SIGKILL') => {
|
|
12
|
+
for (const child of childProcesses) {
|
|
13
|
+
try {
|
|
14
|
+
if (!child.killed) {
|
|
15
|
+
child.kill(signal);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
// Ignore errors during cleanup
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
childProcesses.clear();
|
|
23
|
+
};
|
|
24
|
+
// Install signal handlers once to clean up all child processes
|
|
25
|
+
let signalHandlersInstalled = false;
|
|
26
|
+
const installSignalHandlers = () => {
|
|
27
|
+
if (signalHandlersInstalled)
|
|
28
|
+
return;
|
|
29
|
+
signalHandlersInstalled = true;
|
|
30
|
+
// Use 'beforeExit' instead of signal handlers since tests may interfere with signals
|
|
31
|
+
process.on('beforeExit', () => {
|
|
32
|
+
forceCleanupChildren('SIGKILL');
|
|
33
|
+
});
|
|
34
|
+
// Also try to cleanup on uncaught exceptions
|
|
35
|
+
process.on('uncaughtException', () => {
|
|
36
|
+
forceCleanupChildren('SIGKILL');
|
|
37
|
+
});
|
|
38
|
+
// Install signal handlers but make them more robust
|
|
39
|
+
const sigintHandler = () => {
|
|
40
|
+
forceCleanupChildren('SIGINT');
|
|
41
|
+
};
|
|
42
|
+
const sigtermHandler = () => {
|
|
43
|
+
forceCleanupChildren('SIGTERM');
|
|
44
|
+
};
|
|
45
|
+
const exitHandler = () => {
|
|
46
|
+
forceCleanupChildren('SIGKILL');
|
|
47
|
+
};
|
|
48
|
+
// Add handlers that will persist even if tests remove/add other handlers
|
|
49
|
+
process.prependListener('SIGINT', sigintHandler);
|
|
50
|
+
process.prependListener('SIGTERM', sigtermHandler);
|
|
51
|
+
process.prependListener('exit', exitHandler);
|
|
52
|
+
};
|
|
8
53
|
const platformWorkerImpl = Worker.makePlatform()({
|
|
9
54
|
setup({ scope, worker: childProcess }) {
|
|
10
55
|
return Effect.flatMap(Deferred.make(), (exitDeferred) => {
|
|
56
|
+
// Install signal handlers for process-wide cleanup
|
|
57
|
+
installSignalHandlers();
|
|
58
|
+
// Track this child process for cleanup
|
|
59
|
+
childProcesses.add(childProcess);
|
|
11
60
|
childProcess.on('exit', () => {
|
|
61
|
+
// Remove from tracking when process exits
|
|
62
|
+
childProcesses.delete(childProcess);
|
|
12
63
|
Deferred.unsafeDone(exitDeferred, Exit.void);
|
|
13
64
|
});
|
|
65
|
+
childProcess.send(['setup-parent-death-detection', { parentPid: process.pid }]);
|
|
14
66
|
return Effect.as(Scope.addFinalizer(scope, Effect.suspend(() => {
|
|
15
|
-
|
|
67
|
+
// Try graceful shutdown first
|
|
68
|
+
try {
|
|
69
|
+
childProcess.send([1]);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// IPC channel might be closed, proceed to forceful termination
|
|
73
|
+
}
|
|
16
74
|
return Deferred.await(exitDeferred);
|
|
17
|
-
}).pipe(Effect.timeout(
|
|
75
|
+
}).pipe(Effect.timeout(3000), // Reduced timeout for faster cleanup
|
|
76
|
+
Effect.interruptible, Effect.catchAllCause(() => Effect.sync(() => {
|
|
77
|
+
// Enhanced cleanup with escalating signals
|
|
78
|
+
if (!childProcess.killed) {
|
|
79
|
+
try {
|
|
80
|
+
// First try SIGTERM
|
|
81
|
+
childProcess.kill('SIGTERM');
|
|
82
|
+
// If still running after a short delay, use SIGKILL
|
|
83
|
+
setTimeout(() => {
|
|
84
|
+
if (!childProcess.killed) {
|
|
85
|
+
childProcess.kill('SIGKILL');
|
|
86
|
+
}
|
|
87
|
+
}, 1000);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Process might already be dead
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
// Ensure it's removed from tracking
|
|
94
|
+
childProcesses.delete(childProcess);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
})))), {
|
|
18
98
|
postMessage: (message) => childProcess.send(message),
|
|
19
99
|
on: (event, handler) => childProcess.on(event, handler),
|
|
20
100
|
});
|
|
@@ -38,5 +118,21 @@ const platformWorkerImpl = Worker.makePlatform()({
|
|
|
38
118
|
});
|
|
39
119
|
export const layerWorker = Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
|
|
40
120
|
export const layerManager = Layer.provide(Worker.layerManager, layerWorker);
|
|
121
|
+
/**
|
|
122
|
+
* @example
|
|
123
|
+
* ```ts
|
|
124
|
+
* import * as ChildProcess from 'node:child_process'
|
|
125
|
+
* import { Effect, Worker } from '@effect/platform/Worker'
|
|
126
|
+
* import { ChildProcessWorker } from '@livestore/utils/node'
|
|
127
|
+
*
|
|
128
|
+
* Worker.makePoolSerialized<WorkerMessage>({
|
|
129
|
+
* size: 1,
|
|
130
|
+
* initialMessage: () => new InitialMessage({ name: 'test', data: new Uint8Array([1, 2, 3]) }),
|
|
131
|
+
* }).pipe(
|
|
132
|
+
* Effect.provide(ChildProcessWorker.layer(() => ChildProcess.fork(new URL('worker.ts', import.meta.url)))),
|
|
133
|
+
* )
|
|
134
|
+
* ```
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
41
137
|
export const layer = (spawn) => Layer.merge(layerManager, Worker.layerSpawner(spawn));
|
|
42
138
|
//# sourceMappingURL=ChildProcessWorker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildProcessWorker.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAA6B,CAAC;IAC1E,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE;QACnC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAqB,EAAE,CAAC,YAAY,EAAE,EAAE;YACzE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC3B,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ChildProcessWorker.js","sourceRoot":"","sources":["../../../src/node/ChildProcessRunner/ChildProcessWorker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,uDAAuD;AACvD,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAA;AAE3D,4CAA4C;AAC5C,MAAM,oBAAoB,GAAG,CAAC,SAAyB,SAAS,EAAE,EAAE;IAClE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IACD,cAAc,CAAC,KAAK,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,+DAA+D;AAC/D,IAAI,uBAAuB,GAAG,KAAK,CAAA;AAEnC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACjC,IAAI,uBAAuB;QAAE,OAAM;IACnC,uBAAuB,GAAG,IAAI,CAAA;IAE9B,qFAAqF;IACrF,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QAC5B,oBAAoB,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACnC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,oDAAoD;IACpD,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,oBAAoB,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,oBAAoB,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,yEAAyE;IACzE,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAChD,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAClD,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAC9C,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAA6B,CAAC;IAC1E,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE;QACnC,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAqB,EAAE,CAAC,YAAY,EAAE,EAAE;YACzE,mDAAmD;YACnD,qBAAqB,EAAE,CAAA;YAEvB,uCAAuC;YACvC,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YAEhC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC3B,0CAA0C;gBAC1C,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBACnC,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;YAEF,YAAY,CAAC,IAAI,CAAC,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAE/E,OAAO,MAAM,CAAC,EAAE,CACd,KAAK,CAAC,YAAY,CAChB,KAAK,EACL,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClB,8BAA8B;gBAC9B,IAAI,CAAC;oBACH,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC;oBACP,+DAA+D;gBACjE,CAAC;gBAED,OAAO,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACrC,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,qCAAqC;YAC3D,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,CACxB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACf,2CAA2C;gBAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,oBAAoB;wBACpB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBAE5B,oDAAoD;wBACpD,UAAU,CAAC,GAAG,EAAE;4BACd,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gCACzB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;4BAC9B,CAAC;wBACH,CAAC,EAAE,IAAI,CAAC,CAAA;oBACV,CAAC;oBAAC,MAAM,CAAC;wBACP,gCAAgC;oBAClC,CAAC;4BAAS,CAAC;wBACT,oCAAoC;wBACpC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CACF,CACF,EACD;gBACE,WAAW,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzD,EAAE,EAAE,CAAC,KAAa,EAAE,OAA+B,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;aACxF,CACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;QAC7B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YAChC,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,QAAQ,CAAC,UAAU,CACjB,QAAQ,EACR,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,CAAC,CACrF,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;AAE3E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAgD,EAAE,EAAE,CACxE,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA"}
|
package/dist/node/mod.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export * as SocketServer from '@effect/platform/SocketServer';
|
|
|
5
5
|
export * as PlatformNode from '@effect/platform-node';
|
|
6
6
|
export * as ChildProcessRunner from './ChildProcessRunner/ChildProcessRunner.ts';
|
|
7
7
|
export * as ChildProcessWorker from './ChildProcessRunner/ChildProcessWorker.ts';
|
|
8
|
-
export declare const getFreePort: Effect.Effect<number, UnknownError
|
|
8
|
+
export declare const getFreePort: Effect.Effect<number, UnknownError>;
|
|
9
9
|
export declare const OtelLiveDummy: Layer.Layer<OtelTracer.OtelTracer>;
|
|
10
10
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/node/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAOhF,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAG7D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAOhF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAuB1D,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAQ3D,CAAA"}
|
package/dist/node/mod.js
CHANGED
|
@@ -27,8 +27,8 @@ export const getFreePort = Effect.async((cb, signal) => {
|
|
|
27
27
|
}
|
|
28
28
|
});
|
|
29
29
|
// Error handling in case the server encounters an error
|
|
30
|
-
server.on('error', (
|
|
31
|
-
server.close(() => cb(Effect.fail(new UnknownError({ cause:
|
|
30
|
+
server.on('error', (cause) => {
|
|
31
|
+
server.close(() => cb(Effect.fail(new UnknownError({ cause, payload: 'Failed to get a free port' }))));
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
34
|
export const OtelLiveDummy = Layer.suspend(() => {
|
package/dist/node/mod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAEhF,yCAAyC;AACzC,6EAA6E;AAE7E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/node/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAA;AAErD,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAChF,OAAO,KAAK,kBAAkB,MAAM,4CAA4C,CAAA;AAEhF,yCAAyC;AACzC,6EAA6E;AAE7E,6EAA6E;AAE7E,MAAM,CAAC,MAAM,WAAW,GAAwC,MAAM,CAAC,KAAK,CAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;IAChH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IAElC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,KAAK,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;QACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACxG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAuC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC,CAAA;IAE7E,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACvF,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,CACnC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA"}
|