diff --git a/src/adapters/node.ts b/src/adapters/node.ts index da950fdd..013326c6 100644 --- a/src/adapters/node.ts +++ b/src/adapters/node.ts @@ -14,16 +14,16 @@ export type { } from "node:http"; export type NodeListener = ( req: NodeIncomingMessage, - res: NodeServerResponse + res: NodeServerResponse, ) => void; export type NodePromisifiedHandler = ( req: NodeIncomingMessage, - res: NodeServerResponse + res: NodeServerResponse, ) => Promise; export type NodeMiddleware = ( req: NodeIncomingMessage, res: NodeServerResponse, - next: (err?: Error) => any + next: (err?: Error) => any, ) => any; export const defineNodeListener = (handler: NodeListener) => handler; @@ -31,7 +31,7 @@ export const defineNodeListener = (handler: NodeListener) => handler; export const defineNodeMiddleware = (middleware: NodeMiddleware) => middleware; export function fromNodeMiddleware( - handler: NodeListener | NodeMiddleware + handler: NodeListener | NodeMiddleware, ): EventHandler { if (isEventHandler(handler)) { return handler; @@ -39,14 +39,14 @@ export function fromNodeMiddleware( if (typeof handler !== "function") { throw new (TypeError as any)( "Invalid handler. It should be a function:", - handler + handler, ); } return eventHandler((event) => { return callNodeListener( handler, event.node.req as NodeIncomingMessage, - event.node.res + event.node.res, ) as EventHandlerResponse; }); } @@ -78,7 +78,7 @@ export function toNodeListener(app: App): NodeListener { } export function promisifyNodeListener( - handler: NodeListener | NodeMiddleware + handler: NodeListener | NodeMiddleware, ): NodePromisifiedHandler { return function (req: NodeIncomingMessage, res: NodeServerResponse) { return callNodeListener(handler, req, res); @@ -88,7 +88,7 @@ export function promisifyNodeListener( export function callNodeListener( handler: NodeMiddleware, req: NodeIncomingMessage, - res: NodeServerResponse + res: NodeServerResponse, ) { const isMiddleware = handler.length > 2; return new Promise((resolve, reject) => { diff --git a/src/adapters/plain.ts b/src/adapters/plain.ts index 410f95bf..384f6208 100644 --- a/src/adapters/plain.ts +++ b/src/adapters/plain.ts @@ -97,7 +97,7 @@ export async function _handlePlainRequest(app: App, request: PlainRequest) { } function _normalizeUnenvHeaders( - input: Record + input: Record, ) { const headers: [string, string][] = []; const cookies: string[] = []; @@ -107,7 +107,7 @@ function _normalizeUnenvHeaders( if (key === "set-cookie") { cookies.push( - ...splitCookiesString(input["set-cookie"] as string | string[]) + ...splitCookiesString(input["set-cookie"] as string | string[]), ); continue; } diff --git a/src/adapters/web.ts b/src/adapters/web.ts index a33f7bd6..fe0a4e21 100644 --- a/src/adapters/web.ts +++ b/src/adapters/web.ts @@ -3,7 +3,7 @@ import { _handlePlainRequest } from "./plain"; export type WebHandler = ( request: Request, - context?: Record + context?: Record, ) => Promise; /** @experimental */ @@ -20,7 +20,7 @@ export function toWebHandler(app: App) { async function _handleWebRequest( app: App, request: Request, - context?: Record + context?: Record, ) { const url = new URL(request.url); const res = await _handlePlainRequest(app, { diff --git a/src/app.ts b/src/app.ts index 5d4e58a9..19fa22fe 100644 --- a/src/app.ts +++ b/src/app.ts @@ -40,7 +40,7 @@ export interface AppUse { ( route: string | string[], handler: EventHandler | EventHandler[], - options?: Partial + options?: Partial, ): App; (handler: EventHandler | EventHandler[], options?: Partial): App; (options: InputLayer): App; @@ -52,11 +52,11 @@ export interface AppOptions { onRequest?: (event: H3Event) => void | Promise; onBeforeResponse?: ( event: H3Event, - response: { body?: unknown } + response: { body?: unknown }, ) => void | Promise; onAfterResponse?: ( event: H3Event, - response?: { body?: unknown } + response?: { body?: unknown }, ) => void | Promise; } @@ -84,7 +84,7 @@ export function use( app: App, arg1: string | EventHandler | InputLayer | InputLayer[], arg2?: Partial | EventHandler | EventHandler[], - arg3?: Partial + arg3?: Partial, ) { if (Array.isArray(arg1)) { for (const i of arg1) { @@ -96,11 +96,11 @@ export function use( } } else if (typeof arg1 === "string") { app.stack.push( - normalizeLayer({ ...arg3, route: arg1, handler: arg2 as EventHandler }) + normalizeLayer({ ...arg3, route: arg1, handler: arg2 as EventHandler }), ); } else if (typeof arg1 === "function") { app.stack.push( - normalizeLayer({ ...arg2, route: "/", handler: arg1 as EventHandler }) + normalizeLayer({ ...arg2, route: "/", handler: arg1 as EventHandler }), ); } else { app.stack.push(normalizeLayer({ ...arg1 })); diff --git a/src/error.ts b/src/error.ts index 9ed2728f..dfce5edc 100644 --- a/src/error.ts +++ b/src/error.ts @@ -64,7 +64,7 @@ export class H3Error extends Error { * @return {H3Error} - An instance of H3Error. */ export function createError( - input: string | (Partial & { status?: number; statusText?: string }) + input: string | (Partial & { status?: number; statusText?: string }), ): H3Error { if (typeof input === "string") { return new H3Error(input); @@ -112,7 +112,7 @@ export function createError( const sanitizedMessage = sanitizeStatusMessage(err.statusMessage); if (sanitizedMessage !== originalMessage) { console.warn( - "[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default." + "[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.", ); } } @@ -140,7 +140,7 @@ export function createError( export function sendError( event: H3Event, error: Error | H3Error, - debug?: boolean + debug?: boolean, ) { if (event.handled) { return; diff --git a/src/event/event.ts b/src/event/event.ts index 190ea98d..df1eda80 100644 --- a/src/event/event.ts +++ b/src/event/event.ts @@ -18,7 +18,7 @@ export interface NodeEventContext { export class H3Event< // eslint-disable-next-line @typescript-eslint/no-unused-vars - _RequestT extends EventHandlerRequest = EventHandlerRequest + _RequestT extends EventHandlerRequest = EventHandlerRequest, > implements Pick { "__is_event__" = true; @@ -131,7 +131,7 @@ export class H3Event< respondWith(response: Response | PromiseLike): Promise { return Promise.resolve(response).then((_response) => - sendWebResponse(this, _response) + sendWebResponse(this, _response), ); } } @@ -142,7 +142,7 @@ export function isEvent(input: any): input is H3Event { export function createEvent( req: NodeIncomingMessage, - res: NodeServerResponse + res: NodeServerResponse, ): H3Event { return new H3Event(req, res); } diff --git a/src/event/polyfills/headers.ts b/src/event/polyfills/headers.ts index d7cd3967..7a18681d 100644 --- a/src/event/polyfills/headers.ts +++ b/src/event/polyfills/headers.ts @@ -10,13 +10,13 @@ export class H3Headers implements Headers { this._headers = {}; } else if (Array.isArray(init)) { this._headers = Object.fromEntries( - init.map(([key, value]) => [key.toLowerCase(), value]) + init.map(([key, value]) => [key.toLowerCase(), value]), ); } else if (init && "append" in init) { this._headers = Object.fromEntries((init as any).entries()); } else { this._headers = Object.fromEntries( - Object.entries(init).map(([key, value]) => [key.toLowerCase(), value]) + Object.entries(init).map(([key, value]) => [key.toLowerCase(), value]), ); } } @@ -59,7 +59,7 @@ export class H3Headers implements Headers { } forEach( - callbackfn: (value: string, key: string, parent: Headers) => void + callbackfn: (value: string, key: string, parent: Headers) => void, ): void { for (const [key, value] of Object.entries(this._headers)) { callbackfn(value, key, this); diff --git a/src/event/polyfills/response.ts b/src/event/polyfills/response.ts index a638c5f2..2e366a71 100644 --- a/src/event/polyfills/response.ts +++ b/src/event/polyfills/response.ts @@ -21,7 +21,7 @@ export class H3Response implements Response { constructor( body: BodyInit | EventHandlerResponse | null = null, - init: ResponseInit = {} + init: ResponseInit = {}, ) { this.headers = new H3Headers(init.headers); this.status = init.status ?? 200; diff --git a/src/event/utils.ts b/src/event/utils.ts index 9b489ebd..30886384 100644 --- a/src/event/utils.ts +++ b/src/event/utils.ts @@ -7,25 +7,25 @@ import type { export function defineEventHandler< Request extends EventHandlerRequest = EventHandlerRequest, - Response = any + Response = any, >(handler: EventHandler): EventHandler; // TODO: remove when appropriate // This signature provides backwards compatibility with previous signature where first generic was return type export function defineEventHandler< Request = EventHandlerRequest, - Response = EventHandlerResponse + Response = EventHandlerResponse, >( handler: EventHandler< Request extends EventHandlerRequest ? Request : any, Request extends EventHandlerRequest ? Response : Request - > + >, ): EventHandler< Request extends EventHandlerRequest ? Request : any, Request extends EventHandlerRequest ? Response : Request >; export function defineEventHandler< Request extends EventHandlerRequest = EventHandlerRequest, - Response = EventHandlerResponse + Response = EventHandlerResponse, >(handler: EventHandler): EventHandler { handler.__is_handler__ = true; return handler; @@ -39,14 +39,14 @@ export function isEventHandler(input: any): input is EventHandler { export function toEventHandler( input: any, _?: any, - _route?: string + _route?: string, ): EventHandler { if (!isEventHandler(input)) { // eslint-disable-next-line no-console console.warn( "[h3] Implicit event handler conversion is deprecated. Use `eventHandler()` or `fromNodeMiddleware()` to define event handlers.", _route && _route !== "/" ? "\n" + ` Route: ${_route}` : "", - "\n" + ` Handler: ${input}` + "\n" + ` Handler: ${input}`, ); } return input; @@ -57,7 +57,7 @@ export interface DynamicEventHandler extends EventHandler { } export function dynamicEventHandler( - initial?: EventHandler + initial?: EventHandler, ): DynamicEventHandler { let current: EventHandler | undefined = initial; const wrapper = eventHandler((event) => { @@ -72,7 +72,7 @@ export function dynamicEventHandler( } export function defineLazyEventHandler( - factory: T + factory: T, ): Awaited> { let _promise: Promise; let _resolved: EventHandler; @@ -86,7 +86,7 @@ export function defineLazyEventHandler( if (typeof handler !== "function") { throw new (TypeError as any)( "Invalid lazy handler result. It should be a function:", - handler + handler, ); } _resolved = toEventHandler(r.default || r); diff --git a/src/router.ts b/src/router.ts index 37312be2..0d4b3a6f 100644 --- a/src/router.ts +++ b/src/router.ts @@ -24,7 +24,7 @@ const RouterMethods: RouterMethod[] = [ export type RouterUse = ( path: string, handler: EventHandler, - method?: RouterMethod | RouterMethod[] + method?: RouterMethod | RouterMethod[], ) => Router; export type AddRouteShortcuts = Record; @@ -56,7 +56,7 @@ export function createRouter(opts: CreateRouterOptions = {}): Router { const addRoute = ( path: string, handler: EventHandler, - method: RouterMethod | RouterMethod[] | "all" + method: RouterMethod | RouterMethod[] | "all", ) => { let route = routes[path]; if (!route) { diff --git a/src/types.ts b/src/types.ts index 542ca441..62022fc3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -51,12 +51,12 @@ export interface EventHandlerRequest { export type InferEventInput< Key extends keyof EventHandlerRequest, Event extends H3Event, - T + T, > = void extends T ? (Event extends H3Event ? E[Key] : never) : T; export interface EventHandler< Request extends EventHandlerRequest = EventHandlerRequest, - Response extends EventHandlerResponse = EventHandlerResponse + Response extends EventHandlerResponse = EventHandlerResponse, > { __is_handler__?: true; (event: H3Event): Response; diff --git a/src/utils/body.ts b/src/utils/body.ts index 2bdcf4f1..21b361fb 100644 --- a/src/utils/body.ts +++ b/src/utils/body.ts @@ -28,7 +28,7 @@ const PayloadMethods: HTTPMethod[] = ["PATCH", "POST", "PUT", "DELETE"]; */ export function readRawBody( event: H3Event, - encoding = "utf8" as E + encoding = "utf8" as E, ): E extends false ? Promise : Promise { // Ensure using correct HTTP method before attempt to read payload assertMethod(event, PayloadMethods); @@ -69,7 +69,7 @@ export function readRawBody( .on("end", () => { resolve(Buffer.concat(bodyData)); }); - } + }, )); const result = encoding @@ -95,7 +95,7 @@ export function readRawBody( export async function readBody< T, Event extends H3Event = H3Event, - _T = InferEventInput<"body", Event, T> + _T = InferEventInput<"body", Event, T>, >(event: Event, options: { strict?: boolean } = {}): Promise<_T> { const request = event.node.req as InternalRequest; if (ParsedBodySymbol in request) { @@ -125,7 +125,7 @@ export async function readBody< export async function readValidatedBody< T, Event extends H3Event = H3Event, - _T = InferEventInput<"body", Event, T> + _T = InferEventInput<"body", Event, T>, >(event: Event, validate: ValidateFunction<_T>): Promise<_T> { const _body = await readBody(event, { strict: true }); return validateData(_body, validate); diff --git a/src/utils/cache.ts b/src/utils/cache.ts index 34f788a7..a33baa12 100644 --- a/src/utils/cache.ts +++ b/src/utils/cache.ts @@ -14,7 +14,7 @@ export interface CacheConditions { */ export function handleCacheHeaders( event: H3Event, - opts: CacheConditions + opts: CacheConditions, ): boolean { const cacheControls = ["public", ...(opts.cacheControls || [])]; let cacheMatched = false; diff --git a/src/utils/cookie.ts b/src/utils/cookie.ts index 2d0db616..12273468 100644 --- a/src/utils/cookie.ts +++ b/src/utils/cookie.ts @@ -41,7 +41,7 @@ export function setCookie( event: H3Event, name: string, value: string, - serializeOptions?: CookieSerializeOptions + serializeOptions?: CookieSerializeOptions, ) { const cookieStr = serialize(name, value, { path: "/", @@ -69,7 +69,7 @@ export function setCookie( export function deleteCookie( event: H3Event, name: string, - serializeOptions?: CookieSerializeOptions + serializeOptions?: CookieSerializeOptions, ) { setCookie(event, name, "", { ...serializeOptions, diff --git a/src/utils/cors/utils.ts b/src/utils/cors/utils.ts index 1e15b2c3..b8316002 100644 --- a/src/utils/cors/utils.ts +++ b/src/utils/cors/utils.ts @@ -14,7 +14,7 @@ import type { } from "./types"; export function resolveCorsOptions( - options: H3CorsOptions = {} + options: H3CorsOptions = {}, ): H3ResolvedCorsOptions { const defaultOptions: H3ResolvedCorsOptions = { origin: "*", @@ -35,7 +35,7 @@ export function isPreflightRequest(event: H3Event): boolean { const origin = getRequestHeader(event, "origin"); const accessControlRequestMethod = getRequestHeader( event, - "access-control-request-method" + "access-control-request-method", ); return event.method === "OPTIONS" && !!origin && !!accessControlRequestMethod; @@ -43,7 +43,7 @@ export function isPreflightRequest(event: H3Event): boolean { export function isCorsOriginAllowed( origin: ReturnType["origin"], - options: H3CorsOptions + options: H3CorsOptions, ): boolean { const { origin: originOption } = options; @@ -71,7 +71,7 @@ export function isCorsOriginAllowed( export function createOriginHeaders( event: H3Event, - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlAllowOriginHeader { const { origin: originOption } = options; const origin = getRequestHeader(event, "origin"); @@ -90,7 +90,7 @@ export function createOriginHeaders( } export function createMethodsHeaders( - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlAllowMethodsHeader { const { methods } = options; @@ -108,7 +108,7 @@ export function createMethodsHeaders( } export function createCredentialsHeaders( - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlAllowCredentialsHeader { const { credentials } = options; @@ -121,7 +121,7 @@ export function createCredentialsHeaders( export function createAllowHeaderHeaders( event: H3Event, - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlAllowHeadersHeader { const { allowHeaders } = options; @@ -143,7 +143,7 @@ export function createAllowHeaderHeaders( } export function createExposeHeaders( - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlExposeHeadersHeader { const { exposeHeaders } = options; @@ -159,7 +159,7 @@ export function createExposeHeaders( } export function createMaxAgeHeader( - options: H3CorsOptions + options: H3CorsOptions, ): H3AccessControlMaxAgeHeader { const { maxAge } = options; @@ -174,7 +174,7 @@ export function createMaxAgeHeader( /* c8 ignore start */ export function appendCorsPreflightHeaders( event: H3Event, - options: H3CorsOptions + options: H3CorsOptions, ) { appendHeaders(event, createOriginHeaders(event, options)); appendHeaders(event, createCredentialsHeaders(options)); diff --git a/src/utils/internal/multipart.ts b/src/utils/internal/multipart.ts index fc3d5670..826003e8 100644 --- a/src/utils/internal/multipart.ts +++ b/src/utils/internal/multipart.ts @@ -48,7 +48,7 @@ enum ParsingState { export function parse( multipartBodyBuffer: Buffer, - boundary: string + boundary: string, ): MultiPartData[] { let lastline = ""; let state: ParsingState = ParsingState.INIT; diff --git a/src/utils/internal/validate.ts b/src/utils/internal/validate.ts index 52fc0990..6f78e143 100644 --- a/src/utils/internal/validate.ts +++ b/src/utils/internal/validate.ts @@ -6,12 +6,12 @@ import { createError } from "../../error"; export type ValidateResult = T | true | false | void; export type ValidateFunction = ( - data: unknown + data: unknown, ) => ValidateResult | Promise>; export async function validateData( data: unknown, - fn: ValidateFunction + fn: ValidateFunction, ): Promise { try { const res = await fn(data); diff --git a/src/utils/proxy.ts b/src/utils/proxy.ts index 87170ace..3a751b28 100644 --- a/src/utils/proxy.ts +++ b/src/utils/proxy.ts @@ -33,7 +33,7 @@ const ignoredHeaders = new Set([ export async function proxyRequest( event: H3Event, target: string, - opts: ProxyOptions = {} + opts: ProxyOptions = {}, ) { // Request Body let body; @@ -54,7 +54,7 @@ export async function proxyRequest( const fetchHeaders = mergeHeaders( getProxyRequestHeaders(event), opts.fetchOptions?.headers, - opts.headers + opts.headers, ); return sendProxy(event, target, { @@ -72,7 +72,7 @@ export async function proxyRequest( export async function sendProxy( event: H3Event, target: string, - opts: ProxyOptions = {} + opts: ProxyOptions = {}, ) { const response = await _getFetch(opts.fetch)(target, { headers: opts.headers as HeadersInit, @@ -81,7 +81,7 @@ export async function sendProxy( }); event.node.res.statusCode = sanitizeStatusCode( response.status, - event.node.res.statusCode + event.node.res.statusCode, ); event.node.res.statusMessage = sanitizeStatusMessage(response.statusText); @@ -109,18 +109,18 @@ export async function sendProxy( cookie = rewriteCookieProperty( cookie, opts.cookieDomainRewrite, - "domain" + "domain", ); } if (opts.cookiePathRewrite) { cookie = rewriteCookieProperty( cookie, opts.cookiePathRewrite, - "path" + "path", ); } return cookie; - }) + }), ); } @@ -168,12 +168,12 @@ export function fetchWithEvent< T = unknown, // eslint-disable-next-line @typescript-eslint/no-unused-vars _R = any, - F extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch + F extends (req: RequestInfo | URL, opts?: any) => any = typeof fetch, >( event: H3Event, req: RequestInfo | URL, init?: RequestInit & { context?: H3EventContext }, - options?: { fetch: F } + options?: { fetch: F }, ): unknown extends T ? ReturnType : T { return _getFetch(options?.fetch)(req, { ...init, @@ -195,14 +195,14 @@ function _getFetch(_fetch?: T) { return globalThis.fetch; } throw new Error( - "fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js." + "fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js.", ); } function rewriteCookieProperty( header: string, map: string | Record, - property: string + property: string, ) { const _map = typeof map === "string" ? { "*": map } : map; return header.replace( @@ -217,7 +217,7 @@ function rewriteCookieProperty( return match; } return newValue ? prefix + newValue : ""; - } + }, ); } diff --git a/src/utils/request.ts b/src/utils/request.ts index 89cb09e0..dcea8a39 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -7,7 +7,7 @@ import { validateData, ValidateFunction } from "./internal/validate"; export function getQuery< T, Event extends H3Event = H3Event, - _T = Exclude, undefined> + _T = Exclude, undefined>, >(event: Event): _T { return _getQuery(event.path || "") as _T; } @@ -15,14 +15,14 @@ export function getQuery< export function getValidatedQuery< T, Event extends H3Event = H3Event, - _T = InferEventInput<"query", Event, T> + _T = InferEventInput<"query", Event, T>, >(event: Event, validate: ValidateFunction<_T>): Promise<_T> { const query = getQuery(event); return validateData(query, validate); } export function getRouterParams( - event: H3Event + event: H3Event, ): NonNullable { // Fallback object needs to be returned in case router is not used (#149) return event.context.params || {}; @@ -30,7 +30,7 @@ export function getRouterParams( export function getRouterParam( event: H3Event, - name: string + name: string, ): string | undefined { const params = getRouterParams(event); @@ -42,7 +42,7 @@ export function getRouterParam( */ export function getMethod( event: H3Event, - defaultMethod: HTTPMethod = "GET" + defaultMethod: HTTPMethod = "GET", ): HTTPMethod { return (event.node.req.method || defaultMethod).toUpperCase() as HTTPMethod; } @@ -50,7 +50,7 @@ export function getMethod( export function isMethod( event: H3Event, expected: HTTPMethod | HTTPMethod[], - allowHead?: boolean + allowHead?: boolean, ) { if (allowHead && event.method === "HEAD") { return true; @@ -70,7 +70,7 @@ export function isMethod( export function assertMethod( event: H3Event, expected: HTTPMethod | HTTPMethod[], - allowHead?: boolean + allowHead?: boolean, ) { if (!isMethod(event, expected, allowHead)) { throw createError({ @@ -93,7 +93,7 @@ export const getHeaders = getRequestHeaders; export function getRequestHeader( event: H3Event, - name: string + name: string, ): RequestHeaders[string] { const headers = getRequestHeaders(event); const value = headers[name.toLowerCase()]; @@ -104,7 +104,7 @@ export const getHeader = getRequestHeader; export function getRequestHost( event: H3Event, - opts: { xForwardedHost?: boolean } = {} + opts: { xForwardedHost?: boolean } = {}, ) { if (opts.xForwardedHost) { const xForwardedHost = event.node.req.headers["x-forwarded-host"] as string; @@ -117,7 +117,7 @@ export function getRequestHost( export function getRequestProtocol( event: H3Event, - opts: { xForwardedProto?: boolean } = {} + opts: { xForwardedProto?: boolean } = {}, ) { if ( opts.xForwardedProto !== false && @@ -142,7 +142,7 @@ export function getRequestPath(event: H3Event): string { export function getRequestURL( event: H3Event, - opts: { xForwardedHost?: boolean; xForwardedProto?: boolean } = {} + opts: { xForwardedHost?: boolean; xForwardedProto?: boolean } = {}, ) { const host = getRequestHost(event, opts); const protocol = getRequestProtocol(event); diff --git a/src/utils/response.ts b/src/utils/response.ts index adb13044..b26b5ff7 100644 --- a/src/utils/response.ts +++ b/src/utils/response.ts @@ -44,12 +44,12 @@ export function sendNoContent(event: H3Event, code = 204) { export function setResponseStatus( event: H3Event, code?: number, - text?: string + text?: string, ): void { if (code) { event.node.res.statusCode = sanitizeStatusCode( code, - event.node.res.statusCode + event.node.res.statusCode, ); } if (text) { @@ -74,7 +74,7 @@ export function defaultContentType(event: H3Event, type?: string) { export function sendRedirect(event: H3Event, location: string, code = 302) { event.node.res.statusCode = sanitizeStatusCode( code, - event.node.res.statusCode + event.node.res.statusCode, ); event.node.res.setHeader("location", location); const encodedLoc = location.replace(/"/g, "%22"); @@ -83,21 +83,21 @@ export function sendRedirect(event: H3Event, location: string, code = 302) { } export function getResponseHeaders( - event: H3Event + event: H3Event, ): ReturnType { return event.node.res.getHeaders(); } export function getResponseHeader( event: H3Event, - name: string + name: string, ): ReturnType { return event.node.res.getHeader(name); } export function setResponseHeaders( event: H3Event, - headers: Record[1]> + headers: Record[1]>, ): void { for (const [name, value] of Object.entries(headers)) { event.node.res.setHeader(name, value); @@ -109,7 +109,7 @@ export const setHeaders = setResponseHeaders; export function setResponseHeader( event: H3Event, name: string, - value: Parameters[1] + value: Parameters[1], ): void { event.node.res.setHeader(name, value); } @@ -118,7 +118,7 @@ export const setHeader = setResponseHeader; export function appendResponseHeaders( event: H3Event, - headers: Record + headers: Record, ): void { for (const [name, value] of Object.entries(headers)) { appendResponseHeader(event, name, value); @@ -130,7 +130,7 @@ export const appendHeaders = appendResponseHeaders; export function appendResponseHeader( event: H3Event, name: string, - value: string + value: string, ): void { let current = event.node.res.getHeader(name); @@ -155,7 +155,7 @@ export const appendHeader = appendResponseHeader; */ export function clearResponseHeaders( event: H3Event, - headerNames?: string[] + headerNames?: string[], ): void { if (headerNames && headerNames.length > 0) { for (const name of headerNames) { @@ -193,7 +193,7 @@ export function isWebResponse(data: any): data is Response { export function sendStream( event: H3Event, - stream: Readable | ReadableStream + stream: Readable | ReadableStream, ): Promise { // Validate input if (!stream || typeof stream !== "object") { @@ -218,7 +218,7 @@ export function sendStream( write(chunk) { event.node.res.write(chunk); }, - }) + }), ) .then(() => { event.node.res.end(); @@ -247,7 +247,7 @@ const noop = () => {}; export function writeEarlyHints( event: H3Event, hints: string | string[] | Record, - cb: () => void = noop + cb: () => void = noop, ) { if (!event.node.res.socket /* && !('writeEarlyHints' in event.node.res) */) { cb(); @@ -271,7 +271,7 @@ export function writeEarlyHints( // } const headers: [string, string | string[]][] = Object.entries(hints).map( - (e) => [e[0].toLowerCase(), e[1]] + (e) => [e[0].toLowerCase(), e[1]], ); if (headers.length === 0) { cb(); @@ -293,7 +293,7 @@ export function writeEarlyHints( (event.node.res as { socket: Socket }).socket.write( `${hint}\r\n\r\n`, "utf8", - cb + cb, ); } else { cb(); @@ -302,7 +302,7 @@ export function writeEarlyHints( export function sendWebResponse( event: H3Event, - response: Response + response: Response, ): void | Promise { for (const [key, value] of response.headers) { if (key === "set-cookie") { @@ -315,7 +315,7 @@ export function sendWebResponse( if (response.status) { event.node.res.statusCode = sanitizeStatusCode( response.status, - event.node.res.statusCode + event.node.res.statusCode, ); } if (response.statusText) { diff --git a/src/utils/sanitize.ts b/src/utils/sanitize.ts index c0b33b59..5368c8f1 100644 --- a/src/utils/sanitize.ts +++ b/src/utils/sanitize.ts @@ -8,7 +8,7 @@ export function sanitizeStatusMessage(statusMessage = ""): string { export function sanitizeStatusCode( statusCode: string | number, - defaultStatusCode = 200 + defaultStatusCode = 200, ): number { if (!statusCode) { return defaultStatusCode; diff --git a/src/utils/session.ts b/src/utils/session.ts index fc59a4f3..6178ca97 100644 --- a/src/utils/session.ts +++ b/src/utils/session.ts @@ -40,7 +40,7 @@ const DEFAULT_COOKIE: SessionConfig["cookie"] = { export async function useSession( event: H3Event, - config: SessionConfig + config: SessionConfig, ) { // Create a synced wrapper around the session const sessionName = config.name || DEFAULT_NAME; @@ -66,7 +66,7 @@ export async function useSession( export async function getSession( event: H3Event, - config: SessionConfig + config: SessionConfig, ): Promise> { const sessionName = config.name || DEFAULT_NAME; @@ -106,7 +106,7 @@ export async function getSession( if (sealedSession) { // Unseal session data from cookie const unsealed = await unsealSession(event, config, sealedSession).catch( - () => {} + () => {}, ); Object.assign(session, unsealed); } @@ -129,7 +129,7 @@ type SessionUpdate = export async function updateSession( event: H3Event, config: SessionConfig, - update?: SessionUpdate + update?: SessionUpdate, ): Promise> { const sessionName = config.name || DEFAULT_NAME; @@ -163,7 +163,7 @@ export async function updateSession( export async function sealSession( event: H3Event, - config: SessionConfig + config: SessionConfig, ) { const sessionName = config.name || DEFAULT_NAME; @@ -184,7 +184,7 @@ export async function sealSession( export async function unsealSession( _event: H3Event, config: SessionConfig, - sealed: string + sealed: string, ) { const unsealed = (await unseal( config.crypto || crypto, @@ -194,7 +194,7 @@ export async function unsealSession( ...sealDefaults, ttl: config.maxAge ? config.maxAge * 1000 : 0, ...config.seal, - } + }, )) as Partial; if (config.maxAge) { const age = Date.now() - (unsealed.createdAt || Number.NEGATIVE_INFINITY); @@ -207,7 +207,7 @@ export async function unsealSession( export async function clearSession( event: H3Event, - config: Partial + config: Partial, ) { const sessionName = config.name || DEFAULT_NAME; if (event.context.sessions?.[sessionName]) { diff --git a/src/utils/static.ts b/src/utils/static.ts index ad2c6dbf..949e5605 100644 --- a/src/utils/static.ts +++ b/src/utils/static.ts @@ -30,7 +30,7 @@ export interface ServeStaticOptions { * This function should resolve asset meta */ getMeta: ( - id: string + id: string, ) => StaticAssetMeta | undefined | Promise; /** @@ -62,7 +62,7 @@ export interface ServeStaticOptions { export async function serveStatic( event: H3Event, - options: ServeStaticOptions + options: ServeStaticOptions, ): Promise { if (event.method !== "GET" && event.method !== "HEAD") { if (!options.fallthrough) { @@ -75,12 +75,12 @@ export async function serveStatic( } const originalId = decodePath( - withLeadingSlash(withoutTrailingSlash(parseURL(event.path).pathname)) + withLeadingSlash(withoutTrailingSlash(parseURL(event.path).pathname)), ); const acceptEncodings = parseAcceptEncoding( getRequestHeader(event, "accept-encoding"), - options.encodings + options.encodings, ); if (acceptEncodings.length > 1) { @@ -93,7 +93,7 @@ export async function serveStatic( const _ids = idSearchPaths( originalId, acceptEncodings, - options.indexNames || ["/index.html"] + options.indexNames || ["/index.html"], ); for (const _id of _ids) { @@ -170,7 +170,7 @@ export async function serveStatic( function parseAcceptEncoding( header?: string, - encodingMap?: Record + encodingMap?: Record, ): string[] { if (!encodingMap || !header) { return []; diff --git a/test/app.test.ts b/test/app.test.ts index 578ebbc7..67f6d37a 100644 --- a/test/app.test.ts +++ b/test/app.test.ts @@ -37,7 +37,7 @@ describe("app", () => { it("can return JSON directly", async () => { app.use( "/api", - eventHandler((event) => ({ url: event.path })) + eventHandler((event) => ({ url: event.path })), ); const res = await request.get("/api"); @@ -47,7 +47,7 @@ describe("app", () => { it("can return bigint directly", async () => { app.use( "/", - eventHandler(() => BigInt(9_007_199_254_740_991)) + eventHandler(() => BigInt(9_007_199_254_740_991)), ); const res = await request.get("/"); @@ -59,25 +59,25 @@ describe("app", () => { "/fn", eventHandler(() => { return function foo() {}; - }) + }), ); app.use( "/symbol", eventHandler(() => { return Symbol.for("foo"); - }) + }), ); const resFn = await request.get("/fn"); expect(resFn.status).toBe(500); expect(resFn.body.statusMessage).toBe( - "[h3] Cannot send function as response." + "[h3] Cannot send function as response.", ); const resSymbol = await request.get("/symbol"); expect(resSymbol.status).toBe(500); expect(resSymbol.body.statusMessage).toBe( - "[h3] Cannot send symbol as response." + "[h3] Cannot send symbol as response.", ); }); @@ -89,8 +89,8 @@ describe("app", () => { new Response("Hello World!", { status: 201, headers: { "x-test": "test" }, - }) - ) + }), + ), ); const res = await request.get("/"); @@ -101,7 +101,7 @@ describe("app", () => { it("can return a 204 response", async () => { app.use( "/api", - eventHandler(() => null) + eventHandler(() => null), ); const res = await request.get("/api"); @@ -115,7 +115,7 @@ describe("app", () => { for (const value of values) { app.use( `/${value}`, - eventHandler(() => value) + eventHandler(() => value), ); expect(await request.get(`/${value}`).then((r) => r.body)).toEqual(value); } @@ -127,8 +127,8 @@ describe("app", () => { () => new Blob(["

Hello World

"], { type: "text/html", - }) - ) + }), + ), ); const res = await request.get("/"); @@ -152,7 +152,7 @@ describe("app", () => { this.push(null); }, }); - }) + }), ); const res = await request.get("/"); @@ -177,9 +177,9 @@ describe("app", () => { }); setTimeout(() => callback(err), 0); }, - }) + }), ); - }) + }), ); const res = await request.get("/"); expect(res.statusCode).toBe(500); @@ -196,7 +196,7 @@ describe("app", () => { controller.close(); }, }); - }) + }), ); const res = await request.get("/"); @@ -215,7 +215,7 @@ describe("app", () => { }); }, }); - }) + }), ); const res = await request.get("/"); @@ -236,7 +236,7 @@ describe("app", () => { eventHandler((event) => { event.node.res.setHeader("content-type", "text/xhtml"); return "

Hello world!

"; - }) + }), ); const res = await request.get("/"); @@ -246,11 +246,11 @@ describe("app", () => { it("can match simple prefixes", async () => { app.use( "/1", - eventHandler(() => "prefix1") + eventHandler(() => "prefix1"), ); app.use( "/2", - eventHandler(() => "prefix2") + eventHandler(() => "prefix2"), ); const res = await request.get("/2"); @@ -261,11 +261,11 @@ describe("app", () => { app .use( "/1", - eventHandler(() => "prefix1") + eventHandler(() => "prefix1"), ) .use( "/2", - eventHandler(() => "prefix2") + eventHandler(() => "prefix2"), ); const res = await request.get("/2"); @@ -277,7 +277,7 @@ describe("app", () => { "/promise", eventHandler(async () => { return await Promise.resolve("42"); - }) + }), ); app.use(eventHandler(async () => {})); @@ -288,11 +288,11 @@ describe("app", () => { it("can use route arrays", async () => { app.use( ["/1", "/2"], - eventHandler(() => "valid") + eventHandler(() => "valid"), ); const responses = [await request.get("/1"), await request.get("/2")].map( - (r) => r.text + (r) => r.text, ); expect(responses).toEqual(["valid", "valid"]); }); @@ -312,18 +312,18 @@ describe("app", () => { it("prohibits use of next() in non-promisified handlers", () => { app.use( "/", - eventHandler(() => {}) + eventHandler(() => {}), ); }); it("handles next() call with no routes matching", async () => { app.use( "/", - eventHandler(() => {}) + eventHandler(() => {}), ); app.use( "/", - eventHandler(() => {}) + eventHandler(() => {}), ); const response = await request.get("/"); @@ -341,7 +341,7 @@ describe("app", () => { app.use( eventHandler((event) => { event.node.res.end("done"); - }) + }), ); app.use(eventHandler(() => "valid")); @@ -353,7 +353,7 @@ describe("app", () => { app.use( "/odd", eventHandler(() => "Is odd!"), - { match: (url) => Boolean(Number(url.slice(1)) % 2) } + { match: (url) => Boolean(Number(url.slice(1)) % 2) }, ); const res = await request.get("/odd/41"); @@ -366,7 +366,7 @@ describe("app", () => { it("can normalise route definitions", async () => { app.use( "/test/", - eventHandler(() => "valid") + eventHandler(() => "valid"), ); const res = await request.get("/test"); @@ -382,7 +382,7 @@ describe("app", () => { res.end(JSON.stringify({ works: 1 })); next(); }, 10); - }) + }), ); const res = await request.get("/"); expect(res.body).toEqual({ works: 1 }); diff --git a/test/body.test.ts b/test/body.test.ts index 1b3581fc..9c489010 100644 --- a/test/body.test.ts +++ b/test/body.test.ts @@ -27,14 +27,14 @@ describe("", () => { const body = await readRawBody(request); expect(body).toEqual('{"bool":true,"name":"string","number":1}'); return "200"; - }) + }), ); const result = await request.post("/api/test").send( JSON.stringify({ bool: true, name: "string", number: 1, - }) + }), ); expect(result.text).toBe("200"); @@ -47,7 +47,7 @@ describe("", () => { eventHandler(async (request) => { body = await readRawBody(request); return "200"; - }) + }), ); const result = await request.post("/api/test"); @@ -62,7 +62,7 @@ describe("", () => { eventHandler(async (request) => { body = await readRawBody(request); return "200"; - }) + }), ); const result = await request.post("/api/test").send('""'); @@ -77,7 +77,7 @@ describe("", () => { eventHandler(async (request) => { body = await readRawBody(request); return "200"; - }) + }), ); const result = await request.post("/api/test").send({}); @@ -98,7 +98,7 @@ describe("", () => { number: 1, }); return "200"; - }) + }), ); const result = await request.post("/api/test").send({ bool: true, @@ -116,7 +116,7 @@ describe("", () => { eventHandler(async (request) => { _body = await readBody(request); return "200"; - }) + }), ); const result = await request.post("/api/test").send(); expect(_body).toBeUndefined(); @@ -130,7 +130,7 @@ describe("", () => { eventHandler(async (request) => { _body = await readBody(request); return "200"; - }) + }), ); const result = await request .post("/api/test") @@ -147,7 +147,7 @@ describe("", () => { eventHandler(async (request) => { _body = await readBody(request); return "200"; - }) + }), ); const result = await request.post("/api/test").send({}); expect(_body).toStrictEqual({}); @@ -165,7 +165,7 @@ describe("", () => { number: ["20", "30", "40"], }); return "200"; - }) + }), ); const result = await request .post("/api/test") @@ -187,7 +187,7 @@ describe("", () => { expect(body).toMatchObject("test"); return "200"; - }) + }), ); const result = await request.post("/api/test").send(); @@ -207,7 +207,7 @@ describe("", () => { expect(body).toMatchObject({ test: 1 }); return "200"; - }) + }), ); const result = await request.post("/api/test").send(); @@ -226,7 +226,7 @@ describe("", () => { expect(body).toBeInstanceOf(Buffer); expect(body).toMatchObject(Buffer.from([1, 2, 3])); return "200"; - }) + }), ); const result = await request.post("/api/test").send(); expect(result.text).toBe("200"); @@ -241,16 +241,16 @@ describe("", () => { ...part, data: part.data.toString("utf8"), })); - }) + }), ); const result = await request .post("/api/test") .set( "content-type", - "multipart/form-data; boundary=---------------------------12537827810750053901680552518" + "multipart/form-data; boundary=---------------------------12537827810750053901680552518", ) .send( - '-----------------------------12537827810750053901680552518\r\nContent-Disposition: form-data; name="baz"\r\n\r\nother\r\n-----------------------------12537827810750053901680552518\r\nContent-Disposition: form-data; name="号楼电表数据模版.xlsx"\r\n\r\nsomething\r\n-----------------------------12537827810750053901680552518--\r\n' + '-----------------------------12537827810750053901680552518\r\nContent-Disposition: form-data; name="baz"\r\n\r\nother\r\n-----------------------------12537827810750053901680552518\r\nContent-Disposition: form-data; name="号楼电表数据模版.xlsx"\r\n\r\nsomething\r\n-----------------------------12537827810750053901680552518--\r\n', ); expect(result.body).toMatchInlineSnapshot(` @@ -274,7 +274,7 @@ describe("", () => { eventHandler(async (request) => { body = await readBody(request); return "200"; - }) + }), ); const result = await request .post("/api/test") @@ -291,7 +291,7 @@ describe("", () => { eventHandler(async (request) => { body = await readBody(request); return "200"; - }) + }), ); const result = await request .post("/api/test") @@ -308,7 +308,7 @@ describe("", () => { eventHandler(async (request) => { body = await readBody(request); return "200"; - }) + }), ); const result = await request .post("/api/test") @@ -325,7 +325,7 @@ describe("", () => { eventHandler(async (request) => { const _body = await readBody(request); return _body; - }) + }), ); const result = await request .post("/api/test") @@ -342,7 +342,7 @@ describe("", () => { eventHandler(async (request) => { const _body = await readBody(request); return _body; - }) + }), ); const result = await request .post("/api/test") diff --git a/test/cookie.test.ts b/test/cookie.test.ts index d2265e61..4282e00d 100644 --- a/test/cookie.test.ts +++ b/test/cookie.test.ts @@ -20,7 +20,7 @@ describe("", () => { const cookies = parseCookies(event); expect(cookies).toEqual({ Authorization: "1234567" }); return "200"; - }) + }), ); const result = await request @@ -37,7 +37,7 @@ describe("", () => { const cookies = parseCookies(event); expect(cookies).toEqual({}); return "200"; - }) + }), ); const result = await request.get("/"); @@ -54,7 +54,7 @@ describe("", () => { const authorization = getCookie(event, "Authorization"); expect(authorization).toEqual("1234567"); return "200"; - }) + }), ); const result = await request @@ -72,7 +72,7 @@ describe("", () => { eventHandler((event) => { setCookie(event, "Authorization", "1234567", {}); return "200"; - }) + }), ); const result = await request.get("/"); expect(result.headers["set-cookie"]).toEqual([ diff --git a/test/e2e.test.ts b/test/e2e.test.ts index 88188070..cc3452fe 100644 --- a/test/e2e.test.ts +++ b/test/e2e.test.ts @@ -38,7 +38,7 @@ describe("server", () => { app.use( eventHandler(() => { throw new Error("Unknown"); - }) + }), ); const result = await request.get("/"); expect(result.status).toBe(500); diff --git a/test/error.test.ts b/test/error.test.ts index cbfbd396..6406cc5e 100644 --- a/test/error.test.ts +++ b/test/error.test.ts @@ -35,7 +35,7 @@ describe("error", () => { app.use( eventHandler(() => { throw createError({ statusMessage: "Unprocessable", statusCode: 422 }); - }) + }), ); const result = await request.get("/"); @@ -46,7 +46,7 @@ describe("error", () => { app.use( eventHandler(() => { throw createError({ statusMessage: "Unprocessable", statusCode: 422 }); - }) + }), ); const result = await request.get("/"); @@ -58,7 +58,7 @@ describe("error", () => { "/", eventHandler(() => { throw new Error("Booo"); - }) + }), ); const result = await request.get("/api/test"); @@ -81,7 +81,7 @@ describe("error", () => { message: "Invalid Input", }, }); - }) + }), ); const result = await request.get("/api/test"); @@ -105,7 +105,7 @@ describe("error", () => { "/", eventHandler(() => { throw new Error("failed"); - }) + }), ); const res = await request.get("/"); @@ -115,7 +115,7 @@ describe("error", () => { it("can handle returned Error", async () => { app.use( "/", - eventHandler(() => new Error("failed")) + eventHandler(() => new Error("failed")), ); const res = await request.get("/"); @@ -125,7 +125,7 @@ describe("error", () => { it("can handle returned H3Error", async () => { app.use( "/", - eventHandler(() => createError({ statusCode: 501 })) + eventHandler(() => createError({ statusCode: 501 })), ); const res = await request.get("/"); @@ -141,7 +141,7 @@ describe("error", () => { "/", eventHandler(() => { throw createError(new CustomError()); - }) + }), ); const res = await request.get("/"); diff --git a/test/event.test.ts b/test/event.test.ts index 3478887a..1e1d35a7 100644 --- a/test/event.test.ts +++ b/test/event.test.ts @@ -18,7 +18,7 @@ describe("Event", () => { expect(event.method).toBe(event.method); expect(event.method).toBe("POST"); return "200"; - }) + }), ); const result = await request.post("/hello"); expect(result.text).toBe("200"); @@ -31,7 +31,7 @@ describe("Event", () => { return { headers: [...event.headers.entries()], }; - }) + }), ); const result = await request .post("/hello") @@ -47,7 +47,7 @@ describe("Event", () => { "/", eventHandler((event) => { return event.url; - }) + }), ); const result = await request.get("/hello"); expect(result.text).toMatch(/http:\/\/127.0.0.1:\d+\/hello/); @@ -65,7 +65,7 @@ describe("Event", () => { return { bytes, }; - }) + }), ); const result = await request.post("/hello").send(Buffer.from([1, 2, 3])); @@ -82,11 +82,11 @@ describe("Event", () => { // TODO: Find a workaround for Node.js 16 if (!process.versions.node.startsWith("16")) { expect(await event.request.text()).toMatchObject( - JSON.stringify({ hello: "world" }) + JSON.stringify({ hello: "world" }), ); } return "200"; - }) + }), ); const result = await request .post("/hello") @@ -103,7 +103,7 @@ describe("Event", () => { eventHandler((event) => { expect(event.path).toBe("/?url=https://example.com"); return "200"; - }) + }), ); const result = await request.get("/?url=https://example.com"); diff --git a/test/header.test.ts b/test/header.test.ts index c6f31a5a..b99224c0 100644 --- a/test/header.test.ts +++ b/test/header.test.ts @@ -37,7 +37,7 @@ describe("", () => { eventHandler((event) => { const headers = getRequestHeaders(event); expect(headers).toEqual(event.node.req.headers); - }) + }), ); await request.get("/").set("Accept", "application/json"); }); @@ -50,7 +50,7 @@ describe("", () => { eventHandler((event) => { const headers = getHeaders(event); expect(headers).toEqual(event.node.req.headers); - }) + }), ); await request.get("/").set("Accept", "application/json"); }); @@ -64,7 +64,7 @@ describe("", () => { expect(getRequestHeader(event, "accept")).toEqual("application/json"); expect(getRequestHeader(event, "Accept")).toEqual("application/json"); expect(getRequestHeader(event, "cookie")).toEqual("a; b; c"); - }) + }), ); await request .get("/") @@ -80,7 +80,7 @@ describe("", () => { eventHandler((event) => { expect(getHeader(event, "accept")).toEqual("application/json"); expect(getHeader(event, "Accept")).toEqual("application/json"); - }) + }), ); await request.get("/").set("Accept", "application/json"); }); @@ -95,7 +95,7 @@ describe("", () => { "Nuxt-HTTP-Header-1": "string-value-1", "Nuxt-HTTP-Header-2": "string-value-2", }); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header-1"]).toEqual("string-value-1"); @@ -112,7 +112,7 @@ describe("", () => { "Nuxt-HTTP-Header-1": "string-value-1", "Nuxt-HTTP-Header-2": "string-value-2", }); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header-1"]).toEqual("string-value-1"); @@ -126,7 +126,7 @@ describe("", () => { "/", eventHandler((event) => { setResponseHeader(event, "Nuxt-HTTP-Header", "string-value"); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("string-value"); @@ -137,7 +137,7 @@ describe("", () => { "/", eventHandler((event) => { setResponseHeader(event, "Nuxt-HTTP-Header", 12_345); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("12345"); @@ -149,7 +149,7 @@ describe("", () => { eventHandler((event) => { setResponseHeader(event, "Nuxt-HTTP-Header", ["value 1", "value 2"]); setResponseHeader(event, "Nuxt-HTTP-Header", ["value 3", "value 4"]); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("value 3, value 4"); @@ -162,7 +162,7 @@ describe("", () => { "/", eventHandler((event) => { setHeader(event, "Nuxt-HTTP-Header", "string-value"); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("string-value"); @@ -173,7 +173,7 @@ describe("", () => { "/", eventHandler((event) => { setHeader(event, "Nuxt-HTTP-Header", 12_345); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("12345"); @@ -185,7 +185,7 @@ describe("", () => { eventHandler((event) => { setHeader(event, "Nuxt-HTTP-Header", ["value 1", "value 2"]); setHeader(event, "Nuxt-HTTP-Header", ["value 3", "value 4"]); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("value 3, value 4"); @@ -205,14 +205,14 @@ describe("", () => { "Nuxt-HTTP-Header-1": "string-value-1-2", "Nuxt-HTTP-Header-2": "string-value-2-2", }); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header-1"]).toEqual( - "string-value-1-1, string-value-1-2" + "string-value-1-1, string-value-1-2", ); expect(result.headers["nuxt-http-header-2"]).toEqual( - "string-value-2-1, string-value-2-2" + "string-value-2-1, string-value-2-2", ); }); }); @@ -230,14 +230,14 @@ describe("", () => { "Nuxt-HTTP-Header-1": "string-value-1-2", "Nuxt-HTTP-Header-2": "string-value-2-2", }); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header-1"]).toEqual( - "string-value-1-1, string-value-1-2" + "string-value-1-1, string-value-1-2", ); expect(result.headers["nuxt-http-header-2"]).toEqual( - "string-value-2-1, string-value-2-2" + "string-value-2-1, string-value-2-2", ); }); }); @@ -249,7 +249,7 @@ describe("", () => { eventHandler((event) => { appendResponseHeader(event, "Nuxt-HTTP-Header", "value 1"); appendResponseHeader(event, "Nuxt-HTTP-Header", "value 2"); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("value 1, value 2"); @@ -263,7 +263,7 @@ describe("", () => { eventHandler((event) => { appendHeader(event, "Nuxt-HTTP-Header", "value 1"); appendHeader(event, "Nuxt-HTTP-Header", "value 2"); - }) + }), ); const result = await request.get("/"); expect(result.headers["nuxt-http-header"]).toEqual("value 1, value 2"); @@ -278,7 +278,7 @@ describe("", () => { appendHeader(event, "header-1", "1"); appendHeader(event, "header-2", "2"); clearResponseHeaders(event); - }) + }), ); const result = await request.get("/"); expect(result.headers["header-1"]).toBeUndefined(); @@ -293,7 +293,7 @@ describe("", () => { appendHeader(event, "header-4", "4"); appendHeader(event, "header-5", "5"); clearResponseHeaders(event, ["header-3", "header-5"]); - }) + }), ); const result = await request.get("/"); expect(result.headers["header-3"]).toBeUndefined(); @@ -308,7 +308,7 @@ describe("", () => { appendHeader(event, "header-6", "6"); appendHeader(event, "header-7", "7"); removeResponseHeader(event, "header-6"); - }) + }), ); const result = await request.get("/"); expect(result.headers["header-6"]).toBeUndefined(); diff --git a/test/integrations.test.ts b/test/integrations.test.ts index aede9933..2356c475 100644 --- a/test/integrations.test.ts +++ b/test/integrations.test.ts @@ -31,14 +31,14 @@ describe("integrations with other frameworks", () => { fromNodeMiddleware((_req, res, next) => { (res as any).prop = "42"; next(); - }) + }), ); app.use( "/api/hello", fromNodeMiddleware((req, res) => ({ url: req.url, prop: (res as any).prop, - })) + })), ); expressApp.use("/api", toNodeListener(app)); @@ -66,14 +66,14 @@ describe("integrations with other frameworks", () => { fromNodeMiddleware((_req, res, next) => { (res as any).prop = "42"; next(); - }) + }), ); app.use( "/api/hello", fromNodeMiddleware((req, res) => ({ url: req.url, prop: (res as any).prop, - })) + })), ); connectApp.use("/api", app); diff --git a/test/plain.test.ts b/test/plain.test.ts index 0dab22bc..ab77fad2 100644 --- a/test/plain.test.ts +++ b/test/plain.test.ts @@ -35,7 +35,7 @@ describe("Plain handler", () => { body, contextKeys: Object.keys(event.context), }; - }) + }), ); const res = await handler({ diff --git a/test/proxy.test.ts b/test/proxy.test.ts index 87fbfd83..5cd3ec4c 100644 --- a/test/proxy.test.ts +++ b/test/proxy.test.ts @@ -31,7 +31,7 @@ describe("", () => { keepAlive: false, keepAliveTimeout: 1, }, - toNodeListener(app) + toNodeListener(app), ); await new Promise((resolve) => { server.listen(0, () => resolve(undefined)); @@ -49,13 +49,13 @@ describe("", () => { it("works", async () => { app.use( "/hello", - eventHandler(() => "hello") + eventHandler(() => "hello"), ); app.use( "/", eventHandler((event) => { return sendProxy(event, url + "/hello", { fetch }); - }) + }), ); const result = await request.get("/"); @@ -80,7 +80,7 @@ describe("", () => { headers, body, }; - }) + }), ); app.use( @@ -93,7 +93,7 @@ describe("", () => { headers: { "x-custom2": "overriden" }, }, }); - }) + }), ); const result = await fetch(url + "/", { @@ -131,7 +131,7 @@ describe("", () => { headers: getHeaders(event), bytes: body!.length, }; - }) + }), ); app.use( @@ -139,11 +139,11 @@ describe("", () => { eventHandler((event) => { setResponseHeader(event, "x-res-header", "works"); return proxyRequest(event, url + "/debug", { fetch }); - }) + }), ); const dummyFile = await readFile( - new URL("assets/dummy.pdf", import.meta.url) + new URL("assets/dummy.pdf", import.meta.url), ); const res = await fetch(url + "/", { @@ -168,14 +168,14 @@ describe("", () => { body: await readRawBody(event), headers: getHeaders(event), }; - }) + }), ); app.use( "/", eventHandler((event) => { return proxyRequest(event, url + "/debug", { fetch }); - }) + }), ); const isNode16 = process.version.startsWith("v16."); @@ -206,11 +206,11 @@ describe("", () => { const resBody = await res.json(); expect(resBody.headers["content-type"]).toEqual( - "application/octet-stream" + "application/octet-stream", ); expect(resBody.headers["x-custom"]).toEqual("hello"); expect(resBody.body).toMatchInlineSnapshot( - '"This is a streamed request."' + '"This is a streamed request."', ); }); }); @@ -226,14 +226,14 @@ describe("", () => { }); setCookie(event, "role", "guest"); return {}; - }) + }), ); app.use( "/", eventHandler((event) => { return sendProxy(event, url + "/setcookies", { fetch }); - }) + }), ); const result = await request.get("/"); @@ -253,10 +253,10 @@ describe("", () => { setHeader( event, "set-cookie", - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); return {}; - }) + }), ); }); @@ -268,13 +268,13 @@ describe("", () => { fetch, cookieDomainRewrite: "new.domain", }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -288,13 +288,13 @@ describe("", () => { "somecompany.co.uk": "new.domain", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -307,7 +307,7 @@ describe("", () => { "bar=38afes7a8; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ]); return {}; - }) + }), ); app.use( @@ -319,13 +319,13 @@ describe("", () => { "somecompany.co.uk": "new.domain", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT, bar=38afes7a8; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT, bar=38afes7a8; Domain=new.domain; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -339,13 +339,13 @@ describe("", () => { "somecompany.co.uk": "", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); }); @@ -358,10 +358,10 @@ describe("", () => { setHeader( event, "set-cookie", - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); return {}; - }) + }), ); }); @@ -373,13 +373,13 @@ describe("", () => { fetch, cookiePathRewrite: "/api", }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -393,13 +393,13 @@ describe("", () => { "/": "/api", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -412,7 +412,7 @@ describe("", () => { "bar=38afes7a8; Domain=somecompany.co.uk; Path=/; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ]); return {}; - }) + }), ); app.use( @@ -424,13 +424,13 @@ describe("", () => { "/": "/api", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT, bar=38afes7a8; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT, bar=38afes7a8; Domain=somecompany.co.uk; Path=/api; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); @@ -444,13 +444,13 @@ describe("", () => { "/": "", }, }); - }) + }), ); const result = await fetch(url + "/"); expect(result.headers.get("set-cookie")).toEqual( - "foo=219ffwef9w0f; Domain=somecompany.co.uk; Expires=Wed, 30 Aug 2022 00:00:00 GMT" + "foo=219ffwef9w0f; Domain=somecompany.co.uk; Expires=Wed, 30 Aug 2022 00:00:00 GMT", ); }); }); @@ -463,7 +463,7 @@ describe("", () => { return { foo: "bar", }; - }) + }), ); }); @@ -477,7 +477,7 @@ describe("", () => { setHeader(_event, "x-custom", "hello"); }, }); - }) + }), ); const result = await request.get("/"); @@ -497,7 +497,7 @@ describe("", () => { }); }, }); - }) + }), ); const result = await request.get("/"); @@ -517,7 +517,7 @@ describe("", () => { headers = Object.fromEntries(response.headers.entries()); }, }); - }) + }), ); await request.get("/"); diff --git a/test/router.test.ts b/test/router.test.ts index 566c4d60..7fe2d495 100644 --- a/test/router.test.ts +++ b/test/router.test.ts @@ -21,24 +21,24 @@ describe("router", () => { router = createRouter() .add( "/", - eventHandler(() => "Hello") + eventHandler(() => "Hello"), ) .add( "/test/?/a", - eventHandler(() => "/test/?/a") + eventHandler(() => "/test/?/a"), ) .add( "/many/routes", eventHandler(() => "many routes"), - ["get", "post"] + ["get", "post"], ) .get( "/test", - eventHandler(() => "Test (GET)") + eventHandler(() => "Test (GET)"), ) .post( "/test", - eventHandler(() => "Test (POST)") + eventHandler(() => "Test (POST)"), ); app.use(router); @@ -53,7 +53,7 @@ describe("router", () => { it("Multiple Routers", async () => { const secondRouter = createRouter().add( "/router2", - eventHandler(() => "router2") + eventHandler(() => "router2"), ); app.use(secondRouter); @@ -78,7 +78,7 @@ describe("router", () => { it('Handle url with query parameters, include "?" in url path', async () => { const res = await request.get( - "/test/?/a?title=test&returnTo=/path?foo=bar" + "/test/?/a?title=test&returnTo=/path?foo=bar", ); expect(res.status).toEqual(200); }); @@ -101,12 +101,12 @@ describe("router", () => { it("Handle shadowed route", async () => { router.post( "/test/123", - eventHandler((event) => `[${event.method}] ${event.path}`) + eventHandler((event) => `[${event.method}] ${event.path}`), ); router.use( "/test/**", - eventHandler((event) => `[${event.method}] ${event.path}`) + eventHandler((event) => `[${event.method}] ${event.path}`), ); // Loop to validate cached behavior @@ -132,11 +132,11 @@ describe("router (preemptive)", () => { router = createRouter({ preemptive: true }) .get( "/test", - eventHandler(() => "Test") + eventHandler(() => "Test"), ) .get( "/undefined", - eventHandler(() => undefined) + eventHandler(() => undefined), ); app.use(router); request = supertest(toNodeListener(app)); @@ -182,7 +182,7 @@ describe("getRouterParams", () => { eventHandler((event) => { expect(getRouterParams(event)).toMatchObject({ name: "string" }); return "200"; - }) + }), ); app.use(router); const result = await request.get("/test/params/string"); @@ -198,7 +198,7 @@ describe("getRouterParams", () => { eventHandler((event) => { expect(getRouterParams(event)).toMatchObject({}); return "200"; - }) + }), ); const result = await request.get("/test/empty/params"); @@ -223,7 +223,7 @@ describe("getRouterParam", () => { eventHandler((event) => { expect(getRouterParam(event, "name")).toEqual("string"); return "200"; - }) + }), ); app.use(router); const result = await request.get("/test/params/string"); @@ -239,7 +239,7 @@ describe("getRouterParam", () => { eventHandler((request) => { expect(getRouterParam(request, "name")).toEqual(undefined); return "200"; - }) + }), ); const result = await request.get("/test/empty/params"); diff --git a/test/static.test.ts b/test/static.test.ts index f1b66fc8..7446e20e 100644 --- a/test/static.test.ts +++ b/test/static.test.ts @@ -14,7 +14,7 @@ describe("Serve Static", () => { const serveStaticOptions = { getContents: vi.fn((id) => - id.includes("404") ? undefined : `asset:${id}` + id.includes("404") ? undefined : `asset:${id}`, ), getMeta: vi.fn((id) => id.includes("404") @@ -26,7 +26,7 @@ describe("Serve Static", () => { mtime: 1_700_000_000_000, path: id, size: `asset:${id}`.length, - } + }, ), indexNames: ["/index.html"], encodings: { gzip: ".gz", br: ".br" }, @@ -38,7 +38,7 @@ describe("Serve Static", () => { "/", eventHandler((event) => { return serveStatic(event, serveStaticOptions); - }) + }), ); request = supertest(toNodeListener(app)); }); diff --git a/test/utils.test.ts b/test/utils.test.ts index 0cf30e67..7f3ea671 100644 --- a/test/utils.test.ts +++ b/test/utils.test.ts @@ -25,7 +25,7 @@ describe("", () => { describe("sendRedirect", () => { it("can redirect URLs", async () => { app.use( - eventHandler((event) => sendRedirect(event, "https://google.com")) + eventHandler((event) => sendRedirect(event, "https://google.com")), ); const result = await request.get("/"); @@ -40,8 +40,8 @@ describe("", () => { "/", useBase( "/api", - eventHandler((event) => Promise.resolve(event.path)) - ) + eventHandler((event) => Promise.resolve(event.path)), + ), ); const result = await request.get("/api/test"); @@ -52,8 +52,8 @@ describe("", () => { "/", useBase( "", - eventHandler((event) => Promise.resolve(event.path)) - ) + eventHandler((event) => Promise.resolve(event.path)), + ), ); const result = await request.get("/api/test"); @@ -73,10 +73,10 @@ describe("", () => { number: "1", }); return "200"; - }) + }), ); const result = await request.get( - "/api/test?bool=true&name=string&number=1" + "/api/test?bool=true&name=string&number=1", ); expect(result.text).toBe("200"); @@ -87,7 +87,7 @@ describe("", () => { it("can get method", async () => { app.use( "/", - eventHandler((event) => event.method) + eventHandler((event) => event.method), ); expect((await request.get("/api")).text).toBe("GET"); expect((await request.post("/api")).text).toBe("POST"); @@ -128,7 +128,7 @@ describe("", () => { // @ts-ignore url.port = 80; return url; - }) + }), ); const req = request.get(test.path); if (test.host) { @@ -151,7 +151,7 @@ describe("", () => { eventHandler((event) => { assertMethod(event, "POST", true); return "ok"; - }) + }), ); expect((await request.get("/post")).status).toBe(405); expect((await request.post("/post")).status).toBe(200); @@ -170,7 +170,7 @@ describe("", () => { expect(formData instanceof FormData).toBe(true); expect(user).toBe("john"); return { user }; - }) + }), ); const result = await request diff --git a/test/validate.test.ts b/test/validate.test.ts index 0e16c8d9..b7ae8f83 100644 --- a/test/validate.test.ts +++ b/test/validate.test.ts @@ -47,7 +47,7 @@ describe("Validate", () => { eventHandler(async (event) => { const data = await readValidatedBody(event, customValidate); return data; - }) + }), ); app.use( @@ -55,7 +55,7 @@ describe("Validate", () => { eventHandler(async (event) => { const data = await readValidatedBody(event, zodValidate); return data; - }) + }), ); }); @@ -103,7 +103,7 @@ describe("Validate", () => { eventHandler(async (event) => { const data = await getValidatedQuery(event, customValidate); return data; - }) + }), ); app.use( @@ -111,7 +111,7 @@ describe("Validate", () => { eventHandler(async (event) => { const data = await getValidatedQuery(event, zodValidate); return data; - }) + }), ); }); diff --git a/test/web.test.ts b/test/web.test.ts index 0f197fe3..92f6e36b 100644 --- a/test/web.test.ts +++ b/test/web.test.ts @@ -25,7 +25,7 @@ describe("Web handler", () => { body, contextKeys: Object.keys(event.context), }; - }) + }), ); const res = await handler( @@ -38,7 +38,7 @@ describe("Web handler", () => { }), { test: true, - } + }, ); expect(res.status).toBe(201);