import { LocalContext } from "@/util/local-context" import type { WorkspaceID } from "../control-plane/schema" export interface WorkspaceContext { workspaceID: WorkspaceID | undefined } const context = LocalContext.create("instance") export const WorkspaceContext = { async provide(input: { workspaceID?: WorkspaceID; fn: () => R }): Promise { return context.provide({ workspaceID: input.workspaceID }, () => input.fn()) }, restore(workspaceID: WorkspaceID, fn: () => R): R { return context.provide({ workspaceID }, fn) }, get workspaceID() { try { return context.use().workspaceID } catch { return undefined } }, }