42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import * as internal from "./internal/managedRuntime.js";
|
|
import * as circular from "./internal/managedRuntime/circular.js";
|
|
/**
|
|
* @since 3.9.0
|
|
* @category symbol
|
|
*/
|
|
export const TypeId = circular.TypeId;
|
|
/**
|
|
* Checks if the provided argument is a `ManagedRuntime`.
|
|
*
|
|
* @since 3.9.0
|
|
* @category guards
|
|
*/
|
|
export const isManagedRuntime = internal.isManagedRuntime;
|
|
/**
|
|
* Convert a Layer into an ManagedRuntime, that can be used to run Effect's using
|
|
* your services.
|
|
*
|
|
* @since 2.0.0
|
|
* @category runtime class
|
|
* @example
|
|
* ```ts
|
|
* 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()
|
|
* ```
|
|
*/
|
|
export const make = internal.make;
|
|
//# sourceMappingURL=ManagedRuntime.js.map
|