ManagedRuntime
Guards
isManagedRuntime
Added in v3.9.0
Source
Signature
declare const isManagedRuntime: (input: unknown) => input is ManagedRuntime<unknown, unknown>;Models
ManagedRuntime interface
Added in v2.0.0
Source
Signature
interface ManagedRuntime<in R, out ER> extends Effect<Runtime.Runtime<R>, ER> { readonly [ignoreSymbol]?: ManagedRuntimeUnifyIgnore; readonly [TypeId]: typeof TypeId; readonly [typeSymbol]?: unknown; readonly [unifySymbol]?: ManagedRuntimeUnify<ManagedRuntime<R, ER>>; readonly dispose: () => Promise<void>; readonly disposeEffect: Effect<void, never, never>; readonly memoMap: MemoMap; readonly runCallback: <A, E>( effect: Effect<A, E, R>, options?: RunCallbackOptions<A, ER | E>, ) => Cancel<A, ER | E>; readonly runFork: <A, E>( self: Effect<A, E, R>, options?: RunForkOptions, ) => RuntimeFiber<A, ER | E>; readonly runPromise: <A, E>( effect: Effect<A, E, R>, options?: { readonly signal?: AbortSignal; }, ) => Promise<A>; readonly runPromiseExit: <A, E>( effect: Effect<A, E, R>, options?: { readonly signal?: AbortSignal; }, ) => Promise<Exit<A, ER | E>>; readonly runSync: <A, E>(effect: Effect<A, E, R>) => A; readonly runSyncExit: <A, E>(effect: Effect<A, E, R>) => Exit<A, ER | E>; readonly runtime: () => Promise<Runtime<R>>; readonly runtimeEffect: Effect<Runtime<R>, ER>;}ManagedRuntimeUnify interface
Added in v3.9.0
Source
Signature
interface ManagedRuntimeUnify< A extends { [typeSymbol]?: any; },> extends EffectUnify<A> { ManagedRuntime?: () => Extract<A[typeof typeSymbol], ManagedRuntime<any, any>>;}ManagedRuntimeUnifyIgnore interface
Added in v3.9.0
Source
Signature
interface ManagedRuntimeUnifyIgnore extends EffectUnifyIgnore { Effect?: true;}Other
ManagedRuntime
Added in v3.4.0
Source
Runtime Class
Convert a Layer into an ManagedRuntime, that can be used to run Effect's using your services.
Signature
declare const make: <R, E>( layer: Layer.Layer<R, E, never>, memoMap?: Layer.MemoMap,) => ManagedRuntime<R, E>;Example
import { Console, Effect, Layer, ManagedRuntime } from "effect"
class Notifications extends Effect.Tag("Notifications")< Notifications, { readonly notify: (message: string) => Effect.Effect<void> }>() { static Live = Layer.succeed(this, { notify: (message) => Console.log(message) })}
async function main() { const runtime = ManagedRuntime.make(Notifications.Live) await runtime.runPromise(Notifications.notify("Hello, world!")) await runtime.dispose()}
main()
Checks if the provided argument is a
ManagedRuntime.