/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/sdk/js/src/process.ts
31 строка
1 KB
Luke Parker
fix(sdk): handle Windows opencode spawn and shutdown (#20772)
03 апр 2026, 06:18
Не верифицирован
03 апр 2026, 06:18
7b8dc80
Код
Авторство
О чём код?
import { type ChildProcess, spawnSync } from "node:child_process" // Duplicated from `packages/opencode/src/util/process.ts` because the SDK cannot // import `opencode` without creating a cycle (`opencode` depends on `@opencode-ai/sdk`). export function stop(proc: ChildProcess) { if (proc.exitCode !== null || proc.signalCode !== null) return if (process.platform === "win32" && proc.pid) { const out = spawnSync("taskkill", ["/pid", String(proc.pid), "/T", "/F"], { windowsHide: true }) if (!out.error && out.status === 0) return } proc.kill() } export function bindAbort(proc: ChildProcess, signal?: AbortSignal, onAbort?: () => void) { if (!signal) return () => {} const abort = () => { clear() stop(proc) onAbort?.() } const clear = () => { signal.removeEventListener("abort", abort) proc.off("exit", clear) proc.off("error", clear) } signal.addEventListener("abort", abort, { once: true }) proc.on("exit", clear) proc.on("error", clear) if (signal.aborted) abort() return clear }