Compare commits

...

1 Commits

Author SHA1 Message Date
Kit Langton
0f618408fa feat: unwrap LocalContext namespace to flat exports + barrel 2026-04-15 22:46:10 -04:00
8 changed files with 26 additions and 27 deletions

View File

@@ -1,4 +1,4 @@
import { LocalContext } from "../util/local-context"
import { LocalContext } from "../util"
import type { WorkspaceID } from "../control-plane/schema"
export interface WorkspaceContext {

View File

@@ -1,7 +1,7 @@
import { Effect, Fiber } from "effect"
import { WorkspaceContext } from "@/control-plane/workspace-context"
import { Instance, type InstanceContext } from "@/project/instance"
import { LocalContext } from "@/util/local-context"
import { LocalContext } from "@/util"
import { InstanceRef, WorkspaceRef } from "./instance-ref"
import { attachWith } from "./run-service"

View File

@@ -1,7 +1,7 @@
import { Effect, Fiber, ScopedCache, Scope, Context } from "effect"
import { EffectLogger } from "@/effect/logger"
import { Instance, type InstanceContext } from "@/project/instance"
import { LocalContext } from "@/util/local-context"
import { LocalContext } from "@/util"
import { InstanceRef, WorkspaceRef } from "./instance-ref"
import { registerDisposer } from "./instance-registry"
import { WorkspaceContext } from "@/control-plane/workspace-context"

View File

@@ -1,7 +1,7 @@
import { Effect, Layer, ManagedRuntime } from "effect"
import * as Context from "effect/Context"
import { Instance } from "@/project/instance"
import { LocalContext } from "@/util/local-context"
import { LocalContext } from "@/util"
import { InstanceRef, WorkspaceRef } from "./instance-ref"
import { Observability } from "./observability"
import { WorkspaceContext } from "@/control-plane/workspace-context"

View File

@@ -4,7 +4,7 @@ import { makeRuntime } from "@/effect/run-service"
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
import { iife } from "@/util/iife"
import { Log } from "@/util/log"
import { LocalContext } from "../util/local-context"
import { LocalContext } from "../util"
import { Project } from "./project"
import { WorkspaceContext } from "@/control-plane/workspace-context"

View File

@@ -2,7 +2,7 @@ import { type SQLiteBunDatabase } from "drizzle-orm/bun-sqlite"
import { migrate } from "drizzle-orm/bun-sqlite/migrator"
import { type SQLiteTransaction } from "drizzle-orm/sqlite-core"
export * from "drizzle-orm"
import { LocalContext } from "../util/local-context"
import { LocalContext } from "../util"
import { lazy } from "../util/lazy"
import { Global } from "../global"
import { Log } from "../util/log"

View File

@@ -0,0 +1 @@
export * as LocalContext from "./local-context"

View File

@@ -1,25 +1,23 @@
import { AsyncLocalStorage } from "async_hooks"
export namespace LocalContext {
export class NotFound extends Error {
constructor(public override readonly name: string) {
super(`No context found for ${name}`)
}
}
export function create<T>(name: string) {
const storage = new AsyncLocalStorage<T>()
return {
use() {
const result = storage.getStore()
if (!result) {
throw new NotFound(name)
}
return result
},
provide<R>(value: T, fn: () => R) {
return storage.run(value, fn)
},
}
export class NotFound extends Error {
constructor(public override readonly name: string) {
super(`No context found for ${name}`)
}
}
export function create<T>(name: string) {
const storage = new AsyncLocalStorage<T>()
return {
use() {
const result = storage.getStore()
if (!result) {
throw new NotFound(name)
}
return result
},
provide<R>(value: T, fn: () => R) {
return storage.run(value, fn)
},
}
}