UNPKG

@revoloo/cypress6

Version:

Cypress.io end to end testing tool

32 lines (25 loc) 838 B
import net from 'net' /** * `allowDestroy` adds a `destroy` method to a `net.Server`. `destroy(cb)` * will kill all open connections and call `cb` when the server is closed. * * Note: `server-destroy` NPM package cannot be used - it does not track * `secureConnection` events. */ export function allowDestroy (server: net.Server) { let connections: net.Socket[] = [] function trackConn (conn) { connections.push(conn) conn.on('close', () => { connections = connections.filter((connection) => connection !== conn) }) } server.on('connection', trackConn) server.on('secureConnection', trackConn) // @ts-ignore Property 'destroy' does not exist on type 'Server'. server.destroy = function (cb) { server.close(cb) connections.map((connection) => connection.destroy()) } return server }