diff options
| author | Dax Raad <[email protected]> | 2025-05-18 14:28:08 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-26 12:40:17 -0400 |
| commit | 49ad2efef6048f007af0036a8fe88b45c273ed34 (patch) | |
| tree | b083cf8724673a7458e3e4bd12905ee187c6c7b8 /js/src | |
| parent | 0e303e6508edb4374213d1f98ec383b266339774 (diff) | |
| download | opencode-49ad2efef6048f007af0036a8fe88b45c273ed34.tar.gz opencode-49ad2efef6048f007af0036a8fe88b45c273ed34.zip | |
sync
Diffstat (limited to 'js/src')
| -rw-r--r-- | js/src/app/index.ts | 1 | ||||
| -rw-r--r-- | js/src/server/server.ts | 15 | ||||
| -rw-r--r-- | js/src/util/log.ts | 29 |
3 files changed, 35 insertions, 10 deletions
diff --git a/js/src/app/index.ts b/js/src/app/index.ts index 7f5a44f30..472b39400 100644 --- a/js/src/app/index.ts +++ b/js/src/app/index.ts @@ -12,6 +12,7 @@ export namespace App { const ctx = Context.create<Info>("app"); export async function create(input: { directory: string }) { + Log.file(input.directory); log.info("creating"); const config = await Config.load(input.directory); diff --git a/js/src/server/server.ts b/js/src/server/server.ts index dd066c400..7ed67057c 100644 --- a/js/src/server/server.ts +++ b/js/src/server/server.ts @@ -11,10 +11,10 @@ export namespace Server { const log = Log.create({ service: "server" }); const PORT = 16713; - export type App = ReturnType<typeof listen>; + export type App = ReturnType<typeof app>; - export function listen() { - const app = new Hono() + function app() { + return new Hono() .get("/event", async (c) => { log.info("event connected"); return streamSSE(c, async (stream) => { @@ -51,14 +51,15 @@ export namespace Server { return c.json(msg); }, ); + } - Bun.serve({ + export function listen() { + const server = Bun.serve({ port: PORT, hostname: "0.0.0.0", idleTimeout: 0, - fetch: app.fetch, + fetch: app().fetch, }); - - return app; + return server; } } diff --git a/js/src/util/log.ts b/js/src/util/log.ts index 8f7157140..8ba0a15cf 100644 --- a/js/src/util/log.ts +++ b/js/src/util/log.ts @@ -1,4 +1,27 @@ +import fs from "node:fs"; +import path from "node:path"; +import { AppPath } from "../app/path"; export namespace Log { + const write = { + out: (msg: string) => { + process.stdout.write(msg); + }, + err: (msg: string) => { + process.stderr.write(msg); + }, + }; + + export function file(directory: string) { + const out = Bun.file( + path.join(AppPath.data(directory), "opencode.out.log"), + ); + const err = Bun.file( + path.join(AppPath.data(directory), "opencode.err.log"), + ); + write["out"] = (msg) => out.write(msg); + write["err"] = (msg) => err.write(msg); + } + export function create(tags?: Record<string, any>) { tags = tags || {}; @@ -9,14 +32,14 @@ export namespace Log { }) .map(([key, value]) => `${key}=${value}`) .join(" "); - return [prefix, message]; + return [prefix, message].join(" "); } const result = { info(message?: any, extra?: Record<string, any>) { - console.log(...build(message, extra)); + write.out(build(message, extra)); }, error(message?: any, extra?: Record<string, any>) { - console.error(...build(message, extra)); + write.err(build(message, extra)); }, tag(key: string, value: string) { if (tags) tags[key] = value; |
