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
1
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.10.0-alpha-20250205113213-1ddf37bf9cb93e796a62ac800ea0b4100bb2eaa4 to 0.10.0-alpha-20250218152320-bb3f75a75f6ca8fcae41c014c88eee498bd6489c

25

cjs/createServerAdapter.js

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

const onResponseHooks = [];
let tracer;
const waitUntilPromises = new Set();

@@ -65,2 +66,8 @@ let _disposableStack;

for (const plugin of options.plugins) {
if (plugin.tracer) {
if (tracer) {
throw new Error('Multiple tracers have been declared. Only one plugin with a tracer is allowed.');
}
tracer = plugin.tracer;
}
if (plugin.onRequest) {

@@ -85,3 +92,3 @@ onRequestHooks.push(plugin.onRequest);

}
const handleRequest = onRequestHooks.length > 0 || onResponseHooks.length > 0
let handleRequest = onRequestHooks.length > 0 || onResponseHooks.length > 0
? function handleRequest(request, serverContext) {

@@ -123,3 +130,3 @@ let requestHandler = givenHandleRequest;

}
const onResponseHookPayload = {
const onResponseHooksIteration$ = (0, utils_js_1.iterateAsyncVoid)(onResponseHooks, onResponseHook => onResponseHook({
request,

@@ -132,4 +139,3 @@ response,

fetchAPI,
};
const onResponseHooksIteration$ = (0, utils_js_1.iterateAsyncVoid)(onResponseHooks, onResponseHook => onResponseHook(onResponseHookPayload));
}));
if ((0, utils_js_1.isPromise)(onResponseHooksIteration$)) {

@@ -156,2 +162,13 @@ return onResponseHooksIteration$.then(() => response);

: givenHandleRequest;
if (tracer?.request) {
const originalRequestHandler = handleRequest;
handleRequest = (request, initialContext) => {
let response;
const tracerPromise = tracer.request({ request }, () => {
response = originalRequestHandler(request, initialContext);
return (0, utils_js_1.isPromise)(response) ? response.then(() => undefined) : undefined;
});
return (0, utils_js_1.isPromise)(tracerPromise) ? tracerPromise.then(() => response) : response;
};
}
// TODO: Remove this on the next major version

@@ -158,0 +175,0 @@ function handleNodeRequest(nodeRequest, ...ctx) {

@@ -25,2 +25,3 @@ import { AsyncDisposableStack, DisposableSymbols } from '@whatwg-node/disposablestack';

const onResponseHooks = [];
let tracer;
const waitUntilPromises = new Set();

@@ -61,2 +62,8 @@ let _disposableStack;

for (const plugin of options.plugins) {
if (plugin.tracer) {
if (tracer) {
throw new Error('Multiple tracers have been declared. Only one plugin with a tracer is allowed.');
}
tracer = plugin.tracer;
}
if (plugin.onRequest) {

@@ -81,3 +88,3 @@ onRequestHooks.push(plugin.onRequest);

}
const handleRequest = onRequestHooks.length > 0 || onResponseHooks.length > 0
let handleRequest = onRequestHooks.length > 0 || onResponseHooks.length > 0
? function handleRequest(request, serverContext) {

@@ -119,3 +126,3 @@ let requestHandler = givenHandleRequest;

}
const onResponseHookPayload = {
const onResponseHooksIteration$ = iterateAsyncVoid(onResponseHooks, onResponseHook => onResponseHook({
request,

@@ -128,4 +135,3 @@ response,

fetchAPI,
};
const onResponseHooksIteration$ = iterateAsyncVoid(onResponseHooks, onResponseHook => onResponseHook(onResponseHookPayload));
}));
if (isPromise(onResponseHooksIteration$)) {

@@ -152,2 +158,13 @@ return onResponseHooksIteration$.then(() => response);

: givenHandleRequest;
if (tracer?.request) {
const originalRequestHandler = handleRequest;
handleRequest = (request, initialContext) => {
let response;
const tracerPromise = tracer.request({ request }, () => {
response = originalRequestHandler(request, initialContext);
return isPromise(response) ? response.then(() => undefined) : undefined;
});
return isPromise(tracerPromise) ? tracerPromise.then(() => response) : response;
};
}
// TODO: Remove this on the next major version

@@ -154,0 +171,0 @@ function handleNodeRequest(nodeRequest, ...ctx) {

2

package.json
{
"name": "@whatwg-node/server",
"version": "0.10.0-alpha-20250205113213-1ddf37bf9cb93e796a62ac800ea0b4100bb2eaa4",
"version": "0.10.0-alpha-20250218152320-bb3f75a75f6ca8fcae41c014c88eee498bd6489c",
"description": "Fetch API compliant HTTP Server adapter",

@@ -5,0 +5,0 @@ "sideEffects": false,

import { FetchAPI, ServerAdapterRequestHandler, type ServerAdapterInitialContext } from '../types.js';
export interface ServerAdapterPlugin<TServerContext = {}> {
/**
* A tracer insance. It can be used to wrap the entire request handling pipeline (including the
* plugin hooks). It is mostly used for observability (monitoring, tracing, etc...).
*/
tracer?: Tracer;
/**
* This hook is invoked for ANY incoming HTTP request. Here you can manipulate the request,

@@ -41,2 +46,7 @@ * create a short circuit before the request handler takes it over.

}
export type Tracer = {
request: (payload: {
request: Request;
}, wrapped: () => Promise<void> | void) => Promise<void> | void;
};
export type OnRequestHook<TServerContext> = (payload: OnRequestEventPayload<TServerContext>) => Promise<void> | void;

@@ -43,0 +53,0 @@ export interface OnRequestEventPayload<TServerContext> {

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