diff options
| author | Kit Langton <[email protected]> | 2026-04-16 16:29:54 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-16 16:29:54 -0400 |
| commit | 9b77430d0d3bf84fa7784a093b783fad3d7ca824 (patch) | |
| tree | b49211ec4e5581a0aef2aeebcfcc62a149b33dd6 | |
| parent | 1045a43603436d2328dcdaccc9160bd945e8b765 (diff) | |
| download | opencode-9b77430d0d3bf84fa7784a093b783fad3d7ca824.tar.gz opencode-9b77430d0d3bf84fa7784a093b783fad3d7ca824.zip | |
refactor: collapse env barrel into env/index.ts (#22900)
| -rw-r--r-- | packages/opencode/src/env/env.ts | 35 | ||||
| -rw-r--r-- | packages/opencode/src/env/index.ts | 38 |
2 files changed, 37 insertions, 36 deletions
diff --git a/packages/opencode/src/env/env.ts b/packages/opencode/src/env/env.ts deleted file mode 100644 index 618ae3268..000000000 --- a/packages/opencode/src/env/env.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Context, Effect, Layer } from "effect" -import { InstanceState } from "@/effect" - -type State = Record<string, string | undefined> - -export interface Interface { - readonly get: (key: string) => Effect.Effect<string | undefined> - readonly all: () => Effect.Effect<State> - readonly set: (key: string, value: string) => Effect.Effect<void> - readonly remove: (key: string) => Effect.Effect<void> -} - -export class Service extends Context.Service<Service, Interface>()("@opencode/Env") {} - -export const layer = Layer.effect( - Service, - Effect.gen(function* () { - const state = yield* InstanceState.make<State>(Effect.fn("Env.state")(() => Effect.succeed({ ...process.env }))) - - const get = Effect.fn("Env.get")((key: string) => InstanceState.use(state, (env) => env[key])) - const all = Effect.fn("Env.all")(() => InstanceState.get(state)) - const set = Effect.fn("Env.set")(function* (key: string, value: string) { - const env = yield* InstanceState.get(state) - env[key] = value - }) - const remove = Effect.fn("Env.remove")(function* (key: string) { - const env = yield* InstanceState.get(state) - delete env[key] - }) - - return Service.of({ get, all, set, remove }) - }), -) - -export const defaultLayer = layer diff --git a/packages/opencode/src/env/index.ts b/packages/opencode/src/env/index.ts index c589edbfd..a53d96def 100644 --- a/packages/opencode/src/env/index.ts +++ b/packages/opencode/src/env/index.ts @@ -1 +1,37 @@ -export * as Env from "./env" +import { Context, Effect, Layer } from "effect" +import { InstanceState } from "@/effect" + +type State = Record<string, string | undefined> + +export interface Interface { + readonly get: (key: string) => Effect.Effect<string | undefined> + readonly all: () => Effect.Effect<State> + readonly set: (key: string, value: string) => Effect.Effect<void> + readonly remove: (key: string) => Effect.Effect<void> +} + +export class Service extends Context.Service<Service, Interface>()("@opencode/Env") {} + +export const layer = Layer.effect( + Service, + Effect.gen(function* () { + const state = yield* InstanceState.make<State>(Effect.fn("Env.state")(() => Effect.succeed({ ...process.env }))) + + const get = Effect.fn("Env.get")((key: string) => InstanceState.use(state, (env) => env[key])) + const all = Effect.fn("Env.all")(() => InstanceState.get(state)) + const set = Effect.fn("Env.set")(function* (key: string, value: string) { + const env = yield* InstanceState.get(state) + env[key] = value + }) + const remove = Effect.fn("Env.remove")(function* (key: string) { + const env = yield* InstanceState.get(state) + delete env[key] + }) + + return Service.of({ get, all, set, remove }) + }), +) + +export const defaultLayer = layer + +export * as Env from "." |
