Response
Response Headers
getResponseHeaders(event): Get the response headers
ts
export function getResponseHeaders(
event: HTTPEvent,
): ReturnType<HTTPEvent["res"]["getHeaders"]>;getResponseHeader(event, name): Get a response header by name
ts
export function getResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): ReturnType<HTTPEvent["res"]["getHeader"]>;setResponseHeaders(event, headers): Set the response headers
ts
export function setResponseHeaders(
event: HTTPEvent,
headers: Record<HTTPHeaderName, Parameters<OutgoingMessage["setHeader"]>[1]>,
): void;setResponseHeader(event, name, value): Set a response header by name
ts
export function setResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
value: Parameters<OutgoingMessage["setHeader"]>[1],
): void;appendResponseHeaders(event, headers): Append the response headers
ts
export function appendResponseHeaders(
event: HTTPEvent,
headers: Record<string, string>,
): void;appendResponseHeader(event, name, value): Append a response header by name
ts
export function appendResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
value: string,
): void;clearResponseHeaders(event, headerNames): Clear the response headers
ts
export function clearResponseHeaders(
event: HTTPEvent,
headerNames?: string[],
): void;removeResponseHeader(event, name): Remove a response header by name
ts
export function removeResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): void;writeEarlyHints(event, hints, cb): Write early hints
ts
export function writeEarlyHints(
event: HTTPEvent,
hints: string | string[] | Record<string, string | string[]>,
cb?: () => void,
): void;getRequestHeaders(event): Get the request headers
ts
export function getRequestHeaders(event: HTTPEvent): RequestHeaders;getRequestHeader(event, name): Get a request header by name
ts
export function getRequestHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): RequestHeaders[string];Middleware
defineMiddleware(options): Define middleware
ts
export function defineMiddleware(options: {
onRequest?:
| import("h3")._RequestMiddleware
| import("h3")._RequestMiddleware[];
onBeforeResponse?:
| import("h3")._ResponseMiddleware
| import("h3")._ResponseMiddleware[];
}): {
onRequest?:
| import("h3")._RequestMiddleware
| import("h3")._RequestMiddleware[]
| undefined;
onBeforeResponse?:
| import("h3")._ResponseMiddleware
| import("h3")._ResponseMiddleware[]
| undefined;
};Error
sendError(event, error, debug): Send an error
ts
export function sendError(event: HTTPEvent, error: any, debug?: any): void;createError({ statusCode, statusMessage, data }): Create an error
ts
export function createError({
statusCode,
statusMessage,
data,
}: {
statusCode?: number;
statusMessage?: string;
data?: any;
}): Error;Route
useBase(base, handler): Use a base
ts
export function useBase(base: string, handler: RequestHandler): RequestHandler;Proxy
sendProxy(event, options): Send a proxy
ts
export function sendProxy(
event: HTTPEvent,
options: {
target: string | URL;
[key: string]: any;
},
): Promise<void>;proxyRequest(event, options): Proxy a request
ts
export function proxyRequest(
event: HTTPEvent,
options: {
target: string | URL;
[key: string]: any;
},
): Promise<void>;Request
Get query
ts
function getQuery<
T,
Event extends H3Event<EventHandlerRequest> = H3Event<EventHandlerRequest>,
_T = Exclude<InferEventInput<'query', Event, T>, undefined>
>(
event: Event
) => _T;getValidatedQuery(event, validate)getRouterParams(event, { decode? })getRouterParam(event, name, { decode? })getValidatedRouterParams(event, validate, { decode? })getMethod(event, default?)isMethod(event, expected, allowHead?)assertMethod(event, expected, allowHead?)getRequestHeaders(event, headers)(alias:getHeaders)getRequestHeader(event, name)(alias:getHeader)getRequestURL(event)getRequestHost(event)getRequestProtocol(event)getRequestPath(event)getRequestIP(event, { xForwardedFor: boolean })
Response
send(event, data, type?)sendNoContent(event, code = 204)setResponseStatus(event, status)getResponseStatus(event)getResponseStatusText(event)getResponseHeaders(event)getResponseHeader(event, name)setResponseHeaders(event, headers)(alias:setHeaders)setResponseHeader(event, name, value)(alias:setHeader)appendResponseHeaders(event, headers)(alias:appendHeaders)appendResponseHeader(event, name, value)(alias:appendHeader)defaultContentType(event, type)sendRedirect(event, location, code=302)isStream(data)sendStream(event, data)writeEarlyHints(event, links, callback)
Sanitize
sanitizeStatusMessage(statusMessage)sanitizeStatusCode(statusCode, default = 200)
Error
sendError(event, error, debug?)createError({ statusCode, statusMessage, data? })
Route
useBase(base, handler)
Proxy
sendProxy(event, { target, ...options })proxyRequest(event, { target, ...options })fetchWithEvent(event, req, init, { fetch? }?)getProxyRequestHeaders(event)
Cookie
parseCookies(event)getCookie(event, name)setCookie(event, name, value, opts?)deleteCookie(event, name, opts?)splitCookiesString(cookiesString)
Session
useSession(event, config = { password, maxAge?, name?, cookie?, seal?, crypto? })getSession(event, config)updateSession(event, config, update)sealSession(event, config)unsealSession(event, config, sealed)clearSession(event, config)
Cache
handleCacheHeaders(event, opts)
Cors
handleCors(options)(see h3-cors for more detail about options)isPreflightRequest(event)isCorsOriginAllowed(event)appendCorsHeaders(event, options)(see h3-cors for more detail about options)appendCorsPreflightHeaders(event, options)(see h3-cors for more detail about options)
ts
/**
* Checks if the input is an HTTPEvent object.
* @param input - The input to check.
* @returns True if the input is an HTTPEvent object, false otherwise.
* @see HTTPEvent
*/
export function isHTTPEvent(input: any): input is HTTPEvent;
type SessionDataT = Record<string, any>;
type SessionUpdate<T extends SessionDataT = SessionDataT> =
| Partial<SessionData<T>>
| ((oldData: SessionData<T>) => Partial<SessionData<T>> | undefined);
/*****************************************************
* Read Body Utilities
*****************************************************/
/**
* Reads body of the request and returns encoded raw string (default), or `Buffer` if encoding is falsy.
* @param event {HTTPEvent} H3 event or req passed by h3 handler
* @param encoding {Encoding} encoding="utf-8" - The character encoding to use.
*
* @return {String|Buffer} Encoded raw string or raw Buffer of the body
*/
export function readRawBody<E extends Encoding = "utf8">(
event: HTTPEvent,
encoding?: E,
): E extends false ? Promise<Buffer | undefined> : Promise<string | undefined>;
export function readRawBody<E extends Encoding = "utf8">(
encoding?: E,
): E extends false ? Promise<Buffer | undefined> : Promise<string | undefined>;
/**
* Reads request body and tries to safely parse using [destr](https://github.com/unjs/destr).
* @param event H3 event passed by h3 handler
* @param encoding The character encoding to use, defaults to 'utf-8'.
*
* @return {*} The `Object`, `Array`, `String`, `Number`, `Boolean`, or `null` value corresponding to the request JSON body
*
* ```ts
* const body = await readBody(event)
* ```
*/
export function readBody<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"body", Event, T>,
>(
event: Event,
options?: {
strict?: boolean;
},
): Promise<_T>;
export function readBody<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"body", Event, T>,
>(
options?: {
strict?: boolean;
},
): Promise<_T>;
/**
* Tries to read the request body via `readBody`, then uses the provided validation function and either throws a validation error or returns the result.
* @param event The HTTPEvent passed by the handler.
* @param validate The function to use for body validation. It will be called passing the read request body. If the result is not false, the parsed body will be returned.
* @throws If the validation function returns `false` or throws, a validation error will be thrown.
* @return {*} The `Object`, `Array`, `String`, `Number`, `Boolean`, or `null` value corresponding to the request JSON body.
* @see {readBody}
*
* ```ts
* // With a custom validation function
* const body = await readValidatedBody(event, (body) => {
* return typeof body === "object" && body !== null
* })
*
* // With a zod schema
* import { z } from 'zod'
* const objectSchema = z.object()
* const body = await readValidatedBody(event, objectSchema.safeParse)
* ```
*/
export function readValidatedBody<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"body", Event, T>,
>(event: Event, validate: ValidateFunction<_T>): Promise<_T>;
export function readValidatedBody<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"body", Event, T>,
>(validate: ValidateFunction<_T>): Promise<_T>;
/**
* Tries to read and parse the body of a an HTTPEvent as multipart form.
* @param event The HTTPEvent object to read multipart form from.
*
* @return The parsed form data. If no form could be detected because the content type is not multipart/form-data or no boundary could be found.
*
* ```ts
* const formData = await readMultipartFormData(event)
* // The result could look like:
* // [
* // {
* // "data": "other",
* // "name": "baz",
* // },
* // {
* // "data": "something",
* // "name": "some-other-data",
* // },
* // ]
* ```
*/
export function readMultipartFormData(
event: HTTPEvent,
): Promise<MultiPartData[] | undefined>;
export function readMultipartFormData(): Promise<
MultiPartData[] | undefined
>;
/**
* Constructs a FormData object from an event, after converting it to a a web request.
* @param event The HTTPEvent object to read the form data from.
*
* ```ts
* const eventHandler = event => {
* const formData = await readFormData(event)
* const email = formData.get("email")
* const password = formData.get("password")
* }
* ```
*/
export function readFormData(event: HTTPEvent): Promise<FormData>;
export function readFormData(): Promise<FormData>;
/**
* Captures a stream from a request.
* @param event The HTTPEvent object containing the request information.
* @returns Undefined if the request can't transport a payload, otherwise a ReadableStream of the request body.
*/
export function getRequestWebStream(
event: HTTPEvent,
): undefined | ReadableStream;
export function getRequestWebStream(): undefined | ReadableStream;
/*****************************************************
* Request Info Utilities
*****************************************************/
export function getRequestHost(
event: HTTPEvent,
opts?: {
xForwardedHost?: boolean;
},
): string;
export function getRequestHost(
opts?: {
xForwardedHost?: boolean;
},
): string;
export function getRequestProtocol(
event: HTTPEvent,
opts?: {
xForwardedProto?: boolean;
},
): "https" | "http";
export function getRequestProtocol(): "https" | "http";
export function getRequestURL(
event: HTTPEvent,
opts?: {
xForwardedHost?: boolean;
xForwardedProto?: boolean;
},
): URL;
export function getRequestURL(
opts?: {
xForwardedHost?: boolean;
xForwardedProto?: boolean;
},
): URL;
export function getRequestIP(
event: HTTPEvent,
opts?: {
/**
* Use the X-Forwarded-For HTTP header set by proxies.
*
* Note: Make sure that this header can be trusted (your application running behind a CDN or reverse proxy) before enabling.
*/
xForwardedFor?: boolean;
},
): string | undefined;
export function getRequestIP(): string | undefined;
/*****************************************************
* Request Type Utilities
*****************************************************/
export function isPreflightRequest(event: HTTPEvent): boolean;
export function isPreflightRequest(): boolean;
/*****************************************************
* Web Request Utilities
*****************************************************/
export function getWebRequest(event: HTTPEvent): Request;
export function getWebRequest(): Request;
/*****************************************************
* Cookie Utilities
*****************************************************/
/**
* Parse the request to get HTTP Cookie header string and returning an object of all cookie name-value pairs.
* @param event {HTTPEvent} H3 event or req passed by h3 handler
* @returns Object of cookie name-value pairs
* ```ts
* const cookies = parseCookies(event)
* ```
*/
export function parseCookies(event: HTTPEvent): Record<string, string>;
export function parseCookies(): Record<string, string>;
/**
* Get a cookie value by name.
* @param event {HTTPEvent} H3 event or req passed by h3 handler
* @param name Name of the cookie to get
* @returns {*} Value of the cookie (String or undefined)
* ```ts
* const authorization = getCookie(request, 'Authorization')
* ```
*/
export function getCookie(event: HTTPEvent, name: string): string | undefined;
export function getCookie(name: string): string | undefined;
/**
* Set a cookie value by name.
* @param event {HTTPEvent} H3 event or res passed by h3 handler
* @param name Name of the cookie to set
* @param value Value of the cookie to set
* @param serializeOptions {CookieSerializeOptions} Options for serializing the cookie
* ```ts
* setCookie(res, 'Authorization', '1234567')
* ```
*/
export function setCookie(
event: HTTPEvent,
name: string,
value: string,
serializeOptions?: CookieSerializeOptions,
): void;
export function setCookie(
name: string,
value: string,
serializeOptions?: CookieSerializeOptions,
): void;
/**
* Remove a cookie by name.
* @param event {HTTPEvent} H3 event or res passed by h3 handler
* @param name Name of the cookie to delete
* @param serializeOptions {CookieSerializeOptions} Cookie options
* ```ts
* deleteCookie(res, 'SessionId')
* ```
*/
export function deleteCookie(
event: HTTPEvent,
name: string,
serializeOptions?: CookieSerializeOptions,
): void;
export function deleteCookie(
name: string,
serializeOptions?: CookieSerializeOptions,
): void;
/** @experimental Behavior of this utility might change in the future versions */
export function getRequestFingerprint(
event: HTTPEvent,
opts?: RequestFingerprintOptions,
): Promise<string | null>;
export function getRequestFingerprint(
opts?: RequestFingerprintOptions,
): Promise<string | null>;
/*****************************************************
* Fetch Utilities
*****************************************************/
export function fetchWithEvent<
T = unknown,
_R = any,
F extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch,
>(
event: HTTPEvent,
req: RequestInfo | URL,
init?: RequestInit & {
context?: H3EventContext;
},
options?: {
fetch: F;
},
): unknown extends T ? ReturnType<F> : T;
export function fetchWithEvent<
T = unknown,
_R = any,
F extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch,
>(
req: RequestInfo | URL,
init?: RequestInit & {
context?: H3EventContext;
},
options?: {
fetch: F;
},
): unknown extends T ? ReturnType<F> : T;
/*****************************************************
* Router Param Utilities
*****************************************************/
export function getRouterParams(
event: HTTPEvent,
opts?: {
decode?: boolean;
},
): NonNullable<HTTPEvent["context"]["params"]>;
export function getRouterParams(
opts?: {
decode?: boolean;
},
): NonNullable<HTTPEvent["context"]["params"]>;
export function getValidatedRouterParams<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"routerParams", Event, T>,
>(
event: Event,
validate: ValidateFunction<_T>,
opts?: {
decode?: boolean;
},
): Promise<_T>;
export function getValidatedRouterParams<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"routerParams", Event, T>,
>(
validate: ValidateFunction<_T>,
opts?: {
decode?: boolean;
},
): Promise<_T>;
export function getRouterParam(
event: HTTPEvent,
name: string,
opts?: {
decode?: boolean;
},
): string | undefined;
export function getRouterParam(
name: string,
opts?: {
decode?: boolean;
},
): string | undefined;
/*****************************************************
* Query Utilities
*****************************************************/
export function getQuery<
T,
Event extends HTTPEvent = HTTPEvent,
_T = Exclude<InferEventInput<"query", Event, T>, undefined>,
>(event: Event): _T;
export function getQuery<
T,
Event extends HTTPEvent = HTTPEvent,
_T = Exclude<InferEventInput<"query", Event, T>, undefined>,
>(): _T;
export function getValidatedQuery<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"query", Event, T>,
>(event: Event, validate: ValidateFunction<_T>): Promise<_T>;
export function getValidatedQuery<
T,
Event extends HTTPEvent = HTTPEvent,
_T = InferEventInput<"query", Event, T>,
>(validate: ValidateFunction<_T>): Promise<_T>;
/*****************************************************
* Session Utilities
*****************************************************/
export function clearSession(
event: HTTPEvent,
config: Partial<SessionConfig>,
): Promise<void>;
export function clearSession(config: Partial<SessionConfig>): Promise<void>;
export function unsealSession(
event: HTTPEvent,
config: SessionConfig,
sealed: string,
): Promise<Partial<Session<SessionDataT>>>;
export function unsealSession(
config: SessionConfig,
sealed: string,
): Promise<Partial<Session<SessionDataT>>>;
export function getSession<T extends SessionDataT = SessionDataT>(
event: HTTPEvent,
config: SessionConfig,
): Promise<Session<T>>;
export function getSession<T extends SessionDataT = SessionDataT>(
config: SessionConfig,
): Promise<Session<T>>;
export function sealSession(event: HTTPEvent, config: SessionConfig): void;
export function sealSession(config: SessionConfig): void;
export function updateSession<T extends SessionDataT = SessionDataT>(
event: HTTPEvent,
config: SessionConfig,
update?: SessionUpdate<T>,
): Promise<Session<T>>;
export function updateSession<T extends SessionDataT = SessionDataT>(
config: SessionConfig,
update?: SessionUpdate<T>,
): Promise<Session<T>>;
export function useSession<T extends SessionDataT = SessionDataT>(
event: HTTPEvent,
config: SessionConfig,
): Promise<{
readonly id: string | undefined;
readonly data: T;
update: (update: SessionUpdate<T>) => Promise<any>;
clear: () => Promise<any>;
}>;
export function useSession<T extends SessionDataT = SessionDataT>(
config: SessionConfig,
): Promise<{
readonly id: string | undefined;
readonly data: T;
update: (update: SessionUpdate<T>) => Promise<any>;
clear: () => Promise<any>;
}>;
/*****************************************************
* Header Utilities
*****************************************************/
export function getResponseHeaders(
event: HTTPEvent,
): ReturnType<HTTPEvent["res"]["getHeaders"]>;
export function getResponseHeaders(): ReturnType<HTTPEvent["res"]["getHeaders"]>;
export function getResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): ReturnType<HTTPEvent["res"]["getHeader"]>;
export function getResponseHeader(
name: HTTPHeaderName,
): ReturnType<HTTPEvent["res"]["getHeader"]>;
export function setResponseHeaders(
event: HTTPEvent,
headers: Record<HTTPHeaderName, Parameters<OutgoingMessage["setHeader"]>[1]>,
): void;
export function setResponseHeaders(
headers: Record<HTTPHeaderName, Parameters<OutgoingMessage["setHeader"]>[1]>,
): void;
export const setHeaders: typeof setResponseHeaders;
export function setResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
value: Parameters<OutgoingMessage["setHeader"]>[1],
): void;
export function setResponseHeader(
name: HTTPHeaderName,
value: Parameters<OutgoingMessage["setHeader"]>[1],
): void;
export const setHeader: typeof setResponseHeader;
export function appendResponseHeaders(
event: HTTPEvent,
headers: Record<string, string>,
): void;
export function appendResponseHeaders(headers: Record<string, string>): void;
export const appendHeaders: typeof appendResponseHeaders;
export function appendResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
value: string,
): void;
export function appendResponseHeader(
name: HTTPHeaderName,
value: string,
): void;
export const appendHeader: typeof appendResponseHeader;
/**
* Remove all response headers, or only those specified in the headerNames array.
* @param event H3 event
* @param headerNames Array of header names to remove
*/
export function clearResponseHeaders(
event: HTTPEvent,
headerNames?: string[],
): void;
export function clearResponseHeaders(headerNames?: string[]): void;
export function removeResponseHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): void;
export function removeResponseHeader(name: HTTPHeaderName): void;
export function writeEarlyHints(
event: HTTPEvent,
hints: string | string[] | Record<string, string | string[]>,
cb?: () => void,
): void;
export function writeEarlyHints(
hints: string | string[] | Record<string, string | string[]>,
cb?: () => void,
): void;
export function getRequestHeaders(event: HTTPEvent): RequestHeaders;
export function getRequestHeaders(): RequestHeaders;
export const getHeaders: typeof getRequestHeaders;
export function getRequestHeader(
event: HTTPEvent,
name: HTTPHeaderName,
): RequestHeaders[string];
export function getRequestHeader(name: HTTPHeaderName): RequestHeaders[string];
export const getHeader: typeof getRequestHeader;
/**
* Check request caching headers (`If-Modified-Since`) and add caching headers (Last-Modified, Cache-Control)
* Note: `public` cache control will be added by default
* @returns `true` when cache headers are matching. When `true` is returned, no reponse should be sent anymore
*/
export function handleCacheHeaders(
event: HTTPEvent,
opts: CacheConditions,
): boolean;
export function handleCacheHeaders(opts: CacheConditions): boolean;
/*****************************************************
* Middleware Utilities
*****************************************************/
export function defineMiddleware(options: {
onRequest?:
| import("h3")._RequestMiddleware
| import("h3")._RequestMiddleware[];
onBeforeResponse?:
| import("h3")._ResponseMiddleware
| import("h3")._ResponseMiddleware[];
}): {
onRequest?:
| import("h3")._RequestMiddleware
| import("h3")._RequestMiddleware[]
| undefined;
onBeforeResponse?:
| import("h3")._ResponseMiddleware
| import("h3")._ResponseMiddleware[]
| undefined;
};
/*****************************************************
* Async Local Storage Utilities
*****************************************************/
export function getEvent(): HTTPEvent;
/*****************************************************
* Context Utilities
*****************************************************/
export function getContext(event: HTTPEvent, key: string): any;
export function getContext(key: string): any;
export function setContext(event: HTTPEvent, key: string, value: any): any;
export function setContext(key: string, value: any): any;
/*****************************************************
* Proxy Utilities
*****************************************************/
export function proxyRequest(
event: HTTPEvent,
target: string,
opts?: ProxyOptions,
): Promise<any>;
export function proxyRequest(
target: string,
opts?: ProxyOptions,
): Promise<any>;
export function sendProxy(
event: HTTPEvent,
target: string,
opts?: ProxyOptions,
): Promise<any>;
export function sendProxy(target: string, opts?: ProxyOptions): Promise<any>;
export function getProxyRequestHeaders(event: HTTPEvent): any;
export function getProxyRequestHeaders(): any;
/*****************************************************
* CORS Utilities
*****************************************************/
export function appendCorsPreflightHeaders(
event: HTTPEvent,
options: H3CorsOptions,
): void;
export function appendCorsPreflightHeaders(options: H3CorsOptions): void;
export function appendCorsHeaders(
event: HTTPEvent,
options: H3CorsOptions,
): void;
export function appendCorsHeaders(options: H3CorsOptions): void;
export function handleCors(event: HTTPEvent, options: H3CorsOptions): void;
export function handleCors(options: H3CorsOptions): void;
/*****************************************************
* Send Response Utilities
*****************************************************/
export function send(event: HTTPEvent, data?: any, type?: string): Promise<void>;
export function send(data?: any, type?: string): Promise<void>;
/**
* Respond with an empty payload.<br>
* Note that calling this function will close the connection and no other data can be sent to the client afterwards.
*
* @param event H3 event
* @param code status code to be send. By default, it is `204 No Content`.
*/
export function sendNoContent(event: HTTPEvent, code?: number): void;
export function sendNoContent(code?: number): void;
export function setResponseStatus(
event: HTTPEvent,
code?: number,
text?: string,
): void;
export function setResponseStatus(code?: number, text?: string): void;
export function getResponseStatus(event: HTTPEvent): number;
export function getResponseStatus(): number;
export function getResponseStatusText(event: HTTPEvent): string;
export function getResponseStatusText(): string;
export function defaultContentType(event: HTTPEvent, type?: string): void;
export function defaultContentType(type?: string): void;
export function sendRedirect(
event: HTTPEvent,
location: string,
code?: number,
): Promise<void>;
export function sendRedirect(location: string, code?: number): Promise<void>;
export function sendStream(
event: HTTPEvent,
stream: Readable | ReadableStream,
): Promise<void>;
export function sendStream(stream: Readable | ReadableStream): Promise<void>;
export function sendWebResponse(
event: HTTPEvent,
response: Response,
): void | Promise<void>;
export function sendWebResponse(response: Response): void | Promise<void>;
/**
* Receives an error and returns the corresponding response.
* H3 internally uses this function to handle unhandled errors.
* Note that calling this function will close the connection and no other data will be sent to the client afterwards.
*
* @param event {HTTPEvent} - H3 event or req passed by h3 handler.
* @param error {Error | H3Error} - The raised error.
* @param debug {boolean} - Whether the application is in debug mode.
* In the debug mode, the stack trace of errors will be returned in the response.
*/
export function sendError(
event: HTTPEvent,
error: Error | H3Error,
debug?: boolean,
): void;
export function sendError(error: Error | H3Error, debug?: boolean): void;
/*****************************************************
* Method Utilities
*****************************************************/
export function isMethod(
event: HTTPEvent,
expected: HTTPMethod | HTTPMethod[],
allowHead?: boolean,
): boolean;
export function isMethod(
expected: HTTPMethod | HTTPMethod[],
allowHead?: boolean,
): boolean;
export function assertMethod(
event: HTTPEvent,
expected: HTTPMethod | HTTPMethod[],
allowHead?: boolean,
): void;
export function assertMethod(
expected: HTTPMethod | HTTPMethod[],
allowHead?: boolean,
): void;