Skip to content

HttpServerRespondable

Converts supported values into HTTP server responses.

Server-side errors and helper values can implement Respondable when they know which status, headers, cookies, or body should be sent to the client. This module detects those values and converts them to HttpServerResponse values, with fallback handling for schema errors and missing values.

6 exports Added in v4.0.0 Source

Accessors

toResponse

Added in v4.0.0 Source

Converts a Respondable value into an HttpServerResponse.

Details

If the value is already an HTTP server response it is returned directly; errors from the response conversion are converted to defects.

Signature

declare function toResponse(self: Respondable): Effect<HttpServerResponse>;

Attempts to convert an unknown value into an HttpServerResponse, falling back to the supplied response when no conversion is available.

Details

HttpServerResponse and Respondable values are used directly, schema errors become 400 responses, and no-such-element errors become 404 responses.

Signature

declare function toResponseOrElse(
  u: unknown,
  orElse: HttpServerResponse,
): Effect<HttpServerResponse>;

Attempts to convert an unknown defect into an HttpServerResponse, falling back to the supplied response when no conversion is available.

Details

Only HttpServerResponse and Respondable values receive special handling.

Signature

declare function toResponseOrElseDefect(
  u: unknown,
  orElse: HttpServerResponse,
): Effect<HttpServerResponse>;

Guards

Returns true when the supplied value implements the Respondable protocol.

Signature

declare function isRespondable(u: unknown): u is Respondable;

Models

Respondable interface

Added in v4.0.0 Source

Protocol for values that can be converted into an HttpServerResponse.

Details

Implement the protocol method to describe the response that should be sent for the value.

Signature

interface Respondable {
  "~effect/http/HttpServerRespondable"(): Effect<HttpServerResponse, unknown>;
}

Type IDs

symbol

Added in v4.0.0 Source

Protocol key used by values that can render themselves as HttpServerResponse values.

Signature

declare const symbol: "~effect/http/HttpServerRespondable";