Skip to content

HttpMultiplex

14 exports Added in v1.0.0 Source

Combinators

add

Added in v1.0.0 Source

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>;
};

headerExact

Added in v1.0.0 Source

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>;
};

headerRegex

Added in v1.0.0 Source

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>;
};

hostEndsWith

Added in v1.0.0 Source

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>;
};

hostExact

Added in v1.0.0 Source

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>;
};

hostRegex

Added in v1.0.0 Source

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

empty

Added in v1.0.0 Source

Signature

declare const empty: HttpMultiplex<never>;

make

Added in v1.0.0 Source

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

Added in v1.0.0 Source

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

TypeId

Added in v1.0.0 Source

Signature

declare const TypeId: unique symbol;

TypeId type

Added in v1.0.0 Source

Signature

type TypeId = typeof TypeId;