diff --git a/packages/sdk/js/src/server.ts b/packages/sdk/js/src/server.ts index 174131ccfd5..d68330ac9d9 100644 --- a/packages/sdk/js/src/server.ts +++ b/packages/sdk/js/src/server.ts @@ -85,7 +85,11 @@ export async function createOpencodeServer(options?: ServerOptions) { return { url, close() { - proc.kill() + return new Promise((resolve) => { + proc.on("exit", () => resolve()) + if (proc.exitCode !== null) return resolve() + proc.kill() + }) }, } } diff --git a/packages/sdk/js/src/v2/server.ts b/packages/sdk/js/src/v2/server.ts index 174131ccfd5..d68330ac9d9 100644 --- a/packages/sdk/js/src/v2/server.ts +++ b/packages/sdk/js/src/v2/server.ts @@ -85,7 +85,11 @@ export async function createOpencodeServer(options?: ServerOptions) { return { url, close() { - proc.kill() + return new Promise((resolve) => { + proc.on("exit", () => resolve()) + if (proc.exitCode !== null) return resolve() + proc.kill() + }) }, } }