summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/src/server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sdk/js/src/server.ts')
-rw-r--r--packages/sdk/js/src/server.ts26
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/sdk/js/src/server.ts b/packages/sdk/js/src/server.ts
new file mode 100644
index 000000000..edaa4cf63
--- /dev/null
+++ b/packages/sdk/js/src/server.ts
@@ -0,0 +1,26 @@
+import { spawn } from "node:child_process"
+
+export type ServerConfig = {
+ host?: string
+ port?: number
+}
+
+export async function createOpencodeServer(config?: ServerConfig) {
+ config = Object.assign(
+ {
+ host: "127.0.0.1",
+ port: 4096,
+ },
+ config ?? {},
+ )
+
+ const proc = spawn(`opencode`, [`serve`, `--host=${config.host}`, `--port=${config.port}`])
+ const url = `http://${config.host}:${config.port}`
+
+ return {
+ url,
+ close() {
+ proc.kill()
+ },
+ }
+}