Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

HttpMultiplex

14 exports Since v1.0.0 Source

Combinators

Since v1.0.0

Signature

declare const add: {
<E2, R2, E3, R3>(predicate: (request: HttpServerRequest) => Effect<boolean, E2, R2>, app: Default<E3, R3>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E3 | E, R2 | R3 | R>;
<E, R, E2, R2, E3, R3>(self: HttpMultiplex<E, R>, predicate: (request: HttpServerRequest) => Effect<boolean, E2, R2>, app: Default<E3, R3>): HttpMultiplex<E | E2 | E3, R | R2 | R3>;
}

Signature

declare const headerEndsWith: {
<E2, R2>(header: string, suffix: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, header: string, suffix: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const headerExact: {
<E2, R2>(header: string, value: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, header: string, value: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const headerRegex: {
<E2, R2>(header: string, regex: RegExp, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, header: string, regex: RegExp, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const headerStartsWith: {
<E2, R2>(header: string, prefix: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, header: string, prefix: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const hostEndsWith: {
<E2, R2>(suffix: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, suffix: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const hostExact: {
<E2, R2>(host: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, host: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const hostRegex: {
<E2, R2>(regex: RegExp, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, regex: RegExp, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Signature

declare const hostStartsWith: {
<E2, R2>(prefix: string, app: Default<E2, R2>): <E, R>(self: HttpMultiplex<E, R>) => HttpMultiplex<E2 | E, R2 | R>;
<E, R, E2, R2>(self: HttpMultiplex<E, R>, prefix: string, app: Default<E2, R2>): HttpMultiplex<E | E2, R | R2>;
}

Constructors

Since v1.0.0

Signature

declare const empty: HttpMultiplex<never>
Since v1.0.0

Signature

declare const make: <E, R>(apps: Iterable<readonly [predicate: (request: ServerRequest.HttpServerRequest) => Effect.Effect<boolean, E, R>, app: App.Default<E, R>]>) => HttpMultiplex<E, R>

Models

HttpMultiplex

interface
Since v1.0.0

Signature

interface HttpMultiplex<E = never, R = never> extends Default<E | Error.RouteNotFound, R>, Inspectable {
readonly [TypeId]: typeof TypeId;
readonly apps: readonly Array<readonly [(request: HttpServerRequest) => Effect<boolean, E, R>, Default<E, R>]>;
}

Type Ids

Since v1.0.0

Signature

declare const TypeId: unique symbol
Since v1.0.0

Signature

type TypeId = typeof TypeId