From 273d70741fa1780fd5182f2672a24ab29121a4c8 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 16 Feb 2026 01:41:35 +0000 Subject: [PATCH] refactor(supervisor): share env normalization --- src/process/supervisor/adapters/child.ts | 15 +-------------- src/process/supervisor/adapters/env.ts | 13 +++++++++++++ src/process/supervisor/adapters/pty.ts | 15 +-------------- 3 files changed, 15 insertions(+), 28 deletions(-) create mode 100644 src/process/supervisor/adapters/env.ts diff --git a/src/process/supervisor/adapters/child.ts b/src/process/supervisor/adapters/child.ts index 6652e206b4..4bd5be0e06 100644 --- a/src/process/supervisor/adapters/child.ts +++ b/src/process/supervisor/adapters/child.ts @@ -2,6 +2,7 @@ import type { ChildProcessWithoutNullStreams, SpawnOptions } from "node:child_pr import type { ManagedRunStdin } from "../types.js"; import { killProcessTree } from "../../kill-tree.js"; import { spawnWithFallback } from "../../spawn-utils.js"; +import { toStringEnv } from "./env.js"; function resolveCommand(command: string): string { if (process.platform !== "win32") { @@ -18,20 +19,6 @@ function resolveCommand(command: string): string { return command; } -function toStringEnv(env?: NodeJS.ProcessEnv): Record { - if (!env) { - return {}; - } - const out: Record = {}; - for (const [key, value] of Object.entries(env)) { - if (value === undefined) { - continue; - } - out[key] = String(value); - } - return out; -} - export type ChildAdapter = { pid?: number; stdin?: ManagedRunStdin; diff --git a/src/process/supervisor/adapters/env.ts b/src/process/supervisor/adapters/env.ts new file mode 100644 index 0000000000..31be350eab --- /dev/null +++ b/src/process/supervisor/adapters/env.ts @@ -0,0 +1,13 @@ +export function toStringEnv(env?: NodeJS.ProcessEnv): Record { + if (!env) { + return {}; + } + const out: Record = {}; + for (const [key, value] of Object.entries(env)) { + if (value === undefined) { + continue; + } + out[key] = String(value); + } + return out; +} diff --git a/src/process/supervisor/adapters/pty.ts b/src/process/supervisor/adapters/pty.ts index 516238eefc..dca69f4a7b 100644 --- a/src/process/supervisor/adapters/pty.ts +++ b/src/process/supervisor/adapters/pty.ts @@ -1,5 +1,6 @@ import type { ManagedRunStdin } from "../types.js"; import { killProcessTree } from "../../kill-tree.js"; +import { toStringEnv } from "./env.js"; type PtyExitEvent = { exitCode: number; signal?: number }; type PtyDisposable = { dispose: () => void }; @@ -29,20 +30,6 @@ type PtyModule = { }; }; -function toStringEnv(env?: NodeJS.ProcessEnv): Record { - if (!env) { - return {}; - } - const out: Record = {}; - for (const [key, value] of Object.entries(env)) { - if (value === undefined) { - continue; - } - out[key] = String(value); - } - return out; -} - export type PtyAdapter = { pid?: number; stdin?: ManagedRunStdin;