@whatwg-node/server
Advanced tools
Comparing version 0.4.17 to 0.4.18-alpha-20221220101531-15f683b
@@ -12,7 +12,7 @@ /// <reference types="node" /> | ||
} | ||
export interface ServerAdapterObject<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext, ServerAdapterRequestHandler<TServerContext>>> extends EventListenerObject { | ||
export interface ServerAdapterObject<TServerContext> extends EventListenerObject { | ||
/** | ||
* A basic request listener that takes a `Request` with the server context and returns a `Response`. | ||
*/ | ||
handleRequest: TBaseObject['handle']; | ||
handleRequest: (request: Request, ctx: TServerContext) => Promise<Response> | Response; | ||
/** | ||
@@ -46,5 +46,5 @@ * WHATWG Fetch spec compliant `fetch` function that can be used for testing purposes. | ||
} | ||
export declare type ServerAdapter<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext>> = TBaseObject & ServerAdapterObject<TServerContext, TBaseObject>['handle'] & ServerAdapterObject<TServerContext, TBaseObject>; | ||
export declare type ServerAdapterRequestHandler<TServerContext> = (request: Request, ctx: TServerContext) => Promise<Response> | Response; | ||
export declare type DefaultServerAdapterContext = { | ||
export type ServerAdapter<TServerContext, TBaseObject extends ServerAdapterBaseObject<TServerContext>> = TBaseObject & ServerAdapterObject<TServerContext>['handle'] & ServerAdapterObject<TServerContext>; | ||
export type ServerAdapterRequestHandler<TServerContext> = (request: Request, ctx: TServerContext) => Promise<Response> | Response; | ||
export type DefaultServerAdapterContext = { | ||
req: NodeRequest; | ||
@@ -51,0 +51,0 @@ res: ServerResponse; |
13
index.js
@@ -194,3 +194,14 @@ 'use strict'; | ||
RequestCtor = fetch.Request) { | ||
const handleRequest = typeof serverAdapterBaseObject === 'function' ? serverAdapterBaseObject : serverAdapterBaseObject.handle; | ||
const providedRequestHandler = typeof serverAdapterBaseObject === 'function' ? serverAdapterBaseObject : serverAdapterBaseObject.handle; | ||
async function handleRequest(request, ctx) { | ||
try { | ||
return await providedRequestHandler(request, ctx); | ||
} | ||
catch (e) { | ||
return new Response(e.stack || e.message || e.toString(), { | ||
status: e.statusCode || e.status || 500, | ||
statusText: e.statusText || 'Internal Server Error', | ||
}); | ||
} | ||
} | ||
function handleNodeRequest(nodeRequest, ...ctx) { | ||
@@ -197,0 +208,0 @@ const serverContext = ctx.length > 1 ? Object.assign({}, ...ctx) : ctx[0]; |
{ | ||
"name": "@whatwg-node/server", | ||
"version": "0.4.17", | ||
"version": "0.4.18-alpha-20221220101531-15f683b", | ||
"description": "Fetch API compliant HTTP Server adapter", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
Sorry, the diff of this file is not supported yet
42445
756