From a34d020bc6b252e842f042d935c7a0e6444460cf Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 17 May 2025 21:31:42 -0400 Subject: sync --- js/src/config/config.ts | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 js/src/config/config.ts (limited to 'js/src/config') diff --git a/js/src/config/config.ts b/js/src/config/config.ts new file mode 100644 index 000000000..d76b1a842 --- /dev/null +++ b/js/src/config/config.ts @@ -0,0 +1,42 @@ +import path from "node:path"; +import { Log } from "../util/log"; +import { App } from "../app"; + +export namespace Config { + const log = Log.create({ service: "config" }); + + // TODO: this should be zod + export interface Info { + mcp: any; // TODO + lsp: any; // TODO + } + + function state() { + return App.service("config", async () => { + const app = await App.use(); + let result: Info = { + mcp: {}, + lsp: {}, + }; + for (const file of ["opencode.jsonc", "opencode.json"]) { + const resolved = path.join(app.root, file); + log.info("searching", { path: resolved }); + try { + result = await import(path.join(app.root, file)).then( + (mod) => mod.default, + ); + log.info("found", { path: resolved }); + break; + } catch (e) { + continue; + } + } + log.info("loaded", result); + return result; + }); + } + + function get() { + return state(); + } +} -- cgit v1.2.3