From f3da73553c45f17e04b1e77cb13eb0fca714d1bd Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Fri, 30 May 2025 20:47:56 -0400 Subject: sync --- js/src/app/app.ts | 78 ------------------------------------------------------ js/src/app/path.ts | 11 -------- 2 files changed, 89 deletions(-) delete mode 100644 js/src/app/app.ts delete mode 100644 js/src/app/path.ts (limited to 'js/src/app') diff --git a/js/src/app/app.ts b/js/src/app/app.ts deleted file mode 100644 index 0c6260bc7..000000000 --- a/js/src/app/app.ts +++ /dev/null @@ -1,78 +0,0 @@ -import fs from "fs/promises"; -import { AppPath } from "./path"; -import { Log } from "../util/log"; -import { Context } from "../util/context"; - -export namespace App { - const log = Log.create({ service: "app" }); - - export type Info = Awaited>; - - const ctx = Context.create("app"); - - async function create(input: { directory: string }) { - const dataDir = AppPath.data(input.directory); - await fs.mkdir(dataDir, { recursive: true }); - await Log.file(input.directory); - - log.info("created", { path: dataDir }); - - const services = new Map< - any, - { - state: any; - shutdown?: (input: any) => Promise; - } - >(); - - const result = { - get services() { - return services; - }, - get root() { - return input.directory; - }, - }; - - return result; - } - - export function state( - key: any, - init: (app: Info) => State, - shutdown?: (state: Awaited) => Promise, - ) { - return () => { - const app = ctx.use(); - const services = app.services; - if (!services.has(key)) { - log.info("registering service", { name: key }); - services.set(key, { - state: init(app), - shutdown: shutdown, - }); - } - return services.get(key)?.state as State; - }; - } - - export async function use() { - return ctx.use(); - } - - export async function provide any>( - input: { directory: string }, - cb: T, - ) { - const app = await create(input); - - return ctx.provide(app, async () => { - const result = await cb(app); - for (const [key, entry] of app.services.entries()) { - log.info("shutdown", { name: key }); - await entry.shutdown?.(await entry.state); - } - return result; - }); - } -} diff --git a/js/src/app/path.ts b/js/src/app/path.ts deleted file mode 100644 index 972d18c41..000000000 --- a/js/src/app/path.ts +++ /dev/null @@ -1,11 +0,0 @@ -import path from "path"; - -export namespace AppPath { - export function data(input: string) { - return path.join(input, ".opencode"); - } - - export function storage(input: string) { - return path.join(data(input), "storage"); - } -} -- cgit v1.2.3