<Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(
tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>,
patch: ConfigPatch<
RunHyperlinkLayerConfig<
Schema.Schema.Type<I>,
Schema.Schema.Type<A>,
Schema.Schema.Type<E>,
never
>
>
): Layer.Layer<never>Config-patch layer for a tag — merge with layer (Tag path).
export const const configure: <
Self,
I extends Schema.Top,
A extends Schema.Top,
E extends Schema.Top
>(
tag: HyperlinkTag<
Self,
RunInstanceSpec<I, A, E>,
any
>,
patch: ConfigPatch<
RunHyperlinkLayerConfig<
Schema.Schema.Type<I>,
Schema.Schema.Type<A>,
Schema.Schema.Type<E>,
never
>
>
) => Layer.Layer<never>
Config-patch layer for a tag — merge with
layer
(Tag path).
configure = <function (type parameter) Self in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>Self, function (type parameter) I in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>I extends import SchemaSchema.Top, function (type parameter) A in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>A extends import SchemaSchema.Top, function (type parameter) E in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>E extends import SchemaSchema.Top>(
tag: HyperlinkTag<
Self,
RunInstanceSpec<I, A, E>,
any
>
tag: import HyperlinkTagHyperlinkTag<function (type parameter) Self in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>Self, import RunInstanceSpecRunInstanceSpec<function (type parameter) I in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>I, function (type parameter) A in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>A, function (type parameter) E in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>E>, any>,
patch: ConfigPatch<
RunHyperlinkLayerConfig<
Schema.Schema.Type<I>,
Schema.Schema.Type<A>,
Schema.Schema.Type<E>,
never
>
>
patch: import ConfigPatchConfigPatch<
interface RunHyperlinkLayerConfig<I, A, E, R>Layer / serve config — the tag carries wire schemas; this supplies the gated effect.
RunHyperlinkLayerConfig<import SchemaSchema.Schema.type Schema<out T>.Type<S> = S extends {
readonly Type: infer T;
} ? T : never
Extracts the decoded Type from a schema.
Example (Extracting the decoded type)
import { Schema } from "effect"
const Person = Schema.Struct({ name: Schema.String, age: Schema.Number })
type Person = Schema.Schema.Type<typeof Person>
// { readonly name: string; readonly age: number }
Type<function (type parameter) I in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>I>, import SchemaSchema.Schema.type Schema<out T>.Type<S> = S extends {
readonly Type: infer T;
} ? T : never
Extracts the decoded Type from a schema.
Example (Extracting the decoded type)
import { Schema } from "effect"
const Person = Schema.Struct({ name: Schema.String, age: Schema.Number })
type Person = Schema.Schema.Type<typeof Person>
// { readonly name: string; readonly age: number }
Type<function (type parameter) A in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>A>, import SchemaSchema.Schema.type Schema<out T>.Type<S> = S extends {
readonly Type: infer T;
} ? T : never
Extracts the decoded Type from a schema.
Example (Extracting the decoded type)
import { Schema } from "effect"
const Person = Schema.Struct({ name: Schema.String, age: Schema.Number })
type Person = Schema.Schema.Type<typeof Person>
// { readonly name: string; readonly age: number }
Type<function (type parameter) E in <Self, I extends Schema.Top, A extends Schema.Top, E extends Schema.Top>(tag: HyperlinkTag<Self, RunInstanceSpec<I, A, E>, any>, patch: ConfigPatch<RunHyperlinkLayerConfig<Schema.Schema.Type<I>, Schema.Schema.Type<A>, Schema.Schema.Type<E>, never>>): Layer.Layer<never>E>, never>
>,
): import LayerLayer.interface Layer<in ROut, out E = never, out RIn = never>A Layer describes how to build one or more services for dependency injection.
When to use
Use to model construction of application services for dependency injection,
especially when services have dependencies, can fail during construction, or
need scoped setup and release.
Details
A Layer<ROut, E, RIn> represents ROut as the services this layer
provides, E as the possible errors during layer construction, and RIn as
the services this layer requires as dependencies.
Layer<never> => import configureLayerconfigureLayer(tag: HyperlinkTag<
Self,
RunInstanceSpec<I, A, E>,
any
>
tag.key, patch: ConfigPatch<
RunHyperlinkLayerConfig<
Schema.Schema.Type<I>,
Schema.Schema.Type<A>,
Schema.Schema.Type<E>,
never
>
>
patch);