Skip to content

Commit 1e7d243

Browse files
committed
refactor: remove killable in favor of mehtod
1 parent f94b84f commit 1e7d243

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed

lib/Server.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ const util = require("util");
77
const fs = require("graceful-fs");
88
const ipaddr = require("ipaddr.js");
99
const internalIp = require("internal-ip");
10-
const killable = require("killable");
1110
const express = require("express");
1211
const { validate } = require("schema-utils");
1312
const schema = require("./options.json");
@@ -61,6 +60,31 @@ class Server {
6160
return /^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(URL);
6261
}
6362

63+
static killable(server) {
64+
let sockets = [];
65+
66+
server.on("connection", (socket) => {
67+
// add socket to list
68+
sockets.push(socket);
69+
70+
socket.once("close", () => {
71+
// remove socket from list
72+
sockets.splice(sockets.indexOf(socket), 1);
73+
});
74+
});
75+
76+
server.kill = (cb) => {
77+
server.close(cb);
78+
sockets.forEach((socket) => {
79+
socket.destroy();
80+
});
81+
// reset so the server can be restarted
82+
sockets = [];
83+
};
84+
85+
return server;
86+
}
87+
6488
static async getHostname(hostname) {
6589
if (hostname === "local-ip") {
6690
return (await internalIp.v4()) || (await internalIp.v6()) || "0.0.0.0";
@@ -682,7 +706,7 @@ class Server {
682706
this.setupFeatures();
683707
this.createServer();
684708

685-
killable(this.server);
709+
Server.killable(this.server);
686710

687711
if (this.options.setupExitSignals) {
688712
const signals = ["SIGINT", "SIGTERM"];

package-lock.json

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
"http-proxy-middleware": "^2.0.0",
4646
"internal-ip": "^6.2.0",
4747
"ipaddr.js": "^2.0.1",
48-
"killable": "^1.0.1",
4948
"open": "^8.0.9",
5049
"p-retry": "^4.5.0",
5150
"portfinder": "^1.0.28",

0 commit comments

Comments
 (0)