summaryrefslogtreecommitdiffhomepage
path: root/js/src
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-18 14:28:08 -0400
committerDax Raad <[email protected]>2025-05-26 12:40:17 -0400
commit49ad2efef6048f007af0036a8fe88b45c273ed34 (patch)
treeb083cf8724673a7458e3e4bd12905ee187c6c7b8 /js/src
parent0e303e6508edb4374213d1f98ec383b266339774 (diff)
downloadopencode-49ad2efef6048f007af0036a8fe88b45c273ed34.tar.gz
opencode-49ad2efef6048f007af0036a8fe88b45c273ed34.zip
sync
Diffstat (limited to 'js/src')
-rw-r--r--js/src/app/index.ts1
-rw-r--r--js/src/server/server.ts15
-rw-r--r--js/src/util/log.ts29
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;