@beignet/core
Version:
Core framework primitives for Beignet
39 lines • 1.23 kB
TypeScript
import { type HttpContractConfig } from "../contracts/index.js";
import type { HttpRequestLike, HttpResponseLike } from "./http.js";
/**
* Request body limits enforced before contract body validation.
*/
export interface RequestBodyOptions {
/**
* Maximum request body size in bytes for JSON/text route bodies.
*
* @default 1048576
*/
maxBytes?: number;
}
export type PreparedRequestInputs = {
path: unknown;
query: unknown;
headers: unknown;
body: unknown;
rawHeaders: Record<string, string>;
};
export type RequestPreparationResult = {
ok: true;
inputs: PreparedRequestInputs;
} | {
ok: false;
response: HttpResponseLike;
};
export declare function requestHeadersToRecord(headers: Headers): Record<string, string>;
export declare function requestBodyLimit(options: RequestBodyOptions | undefined): number;
export declare function prepareRequestInputs(args: {
contract: HttpContractConfig;
req: HttpRequestLike;
url: URL;
rawHeaders: Record<string, string>;
matchedParams: Record<string, string>;
maxRequestBodyBytes: number;
rawRoute?: boolean;
}): Promise<RequestPreparationResult>;
//# sourceMappingURL=request-preparation.d.ts.map