19 lines
497 B
TypeScript
19 lines
497 B
TypeScript
import { AppRuntime } from "@/effect/app-runtime"
|
|
import { InstanceBootstrap } from "../project/bootstrap"
|
|
import { Instance } from "../project/instance"
|
|
|
|
export async function bootstrap<T>(directory: string, cb: () => Promise<T>) {
|
|
return Instance.provide({
|
|
directory,
|
|
init: () => AppRuntime.runPromise(InstanceBootstrap),
|
|
fn: async () => {
|
|
try {
|
|
const result = await cb()
|
|
return result
|
|
} finally {
|
|
await Instance.dispose()
|
|
}
|
|
},
|
|
})
|
|
}
|