summaryrefslogtreecommitdiffhomepage
path: root/js/src/app
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-05-21 10:30:39 -0400
committerDax Raad <[email protected]>2025-05-26 12:40:17 -0400
commite01afb407c4b3eb50e85e7356b0be9489fb26eba (patch)
treed2aef91ec1894376c4d5a99ea2d11f6ad32b68de /js/src/app
parentf0f55bc75ff2bbc6690ae61c771a46de7c2bb17d (diff)
downloadopencode-e01afb407c4b3eb50e85e7356b0be9489fb26eba.tar.gz
opencode-e01afb407c4b3eb50e85e7356b0be9489fb26eba.zip
add tool tests
Diffstat (limited to 'js/src/app')
-rw-r--r--js/src/app/index.ts17
1 files changed, 12 insertions, 5 deletions
diff --git a/js/src/app/index.ts b/js/src/app/index.ts
index 8f0241392..f37888b89 100644
--- a/js/src/app/index.ts
+++ b/js/src/app/index.ts
@@ -11,15 +11,16 @@ export namespace App {
const ctx = Context.create<Info>("app");
- export async function create(input: { directory: string }) {
+ 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("creating");
const config = await Config.load(input.directory);
- const dataDir = AppPath.data(input.directory);
- await fs.mkdir(dataDir, { recursive: true });
log.info("created", { path: dataDir });
- Log.file(input.directory);
const services = new Map<any, any>();
@@ -55,5 +56,11 @@ export namespace App {
return ctx.use();
}
- export const provide = ctx.provide;
+ export async function provide<T extends (app: Info) => any>(
+ input: { directory: string },
+ cb: T,
+ ) {
+ const app = await create(input);
+ return ctx.provide(app, () => cb(app));
+ }
}