FuncType - v0.45.0
    Preparing search index...

    Interface LayerType<RIn, E, ROut>

    A Layer describes how to build a service or set of services.

    // A layer that provides a Logger service
    const LoggerLive = Layer.succeed(Logger, consoleLogger)

    // A layer that requires Config and provides Database
    const DatabaseLive = Layer.fromFunction(Database, (config: Config) =>
    createDatabase(config.connectionString)
    )
    interface LayerType<RIn extends Type, E extends Type, ROut extends Type> {
        _E?: E;
        _ROut?: ROut;
        map<ROut2 extends unknown>(
            f: (ctx: ContextType<ROut>) => ContextType<ROut2>,
        ): LayerType<RIn, E, ROut2>;
        merge<RIn2 extends unknown, E2 extends unknown, ROut2 extends unknown>(
            that: LayerType<RIn2, E2, ROut2>,
        ): LayerType<RIn | RIn2, E | E2, ROut | ROut2>;
        provideToAndMerge<
            RIn2 extends unknown,
            E2 extends unknown,
            ROut2 extends unknown,
        >(
            that: LayerType<ROut | RIn2, E2, ROut2>,
        ): LayerType<RIn | Exclude<RIn2, ROut>, E | E2, ROut | ROut2>;
        toString(): string;
    }

    Type Parameters

    • RIn extends Type

      Required services (dependencies)

    • E extends Type

      Possible errors during construction

    • ROut extends Type

      Services provided by this layer

    Index

    Properties

    _E?: E
    _ROut?: ROut

    Methods

    • String representation

      Returns string