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

destroyable-server

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

destroyable-server - npm Package Compare versions

Comparing version

to
1.1.1

14

dist/index.js

@@ -37,2 +37,11 @@ "use strict";

};
const checkDestroyed = (conn) => {
do {
if (conn.destroyed)
return true;
if (!conn._parent)
return false;
conn = conn._parent;
} while (conn);
};
server.on('connection', function (conn) {

@@ -67,3 +76,6 @@ const key = conn.remoteAddress + ':' + conn.remotePort;

closePromises.push(new Promise((resolve) => {
if (conn.closed || conn.destroyed)
if (conn.closed || // Node v20+
// For Node <v18, .closed doesn't exist. For Node v18/19, 'destroyed' isn't always set
// on TLSSockets when the underlying socket is destroyed (so we check parents).
checkDestroyed(conn))
return resolve();

@@ -70,0 +82,0 @@ conn.on('close', resolve);

@@ -11,2 +11,4 @@ import * as net from 'net';

type Socket = net.Socket & { _parent?: Socket };
/**

@@ -24,3 +26,3 @@ * Makes a server 'destroyable': tracks all active server connections, and adds a

export function makeDestroyable<S extends net.Server>(server: S): DestroyableServer<S> {
const connectionDict: { [key: string]: Array<net.Socket> } = {};
const connectionDict: { [key: string]: Array<Socket> } = {};

@@ -47,2 +49,10 @@ const addConnection = (key: string, conn: net.Socket) => {

const checkDestroyed = (conn: Socket) => {
do {
if (conn.destroyed) return true;
if (!conn._parent) return false;
conn = conn._parent;
} while (conn);
}
server.on('connection', function(conn: net.Socket) {

@@ -80,3 +90,8 @@ const key = conn.remoteAddress + ':' + conn.remotePort;

closePromises.push(new Promise((resolve) => {
if (conn.closed || conn.destroyed) return resolve();
if (
conn.closed || // Node v20+
// For Node <v18, .closed doesn't exist. For Node v18/19, 'destroyed' isn't always set
// on TLSSockets when the underlying socket is destroyed (so we check parents).
checkDestroyed(conn)
) return resolve();
conn.on('close', resolve);

@@ -83,0 +98,0 @@ }));

2

package.json
{
"name": "destroyable-server",
"version": "1.1.0",
"version": "1.1.1",
"author": "Tim Perry <tim@httptoolkit.com>",

@@ -5,0 +5,0 @@ "description": "A tiny Node.js module to make any server force-closeable",

Sorry, the diff of this file is not supported yet