FuncType - v1.21.0
    Preparing search index...

    Variable Layer

    Layer: {
        effect: <S extends unknown, E extends unknown>(
            tag: Tag<S>,
            f: () => Promise<S>,
        ) => Layer<never, E, S>;
        empty: () => Layer<never, never, never>;
        fromContext: <R extends unknown>(
            context: Context<R>,
        ) => Layer<never, never, R>;
        fromService: <Dep extends unknown, S extends unknown>(
            tag: Tag<S>,
            depTag: Tag<Dep>,
            f: (dep: Dep) => S,
        ) => Layer<Dep, never, S>;
        fromServiceEffect: <
            Dep extends unknown,
            E extends unknown,
            S extends unknown,
        >(
            tag: Tag<S>,
            depTag: Tag<Dep>,
            f: (dep: Dep) => Promise<S>,
        ) => Layer<Dep, E, S>;
        mergeAll: <Layers extends Layer<unknown, unknown, unknown>[]>(
            ...layers: Layers,
        ) => Layer<
            Layers[number] extends Layer<RIn, unknown, unknown> ? RIn : never,
            Layers[number] extends Layer<unknown, E, unknown> ? E : never,
            Layers[number] extends Layer<unknown, unknown, ROut> ? ROut : never,
        >;
        succeed: <S extends unknown>(
            tag: Tag<S>,
            service: S,
        ) => Layer<never, never, S>;
        sync: <S extends unknown>(
            tag: Tag<S>,
            f: () => S,
        ) => Layer<never, never, S>;
    }

    Layer companion object with construction methods

    Type Declaration

    • effect: <S extends unknown, E extends unknown>(
          tag: Tag<S>,
          f: () => Promise<S>,
      ) => Layer<never, E, S>

      Creates a layer from an async function.

    • empty: () => Layer<never, never, never>

      Creates an empty layer that provides nothing.

    • fromContext: <R extends unknown>(context: Context<R>) => Layer<never, never, R>

      Creates a layer from a context.

    • fromService: <Dep extends unknown, S extends unknown>(
          tag: Tag<S>,
          depTag: Tag<Dep>,
          f: (dep: Dep) => S,
      ) => Layer<Dep, never, S>

      Creates a layer that depends on another service.

    • fromServiceEffect: <Dep extends unknown, E extends unknown, S extends unknown>(
          tag: Tag<S>,
          depTag: Tag<Dep>,
          f: (dep: Dep) => Promise<S>,
      ) => Layer<Dep, E, S>

      Creates a layer that depends on another service (async).

    • mergeAll: <Layers extends Layer<unknown, unknown, unknown>[]>(
          ...layers: Layers,
      ) => Layer<
          Layers[number] extends Layer<RIn, unknown, unknown> ? RIn : never,
          Layers[number] extends Layer<unknown, E, unknown> ? E : never,
          Layers[number] extends Layer<unknown, unknown, ROut> ? ROut : never,
      >

      Merges multiple layers into one.

    • succeed: <S extends unknown>(tag: Tag<S>, service: S) => Layer<never, never, S>

      Creates a layer that provides a service with a constant value.

    • sync: <S extends unknown>(tag: Tag<S>, f: () => S) => Layer<never, never, S>

      Creates a layer from a sync function.