From d67bdb7e9baf397d58eee458b9de7fee90d16bb7 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Thu, 11 May 2023 15:09:14 -0700 Subject: [node:http] Fix `close()` to accept a callback and implement `closeAllConnections` --- src/bun.js/http.exports.js | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/bun.js/http.exports.js b/src/bun.js/http.exports.js index dda9664bb..0e0686961 100644 --- a/src/bun.js/http.exports.js +++ b/src/bun.js/http.exports.js @@ -221,12 +221,30 @@ export class Server extends EventEmitter { if (callback) this.on("request", callback); } - close() { - if (this.#server) { - this.emit("close"); - this.#server.stop(); - this.#server = undefined; + closeAllConnections() { + const server = this.#server; + if (!server) { + return; + } + this.#server = undefined; + server.stop(true); + this.emit("close"); + } + + closeIdleConnections() { + // not actually implemented + } + + close(optionalCallback) { + const server = this.#server; + if (!server) { + if (typeof optionalCallback === "function") process.nextTick(new Error("Server is not running")); + return; } + this.#server = undefined; + if (typeof optionalCallback === "function") this.once("close", optionalCallback); + this.emit("close"); + server.stop(); } address() { -- cgit v1.2.3