MCPcopy Index your code
hub / github.com/anomalyco/opencode / make

Function make

packages/opencode/src/effect/bridge.ts:54–82  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

52 })
53
54export function make(): Effect.Effect<Shape> {
55 return Effect.gen(function* () {
56 const ctx = yield* Effect.context()
57 const captured = captureSync()
58 const instance = (yield* InstanceRef) ?? captured.instance
59 const workspace = (yield* WorkspaceRef) ?? captured.workspace
60 const wrap = <A, E, R>(effect: Effect.Effect<A, E, R>) =>
61 attachWith(effect.pipe(Effect.provide(ctx)) as Effect.Effect<A, E, never>, { instance, workspace })
62
63 return {
64 promise: <A, E, R>(effect: Effect.Effect<A, E, R>) =>
65 restoreWorkspace(workspace, () => Effect.runPromise(wrap(effect))),
66 fork: <A, E, R>(effect: Effect.Effect<A, E, R>) =>
67 restoreWorkspace(workspace, () => Effect.runFork(wrap(effect))),
68 run: <A, E, R>(effect: Effect.Effect<A, E, R>) =>
69 Effect.callback<A, E>((resume) => {
70 restoreWorkspace(workspace, () =>
71 Effect.runPromiseExit(wrap(effect)).then((exit) =>
72 resume(Exit.isSuccess(exit) ? Effect.succeed(exit.value) : Effect.failCause(exit.cause)),
73 ),
74 )
75 }),
76 bind:
77 <Args extends readonly unknown[], Result>(fn: (...args: Args) => Result) =>
78 (...args: Args) =>
79 restoreWorkspace(workspace, () => Effect.runSync(wrap(Effect.sync(() => fn(...args))))),
80 } satisfies Shape
81 })
82}
83
84export * as EffectBridge from "./bridge"

Callers

nothing calls this directly

Calls 8

captureSyncFunction · 0.85
restoreWorkspaceFunction · 0.85
resumeFunction · 0.85
contextMethod · 0.80
syncMethod · 0.80
wrapFunction · 0.70
fnFunction · 0.50
callbackMethod · 0.45

Tested by

no test coverage detected