theatre/packages/playground/devEnv/createServerForceClose.ts

21 lines
514 B
TypeScript

import type {Server, Socket} from 'net'
export function createServerForceClose(server: Server) {
const openConnections = new Set<Socket>()
server.on('connection', (conn) => {
openConnections.add(conn)
conn.on('close', () => openConnections.delete(conn))
})
return function serverForceClose(): Promise<void> {
for (const openConnection of openConnections) {
openConnection.destroy()
}
return new Promise((res) => {
server.close(() => {
res()
})
})
}
}