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

Function makeRuntime

packages/core/src/effect/runtime.ts:5–21  ·  view source on GitHub ↗
(service: Context.Service<I, S>, layer: Layer.Layer<I, E>)

Source from the content-addressed store, hash-verified

3import { Observability } from "../observability"
4
5export function makeRuntime<I, S, E>(service: Context.Service<I, S>, layer: Layer.Layer<I, E>) {
6 let rt: ManagedRuntime.ManagedRuntime<I, E> | undefined
7 const getRuntime = () =>
8 (rt ??= ManagedRuntime.make(Layer.provideMerge(layer, Observability.layer) as Layer.Layer<I, E>, {
9 memoMap,
10 }))
11
12 return {
13 runSync: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runSync(service.use(fn)),
14 runPromiseExit: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) =>
15 getRuntime().runPromiseExit(service.use(fn), options),
16 runPromise: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) =>
17 getRuntime().runPromise(service.use(fn), options),
18 runFork: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runFork(service.use(fn)),
19 runCallback: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runCallback(service.use(fn)),
20 }
21}

Callers 3

npm.tsFile · 0.90
index.tsFile · 0.90
tui.tsFile · 0.90

Calls 2

getRuntimeFunction · 0.70
useMethod · 0.45

Tested by

no test coverage detected