New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@whatwg-node/server

Package Overview
Dependencies
Maintainers
0
Versions
772
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@whatwg-node/server - npm Package Compare versions

Comparing version 0.9.69 to 0.9.70-alpha-20250225102211-278c6478ea45ec6f3c81c9f91295113accf29346

109

cjs/createServerAdapter.js

@@ -7,2 +7,3 @@ "use strict";

const DefaultFetchAPI = tslib_1.__importStar(require("@whatwg-node/fetch"));
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
const utils_js_1 = require("./utils.js");

@@ -98,3 +99,23 @@ const uwebsockets_js_1 = require("./uwebsockets.js");

});
const onRequestHooksIteration$ = (0, utils_js_1.iterateAsyncVoid)(onRequestHooks, (onRequestHook, stopEarly) => onRequestHook({
function handleResponse(response) {
if (onResponseHooks.length === 0) {
return response;
}
return (0, promise_helpers_1.handleMaybePromise)(() => (0, utils_js_1.iterateAsyncVoid)(onResponseHooks, onResponseHook => onResponseHook({
request,
response,
serverContext,
setResponse(newResponse) {
response = newResponse;
},
fetchAPI,
})), () => response);
}
function handleEarlyResponse() {
if (!response) {
return (0, promise_helpers_1.handleMaybePromise)(() => requestHandler(request, serverContext), handleResponse);
}
return handleResponse(response);
}
return (0, promise_helpers_1.handleMaybePromise)(() => (0, utils_js_1.iterateAsyncVoid)(onRequestHooks, (onRequestHook, stopEarly) => onRequestHook({
request,

@@ -117,35 +138,3 @@ setRequest(newRequest) {

},
}));
function handleResponse(response) {
if (onResponseHooks.length === 0) {
return response;
}
const onResponseHooksIteration$ = (0, utils_js_1.iterateAsyncVoid)(onResponseHooks, onResponseHook => onResponseHook({
request,
response,
serverContext,
setResponse(newResponse) {
response = newResponse;
},
fetchAPI,
}));
if ((0, utils_js_1.isPromise)(onResponseHooksIteration$)) {
return onResponseHooksIteration$.then(() => response);
}
return response;
}
function handleEarlyResponse() {
if (!response) {
const response$ = requestHandler(request, serverContext);
if ((0, utils_js_1.isPromise)(response$)) {
return response$.then(handleResponse);
}
return handleResponse(response$);
}
return handleResponse(response);
}
if ((0, utils_js_1.isPromise)(onRequestHooksIteration$)) {
return onRequestHooksIteration$.then(handleEarlyResponse);
}
return handleEarlyResponse();
})), handleEarlyResponse);
}

@@ -174,23 +163,3 @@ : givenHandleRequest;

};
let response$;
try {
response$ = handleNodeRequestAndResponse(nodeRequest, nodeResponse, defaultServerContext, ...ctx);
}
catch (err) {
response$ = (0, utils_js_1.handleErrorFromRequestHandler)(err, fetchAPI.Response);
}
if ((0, utils_js_1.isPromise)(response$)) {
return response$
.catch((e) => (0, utils_js_1.handleErrorFromRequestHandler)(e, fetchAPI.Response))
.then(response => (0, utils_js_1.sendNodeResponse)(response, nodeResponse, nodeRequest))
.catch(err => {
console.error(`Unexpected error while handling request: ${err.message || err}`);
});
}
try {
return (0, utils_js_1.sendNodeResponse)(response$, nodeResponse, nodeRequest);
}
catch (err) {
console.error(`Unexpected error while handling request: ${err.message || err}`);
}
return (0, promise_helpers_1.handleMaybePromise)(() => (0, promise_helpers_1.handleMaybePromise)(() => handleNodeRequestAndResponse(nodeRequest, nodeResponse, defaultServerContext, ...ctx), response => response, err => (0, utils_js_1.handleErrorFromRequestHandler)(err, fetchAPI.Response)), response => (0, promise_helpers_1.handleMaybePromise)(() => (0, utils_js_1.sendNodeResponse)(response, nodeResponse, nodeRequest), r => r, err => console.error(`Unexpected error while handling request: ${err.message || err}`)));
}

@@ -227,29 +196,9 @@ function handleUWS(res, req, ...ctx) {

});
let response$;
try {
response$ = handleRequest(request, serverContext);
}
catch (err) {
response$ = (0, utils_js_1.handleErrorFromRequestHandler)(err, fetchAPI.Response);
}
if ((0, utils_js_1.isPromise)(response$)) {
return response$
.catch((e) => (0, utils_js_1.handleErrorFromRequestHandler)(e, fetchAPI.Response))
.then(response => {
if (!controller.signal.aborted && !resEnded) {
return (0, uwebsockets_js_1.sendResponseToUwsOpts)(res, response, controller, fetchAPI);
}
})
.catch(err => {
console.error(`Unexpected error while handling request: \n${err.stack || err.message || err}`);
});
}
try {
return (0, promise_helpers_1.handleMaybePromise)(() => (0, promise_helpers_1.handleMaybePromise)(() => handleRequest(request, serverContext), response => response, err => (0, utils_js_1.handleErrorFromRequestHandler)(err, fetchAPI.Response)), response => {
if (!controller.signal.aborted && !resEnded) {
return (0, uwebsockets_js_1.sendResponseToUwsOpts)(res, response$, controller, fetchAPI);
return (0, promise_helpers_1.handleMaybePromise)(() => (0, uwebsockets_js_1.sendResponseToUwsOpts)(res, response, controller, fetchAPI), r => r, err => {
console.error(`Unexpected error while handling request: ${err.message || err}`);
});
}
}
catch (err) {
console.error(`Unexpected error while handling request: \n${err.stack || err.message || err}`);
}
});
}

@@ -256,0 +205,0 @@ function handleEvent(event, ...ctx) {

@@ -7,3 +7,3 @@ "use strict";

const fetch_1 = require("@whatwg-node/fetch");
const utils_js_1 = require("../utils.js");
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
function createDefaultErrorHandler(ResponseCtor = fetch_1.Response) {

@@ -48,13 +48,4 @@ return function defaultErrorHandler(e) {

setRequestHandler(function handlerWithErrorHandling(request, serverContext) {
try {
const response$ = requestHandler(request, serverContext);
if ((0, utils_js_1.isPromise)(response$)) {
return response$.catch(e => errorHandler(e, request, serverContext) ||
createDefaultErrorResponse(fetchAPI.Response));
}
return response$;
}
catch (e) {
return (errorHandler(e, request, serverContext) || createDefaultErrorResponse(fetchAPI.Response));
}
return (0, promise_helpers_1.handleMaybePromise)(() => requestHandler(request, serverContext), response => response, e => errorHandler(e, request, serverContext) ||
createDefaultErrorResponse(fetchAPI.Response));
});

@@ -61,0 +52,0 @@ },

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.decompressedResponseMap = exports.nodeRequestResponseMap = void 0;
exports.decompressedResponseMap = exports.iterateAsyncVoid = exports.nodeRequestResponseMap = exports.createDeferredPromise = exports.isPromise = void 0;
exports.isAsyncIterable = isAsyncIterable;

@@ -14,7 +14,4 @@ exports.normalizeNodeRequest = normalizeNodeRequest;

exports.completeAssign = completeAssign;
exports.isPromise = isPromise;
exports.iterateAsyncVoid = iterateAsyncVoid;
exports.handleErrorFromRequestHandler = handleErrorFromRequestHandler;
exports.isolateObject = isolateObject;
exports.createDeferredPromise = createDeferredPromise;
exports.handleAbortSignalAndPromiseResponse = handleAbortSignalAndPromiseResponse;

@@ -24,2 +21,5 @@ exports.getSupportedEncodings = getSupportedEncodings;

exports.ensureDisposableStackRegisteredForTerminateEvents = ensureDisposableStackRegisteredForTerminateEvents;
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
Object.defineProperty(exports, "createDeferredPromise", { enumerable: true, get: function () { return promise_helpers_1.createDeferredPromise; } });
Object.defineProperty(exports, "isPromise", { enumerable: true, get: function () { return promise_helpers_1.isPromise; } });
function isAsyncIterable(body) {

@@ -382,32 +382,4 @@ return (body != null && typeof body === 'object' && typeof body[Symbol.asyncIterator] === 'function');

}
function isPromise(val) {
return val?.then != null;
}
function iterateAsyncVoid(iterable, callback) {
const iterator = iterable[Symbol.iterator]();
let stopEarlyFlag = false;
function stopEarlyFn() {
stopEarlyFlag = true;
}
function iterate() {
const { done: endOfIterator, value } = iterator.next();
if (endOfIterator) {
return;
}
const result$ = callback(value, stopEarlyFn);
if (isPromise(result$)) {
return result$.then(() => {
if (stopEarlyFlag) {
return;
}
return iterate();
});
}
if (stopEarlyFlag) {
return;
}
return iterate();
}
return iterate();
}
var promise_helpers_2 = require("@whatwg-node/promise-helpers");
Object.defineProperty(exports, "iterateAsyncVoid", { enumerable: true, get: function () { return promise_helpers_2.iterateAsyncVoid; } });
function handleErrorFromRequestHandler(error, ResponseCtor) {

@@ -431,19 +403,2 @@ return new ResponseCtor(error.stack || error.message || error.toString(), {

}
function createDeferredPromise() {
let resolveFn;
let rejectFn;
const promise = new Promise(function deferredPromiseExecutor(resolve, reject) {
resolveFn = resolve;
rejectFn = reject;
});
return {
promise,
get resolve() {
return resolveFn;
},
get reject() {
return rejectFn;
},
};
}
function handleAbortSignalAndPromiseResponse(response$, abortSignal) {

@@ -453,4 +408,4 @@ if (abortSignal?.aborted) {

}
if (isPromise(response$) && abortSignal) {
const deferred$ = createDeferredPromise();
if ((0, promise_helpers_1.isPromise)(response$) && abortSignal) {
const deferred$ = (0, promise_helpers_1.createDeferredPromise)();
function abortSignalFetchErrorHandler() {

@@ -457,0 +412,0 @@ deferred$.reject(abortSignal.reason);

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fakePromise = void 0;
exports.isUWSResponse = isUWSResponse;

@@ -7,4 +8,4 @@ exports.getRequestFromUWSRequest = getRequestFromUWSRequest;

exports.sendResponseToUwsOpts = sendResponseToUwsOpts;
exports.fakePromise = fakePromise;
const utils_js_1 = require("./utils.js");
const promise_helpers_1 = require("@whatwg-node/promise-helpers");
Object.defineProperty(exports, "fakePromise", { enumerable: true, get: function () { return promise_helpers_1.fakePromise; } });
function isUWSResponse(res) {

@@ -114,3 +115,3 @@ return !!res.onData;

if (stopped) {
return fakePromise(getBufferFromChunks());
return (0, promise_helpers_1.fakePromise)(getBufferFromChunks());
}

@@ -229,34 +230,1 @@ return new Promise((resolve, reject) => {

}
function fakePromise(value) {
if ((0, utils_js_1.isPromise)(value)) {
return value;
}
// Write a fake promise to avoid the promise constructor
// being called with `new Promise` in the browser.
return {
then(resolve) {
if (resolve) {
const callbackResult = resolve(value);
if ((0, utils_js_1.isPromise)(callbackResult)) {
return callbackResult;
}
return fakePromise(callbackResult);
}
return this;
},
catch() {
return this;
},
finally(cb) {
if (cb) {
const callbackResult = cb();
if ((0, utils_js_1.isPromise)(callbackResult)) {
return callbackResult.then(() => value);
}
return fakePromise(value);
}
return this;
},
[Symbol.toStringTag]: 'Promise',
};
}
import { AsyncDisposableStack, DisposableSymbols } from '@whatwg-node/disposablestack';
import * as DefaultFetchAPI from '@whatwg-node/fetch';
import { handleMaybePromise } from '@whatwg-node/promise-helpers';
import { completeAssign, ensureDisposableStackRegisteredForTerminateEvents, handleAbortSignalAndPromiseResponse, handleErrorFromRequestHandler, isFetchEvent, isNodeRequest, isolateObject, isPromise, isRequestInit, isServerResponse, iterateAsyncVoid, nodeRequestResponseMap, normalizeNodeRequest, sendNodeResponse, } from './utils.js';

@@ -93,3 +94,23 @@ import { fakePromise, getRequestFromUWSRequest, isUWSResponse, sendResponseToUwsOpts, } from './uwebsockets.js';

});
const onRequestHooksIteration$ = iterateAsyncVoid(onRequestHooks, (onRequestHook, stopEarly) => onRequestHook({
function handleResponse(response) {
if (onResponseHooks.length === 0) {
return response;
}
return handleMaybePromise(() => iterateAsyncVoid(onResponseHooks, onResponseHook => onResponseHook({
request,
response,
serverContext,
setResponse(newResponse) {
response = newResponse;
},
fetchAPI,
})), () => response);
}
function handleEarlyResponse() {
if (!response) {
return handleMaybePromise(() => requestHandler(request, serverContext), handleResponse);
}
return handleResponse(response);
}
return handleMaybePromise(() => iterateAsyncVoid(onRequestHooks, (onRequestHook, stopEarly) => onRequestHook({
request,

@@ -112,35 +133,3 @@ setRequest(newRequest) {

},
}));
function handleResponse(response) {
if (onResponseHooks.length === 0) {
return response;
}
const onResponseHooksIteration$ = iterateAsyncVoid(onResponseHooks, onResponseHook => onResponseHook({
request,
response,
serverContext,
setResponse(newResponse) {
response = newResponse;
},
fetchAPI,
}));
if (isPromise(onResponseHooksIteration$)) {
return onResponseHooksIteration$.then(() => response);
}
return response;
}
function handleEarlyResponse() {
if (!response) {
const response$ = requestHandler(request, serverContext);
if (isPromise(response$)) {
return response$.then(handleResponse);
}
return handleResponse(response$);
}
return handleResponse(response);
}
if (isPromise(onRequestHooksIteration$)) {
return onRequestHooksIteration$.then(handleEarlyResponse);
}
return handleEarlyResponse();
})), handleEarlyResponse);
}

@@ -169,23 +158,3 @@ : givenHandleRequest;

};
let response$;
try {
response$ = handleNodeRequestAndResponse(nodeRequest, nodeResponse, defaultServerContext, ...ctx);
}
catch (err) {
response$ = handleErrorFromRequestHandler(err, fetchAPI.Response);
}
if (isPromise(response$)) {
return response$
.catch((e) => handleErrorFromRequestHandler(e, fetchAPI.Response))
.then(response => sendNodeResponse(response, nodeResponse, nodeRequest))
.catch(err => {
console.error(`Unexpected error while handling request: ${err.message || err}`);
});
}
try {
return sendNodeResponse(response$, nodeResponse, nodeRequest);
}
catch (err) {
console.error(`Unexpected error while handling request: ${err.message || err}`);
}
return handleMaybePromise(() => handleMaybePromise(() => handleNodeRequestAndResponse(nodeRequest, nodeResponse, defaultServerContext, ...ctx), response => response, err => handleErrorFromRequestHandler(err, fetchAPI.Response)), response => handleMaybePromise(() => sendNodeResponse(response, nodeResponse, nodeRequest), r => r, err => console.error(`Unexpected error while handling request: ${err.message || err}`)));
}

@@ -222,29 +191,9 @@ function handleUWS(res, req, ...ctx) {

});
let response$;
try {
response$ = handleRequest(request, serverContext);
}
catch (err) {
response$ = handleErrorFromRequestHandler(err, fetchAPI.Response);
}
if (isPromise(response$)) {
return response$
.catch((e) => handleErrorFromRequestHandler(e, fetchAPI.Response))
.then(response => {
if (!controller.signal.aborted && !resEnded) {
return sendResponseToUwsOpts(res, response, controller, fetchAPI);
}
})
.catch(err => {
console.error(`Unexpected error while handling request: \n${err.stack || err.message || err}`);
});
}
try {
return handleMaybePromise(() => handleMaybePromise(() => handleRequest(request, serverContext), response => response, err => handleErrorFromRequestHandler(err, fetchAPI.Response)), response => {
if (!controller.signal.aborted && !resEnded) {
return sendResponseToUwsOpts(res, response$, controller, fetchAPI);
return handleMaybePromise(() => sendResponseToUwsOpts(res, response, controller, fetchAPI), r => r, err => {
console.error(`Unexpected error while handling request: ${err.message || err}`);
});
}
}
catch (err) {
console.error(`Unexpected error while handling request: \n${err.stack || err.message || err}`);
}
});
}

@@ -251,0 +200,0 @@ function handleEvent(event, ...ctx) {

import { Response as DefaultResponseCtor } from '@whatwg-node/fetch';
import { isPromise } from '../utils.js';
import { handleMaybePromise } from '@whatwg-node/promise-helpers';
export function createDefaultErrorHandler(ResponseCtor = DefaultResponseCtor) {

@@ -41,13 +41,4 @@ return function defaultErrorHandler(e) {

setRequestHandler(function handlerWithErrorHandling(request, serverContext) {
try {
const response$ = requestHandler(request, serverContext);
if (isPromise(response$)) {
return response$.catch(e => errorHandler(e, request, serverContext) ||
createDefaultErrorResponse(fetchAPI.Response));
}
return response$;
}
catch (e) {
return (errorHandler(e, request, serverContext) || createDefaultErrorResponse(fetchAPI.Response));
}
return handleMaybePromise(() => requestHandler(request, serverContext), response => response, e => errorHandler(e, request, serverContext) ||
createDefaultErrorResponse(fetchAPI.Response));
});

@@ -54,0 +45,0 @@ },

@@ -0,1 +1,3 @@

import { createDeferredPromise, isPromise } from '@whatwg-node/promise-helpers';
export { isPromise, createDeferredPromise };
export function isAsyncIterable(body) {

@@ -358,32 +360,3 @@ return (body != null && typeof body === 'object' && typeof body[Symbol.asyncIterator] === 'function');

}
export function isPromise(val) {
return val?.then != null;
}
export function iterateAsyncVoid(iterable, callback) {
const iterator = iterable[Symbol.iterator]();
let stopEarlyFlag = false;
function stopEarlyFn() {
stopEarlyFlag = true;
}
function iterate() {
const { done: endOfIterator, value } = iterator.next();
if (endOfIterator) {
return;
}
const result$ = callback(value, stopEarlyFn);
if (isPromise(result$)) {
return result$.then(() => {
if (stopEarlyFlag) {
return;
}
return iterate();
});
}
if (stopEarlyFlag) {
return;
}
return iterate();
}
return iterate();
}
export { iterateAsyncVoid } from '@whatwg-node/promise-helpers';
export function handleErrorFromRequestHandler(error, ResponseCtor) {

@@ -407,19 +380,2 @@ return new ResponseCtor(error.stack || error.message || error.toString(), {

}
export function createDeferredPromise() {
let resolveFn;
let rejectFn;
const promise = new Promise(function deferredPromiseExecutor(resolve, reject) {
resolveFn = resolve;
rejectFn = reject;
});
return {
promise,
get resolve() {
return resolveFn;
},
get reject() {
return rejectFn;
},
};
}
export function handleAbortSignalAndPromiseResponse(response$, abortSignal) {

@@ -426,0 +382,0 @@ if (abortSignal?.aborted) {

@@ -1,2 +0,2 @@

import { isPromise } from './utils.js';
import { fakePromise } from '@whatwg-node/promise-helpers';
export function isUWSResponse(res) {

@@ -220,34 +220,2 @@ return !!res.onData;

}
export function fakePromise(value) {
if (isPromise(value)) {
return value;
}
// Write a fake promise to avoid the promise constructor
// being called with `new Promise` in the browser.
return {
then(resolve) {
if (resolve) {
const callbackResult = resolve(value);
if (isPromise(callbackResult)) {
return callbackResult;
}
return fakePromise(callbackResult);
}
return this;
},
catch() {
return this;
},
finally(cb) {
if (cb) {
const callbackResult = cb();
if (isPromise(callbackResult)) {
return callbackResult.then(() => value);
}
return fakePromise(value);
}
return this;
},
[Symbol.toStringTag]: 'Promise',
};
}
export { fakePromise };
{
"name": "@whatwg-node/server",
"version": "0.9.69",
"version": "0.9.70-alpha-20250225102211-278c6478ea45ec6f3c81c9f91295113accf29346",
"description": "Fetch API compliant HTTP Server adapter",
"sideEffects": false,
"dependencies": {
"@whatwg-node/disposablestack": "^0.0.5",
"@whatwg-node/disposablestack": "0.0.6-alpha-20250225102211-278c6478ea45ec6f3c81c9f91295113accf29346",
"@whatwg-node/fetch": "^0.10.5",
"@whatwg-node/promise-helpers": "0.0.1-alpha-20250225102211-278c6478ea45ec6f3c81c9f91295113accf29346",
"tslib": "^2.6.3"

@@ -10,0 +11,0 @@ },

@@ -5,3 +5,5 @@ import type { IncomingMessage, ServerResponse } from 'node:http';

import type { Readable } from 'node:stream';
import { createDeferredPromise, isPromise } from '@whatwg-node/promise-helpers';
import type { FetchAPI, FetchEvent } from './types.js';
export { isPromise, createDeferredPromise };
export declare function isAsyncIterable(body: any): body is AsyncIterable<any>;

@@ -34,12 +36,5 @@ export interface NodeRequest {

export declare function completeAssign(...args: any[]): any;
export declare function isPromise<T>(val: T | Promise<T>): val is Promise<T>;
export declare function iterateAsyncVoid<TInput>(iterable: Iterable<TInput>, callback: (input: TInput, stopEarly: () => void) => Promise<void> | void): Promise<void> | void;
export { iterateAsyncVoid } from '@whatwg-node/promise-helpers';
export declare function handleErrorFromRequestHandler(error: any, ResponseCtor: typeof Response): Response;
export declare function isolateObject<TIsolatedObject extends object>(originalCtx: TIsolatedObject, waitUntilFn?: (promiseLike: PromiseLike<unknown>) => void): TIsolatedObject;
export interface DeferredPromise<T = void> {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (reason: any) => void;
}
export declare function createDeferredPromise<T = void>(): DeferredPromise<T>;
export declare function handleAbortSignalAndPromiseResponse(response$: Promise<Response> | Response, abortSignal: AbortSignal): Response | Promise<Response>;

@@ -46,0 +41,0 @@ export declare const decompressedResponseMap: WeakMap<Response, Response>;

@@ -0,1 +1,2 @@

import { fakePromise } from '@whatwg-node/promise-helpers';
import type { FetchAPI } from './types.js';

@@ -31,3 +32,2 @@ export interface UWSRequest {

export declare function sendResponseToUwsOpts(uwsResponse: UWSResponse, fetchResponse: Response, controller: AbortController, fetchAPI: FetchAPI): Promise<void> | undefined;
export declare function fakePromise<T>(value: T): Promise<T>;
export {};
export { fakePromise };

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc