fix: close read line interfaces on spawn errors (#693)

This commit is contained in:
Nico 2026-03-21 20:46:22 +01:00 committed by GitHub
parent 3c9620f973
commit fa8e57a589
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -83,11 +83,12 @@ export function safeSpawn(params: SafeSpawnParams): Promise<SpawnResult> {
child.stderr.setEncoding("utf8");
const rlErr = createInterface({ input: child.stderr });
let rl: ReturnType<typeof createInterface> | undefined;
if (stdoutMode === "lines") {
child.stdout.setEncoding("utf8");
const rl = createInterface({ input: child.stdout });
rl = createInterface({ input: child.stdout });
rl.on("line", (line) => {
if (onStdout) onStdout(line);
@ -107,6 +108,9 @@ export function safeSpawn(params: SafeSpawnParams): Promise<SpawnResult> {
});
child.on("error", (err) => {
rlErr.close();
rl?.close();
resolve({
exitCode: -1,
summary: lastStdout,