| /** | |
| * Provides server-side access to the current incoming HTTP request. | |
| * | |
| * `HttpServerRequest` is the context service used by handlers, middleware, | |
| * schema decoders, multipart parsers, WebSocket upgrades, and adapters. A | |
| * request stores its method, URL, original URL, headers, cookies, remote | |
| * address, body stream, and platform source object. This module also includes | |
| * request conversions and schema decoders for cookies, headers, search | |
| * parameters, JSON, forms, URL-encoded bodies, and multipart bodies. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| import type * as Arr from "../../Array.ts"; | |
| import * as Channel from "../../Channel.ts"; | |
| import * as Context from "../../Context.ts"; | |
| import * as Effect from "../../Effect.ts"; | |
| import type * as FileSystem from "../../FileSystem.ts"; | |
| import * as Option from "../../Option.ts"; | |
| import type * as Path from "../../Path.ts"; | |
| import type { ReadonlyRecord } from "../../Record.ts"; | |
| import * as Result from "../../Result.ts"; | |
| import * as Schema from "../../Schema.ts"; | |
| import type { ParseOptions } from "../../SchemaAST.ts"; | |
| import type * as Scope from "../../Scope.ts"; | |
| import * as Stream from "../../Stream.ts"; | |
| import * as Socket from "../socket/Socket.ts"; | |
| import * as Headers from "./Headers.ts"; | |
| import * as HttpClientRequest from "./HttpClientRequest.ts"; | |
| import * as HttpIncomingMessage from "./HttpIncomingMessage.ts"; | |
| import { type HttpMethod } from "./HttpMethod.ts"; | |
| import { HttpServerError, type RequestError } from "./HttpServerError.ts"; | |
| import * as Multipart from "./Multipart.ts"; | |
| export { | |
| /** | |
| * Provides the `MaxBodySize` fiber reference for configuring request body limits. | |
| * | |
| * **When to use** | |
| * | |
| * Use to configure the maximum body size accepted while reading server | |
| * request bodies. | |
| * | |
| * @category fiber refs | |
| * @since 4.0.0 | |
| */ | |
| MaxBodySize } from "./HttpIncomingMessage.ts"; | |
| /** | |
| * Runtime type identifier for `HttpServerRequest` values. | |
| * | |
| * @category type IDs | |
| * @since 4.0.0 | |
| */ | |
| export declare const TypeId = "~effect/http/HttpServerRequest"; | |
| /** | |
| * Server-side representation of an incoming HTTP request. | |
| * | |
| * **Details** | |
| * | |
| * It extends `HttpIncomingMessage` with request metadata, parsed cookies, | |
| * multipart accessors, WebSocket upgrade support, and a `modify` method for | |
| * creating adjusted request views. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export interface HttpServerRequest extends HttpIncomingMessage.HttpIncomingMessage<HttpServerError> { | |
| readonly [TypeId]: typeof TypeId; | |
| readonly source: object; | |
| readonly url: string; | |
| readonly originalUrl: string; | |
| readonly method: HttpMethod; | |
| readonly cookies: ReadonlyRecord<string, string>; | |
| readonly multipart: Effect.Effect<Multipart.Persisted, Multipart.MultipartError, Scope.Scope | FileSystem.FileSystem | Path.Path>; | |
| readonly multipartStream: Stream.Stream<Multipart.Part, Multipart.MultipartError>; | |
| readonly upgrade: Effect.Effect<Socket.Socket, HttpServerError>; | |
| readonly modify: (options: { | |
| readonly url?: string; | |
| readonly headers?: Headers.Headers; | |
| readonly remoteAddress?: Option.Option<string>; | |
| }) => HttpServerRequest; | |
| } | |
| /** | |
| * Service tag for the active server-side HTTP request. | |
| * | |
| * **When to use** | |
| * | |
| * Use to access the request currently being handled by HTTP server routes and | |
| * middleware. | |
| * | |
| * @category context | |
| * @since 4.0.0 | |
| */ | |
| export declare const HttpServerRequest: Context.Service<HttpServerRequest, HttpServerRequest>; | |
| declare const ParsedSearchParams_base: Context.ServiceClass<ParsedSearchParams, "effect/http/ParsedSearchParams", ReadonlyRecord<string, string | string[]>>; | |
| /** | |
| * Service that contains decoded URL query parameters for the current request. | |
| * | |
| * **When to use** | |
| * | |
| * Use to access query parameters that have already been parsed for the current | |
| * server request. | |
| * | |
| * **Details** | |
| * | |
| * Each key maps to a string value, or to an array when the parameter appears more | |
| * than once. | |
| * | |
| * @category search params | |
| * @since 4.0.0 | |
| */ | |
| export declare class ParsedSearchParams extends ParsedSearchParams_base { | |
| } | |
| /** | |
| * Converts a `URL` object's search parameters into a record. | |
| * | |
| * **Details** | |
| * | |
| * Repeated parameters are represented as arrays in insertion order. | |
| * | |
| * @category search params | |
| * @since 4.0.0 | |
| */ | |
| export declare const searchParamsFromURL: (url: URL) => ReadonlyRecord<string, string | Array<string>>; | |
| /** | |
| * Creates a channel backed by the current request's upgraded socket. | |
| * | |
| * **Details** | |
| * | |
| * The channel reads incoming socket messages and writes byte chunks to the | |
| * socket, failing if the request cannot be upgraded or the socket fails. | |
| * | |
| * @category accessors | |
| * @since 4.0.0 | |
| */ | |
| export declare const upgradeChannel: <IE = never>() => Channel.Channel<Arr.NonEmptyReadonlyArray<Uint8Array>, HttpServerError | IE | Socket.SocketError, void, Arr.NonEmptyReadonlyArray<string | Uint8Array | Socket.CloseEvent>, IE, unknown, HttpServerRequest>; | |
| /** | |
| * Decodes a schema from the cookies of the current request. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaCookies: <A, I extends Readonly<Record<string, string | undefined>>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, Schema.SchemaError, RD | HttpServerRequest>; | |
| /** | |
| * Decodes a schema from the headers of the current request. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaHeaders: <A, I extends Readonly<Record<string, string | undefined>>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, Schema.SchemaError, HttpServerRequest | RD>; | |
| /** | |
| * Decodes a schema from the parsed search parameters of the current request. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaSearchParams: <A, I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, Schema.SchemaError, ParsedSearchParams | RD>; | |
| /** | |
| * Reads the current request body as JSON and decodes it with the supplied schema. | |
| * | |
| * **Details** | |
| * | |
| * The effect can fail if the body cannot be read or parsed, or if schema decoding | |
| * fails. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaBodyJson: <A, I, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, HttpServerError | Schema.SchemaError, HttpServerRequest | RD>; | |
| /** | |
| * Decodes the current request body as form data. | |
| * | |
| * **Details** | |
| * | |
| * Multipart requests are persisted and decoded as multipart data; other form | |
| * requests are decoded from URL-encoded body parameters. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaBodyForm: <A, I extends Partial<Multipart.Persisted>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, Schema.SchemaError | Multipart.MultipartError | HttpServerError, Scope.Scope | FileSystem.FileSystem | Path.Path | HttpServerRequest | RD>; | |
| /** | |
| * Reads the current request body as URL-encoded parameters and decodes them with | |
| * the supplied schema. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaBodyUrlParams: <A, I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, HttpServerError | Schema.SchemaError, HttpServerRequest | RD>; | |
| /** | |
| * Persists the current multipart request body and decodes it with the supplied | |
| * schema. | |
| * | |
| * **Details** | |
| * | |
| * The effect requires the services needed to persist multipart files, including a | |
| * scope, file system, and path service. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaBodyMultipart: <A, I extends Partial<Multipart.Persisted>, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => Effect.Effect<A, Multipart.MultipartError | Schema.SchemaError, HttpServerRequest | Scope.Scope | FileSystem.FileSystem | Path.Path | RD>; | |
| /** | |
| * Creates a decoder for a JSON value stored in a form field. | |
| * | |
| * **Details** | |
| * | |
| * For multipart requests, the named multipart field is decoded as JSON. For | |
| * URL-encoded requests, the named parameter is decoded as JSON and then decoded | |
| * with the supplied schema. | |
| * | |
| * @category schemas | |
| * @since 4.0.0 | |
| */ | |
| export declare const schemaBodyFormJson: <A, I, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined) => (field: string) => Effect.Effect<A, Schema.SchemaError | HttpServerError, Scope.Scope | FileSystem.FileSystem | Path.Path | HttpServerRequest | RD>; | |
| /** | |
| * Creates an `HttpServerRequest` view of an `HttpClientRequest`. | |
| * | |
| * **Details** | |
| * | |
| * If the client request can be converted to an absolute URL, that URL is used as | |
| * the original URL. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const fromClientRequest: (request: HttpClientRequest.HttpClientRequest) => HttpServerRequest; | |
| /** | |
| * Wraps a Web `Request` as an `HttpServerRequest`. | |
| * | |
| * **Details** | |
| * | |
| * The request's current URL is stored without the scheme and host, while the | |
| * original Web URL remains available as `originalUrl`. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const fromWeb: (request: globalThis.Request) => HttpServerRequest; | |
| /** | |
| * Converts an `HttpServerRequest` into an `HttpClientRequest`. | |
| * | |
| * **Details** | |
| * | |
| * The converted request preserves the method, headers, body stream, and a URL | |
| * derived from the request when possible. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const toClientRequest: (request: HttpServerRequest) => HttpClientRequest.HttpClientRequest; | |
| /** | |
| * Attempts to construct an absolute `URL` for a server request safely. | |
| * | |
| * **Details** | |
| * | |
| * The host comes from the `host` header, defaulting to `localhost`, and the | |
| * protocol is `https` only when `x-forwarded-proto` is `https`; invalid URLs | |
| * return `Option.none`. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const toURL: (self: HttpServerRequest) => Option.Option<URL>; | |
| /** | |
| * Converts an `HttpServerRequest` safely to a Web `Request` as a `Result`. | |
| * | |
| * **Details** | |
| * | |
| * If the source is already a Web `Request`, it is returned unchanged. Otherwise | |
| * an absolute URL is derived from the request; invalid URLs fail with a | |
| * `RequestParseError`. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const toWebResult: (self: HttpServerRequest, options?: { | |
| readonly signal?: AbortSignal | undefined; | |
| readonly context?: Context.Context<never> | undefined; | |
| }) => Result.Result<Request, RequestError>; | |
| /** | |
| * Converts an `HttpServerRequest` to a Web `Request` in `Effect`. | |
| * | |
| * **Details** | |
| * | |
| * The current context is used when streaming the request body into the Web | |
| * request. | |
| * | |
| * @category converting | |
| * @since 4.0.0 | |
| */ | |
| export declare const toWeb: (self: HttpServerRequest, options?: { | |
| readonly signal?: AbortSignal | undefined; | |
| }) => Effect.Effect<Request, RequestError>; | |
| //# sourceMappingURL=HttpServerRequest.d.ts.map |
Xet Storage Details
- Size:
- 11.1 kB
- Xet hash:
- de4ea59b17128ee3a5bdfc352594cd0a8d25eac7177497f42367227d504d20ac
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.