feat: emit job-state events from rpc

This commit is contained in:
Peter Steinberger
2025-12-09 00:18:14 +01:00
parent c77fa12bda
commit 594e837440
3 changed files with 87 additions and 5 deletions

View File

@@ -50,11 +50,18 @@ describe("control channel", () => {
const frame = { type: "request", id, method, params };
client.write(`${JSON.stringify(frame)}\n`);
const onData = (chunk: Buffer) => {
const line = chunk.toString("utf8").trim();
const parsed = JSON.parse(line) as { id?: string };
if (parsed.id === id) {
client.off("data", onData);
resolve(parsed as Record<string, unknown>);
const lines = chunk.toString("utf8").trim().split(/\n/);
for (const line of lines) {
try {
const parsed = JSON.parse(line) as { id?: string };
if (parsed.id === id) {
client.off("data", onData);
resolve(parsed as Record<string, unknown>);
return;
}
} catch {
/* ignore non-JSON noise */
}
}
};
client.on("data", onData);