/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/core/src/effect/runtime.ts
21 строка
1 KB
Dax
refactor(core): replace legacy logger with Effect logging (#31310)
08 июн 2026, 22:41
Не верифицирован
08 июн 2026, 22:41
c06ad7c
Код
Авторство
О чём код?
import { Layer, type Context, ManagedRuntime, type Effect } from "effect" import { memoMap } from "./memo-map" import { Observability } from "../observability" export function makeRuntime<I, S, E>(service: Context.Service<I, S>, layer: Layer.Layer<I, E>) { let rt: ManagedRuntime.ManagedRuntime<I, E> | undefined const getRuntime = () => (rt ??= ManagedRuntime.make(Layer.provideMerge(layer, Observability.layer) as Layer.Layer<I, E>, { memoMap, })) return { runSync: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runSync(service.use(fn)), runPromiseExit: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) => getRuntime().runPromiseExit(service.use(fn), options), runPromise: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>, options?: Effect.RunOptions) => getRuntime().runPromise(service.use(fn), options), runFork: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runFork(service.use(fn)), runCallback: <A, Err>(fn: (svc: S) => Effect.Effect<A, Err, I>) => getRuntime().runCallback(service.use(fn)), } }