opencode_offline/packages/opencode/src/cli/bootstrap.ts

20 lines
532 B
TypeScript
Raw Normal View History

2025-06-27 23:29:20 +08:00
import { Format } from "../format"
2025-07-01 04:45:13 +08:00
import { LSP } from "../lsp"
2025-08-03 06:50:19 +08:00
import { Plugin } from "../plugin"
import { Instance } from "../project/instance"
2025-06-27 23:29:20 +08:00
import { Share } from "../share/share"
import { Snapshot } from "../snapshot"
2025-06-27 23:29:20 +08:00
export async function bootstrap<T>(directory: string, cb: () => Promise<T>) {
return Instance.provide(directory, async () => {
2025-08-21 23:22:13 +08:00
await Plugin.init()
2025-06-27 23:29:20 +08:00
Share.init()
Format.init()
2025-07-01 04:45:13 +08:00
LSP.init()
Snapshot.init()
const result = await cb()
await Instance.dispose()
return result
2025-06-27 23:29:20 +08:00
})
}