Skip to content

HttpServerRespondable.ts

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.

Since v4.0.0



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 const toResponse: (self: Respondable) => Effect.Effect<HttpServerResponse>

Source

Since v4.0.0

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 const toResponseOrElse: (u: unknown, orElse: HttpServerResponse) => Effect.Effect<HttpServerResponse>

Source

Since v4.0.0

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 const toResponseOrElseDefect: (u: unknown, orElse: HttpServerResponse) => Effect.Effect<HttpServerResponse>

Source

Since v4.0.0

Returns true when the supplied value implements the Respondable protocol.

Signature

declare const isRespondable: (u: unknown) => u is Respondable

Source

Since v4.0.0

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

export interface Respondable {
[symbol](): Effect.Effect<HttpServerResponse, unknown>
}

Source

Since v4.0.0

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

Signature

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

Source

Since v4.0.0