@fpjs-incubator/broyster
Version:
44 lines (43 loc) • 1.84 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.calculateHttpsPort = exports.createServer = void 0;
const http_1 = require("http");
const https_1 = require("https");
const util_1 = require("util");
function createServer(...args) {
const httpServer = (0, http_1.createServer)(...args);
const httpsServer = (0, https_1.createServer)(...args);
return {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
on(event, args) {
httpServer.on(event, args);
httpsServer.on(event, args);
},
// eslint-disable-next-line @typescript-eslint/no-explicit-any
listen(server, callback) {
const port = parseInt(new URL(server._connectionKey.replace('4:', 'http://')).port);
Promise.all([
(0, util_1.promisify)(httpServer.listen.bind(httpServer, server))(),
(0, util_1.promisify)(httpsServer.listen.bind(httpsServer, calculateHttpsPort(port)))(),
]).then(() => callback === null || callback === void 0 ? void 0 : callback(), callback);
},
listeners(listener) {
return httpServer.listeners(listener);
},
removeAllListeners(listener) {
httpServer.removeAllListeners(listener);
httpsServer.removeAllListeners(listener);
},
close(callback) {
Promise.all([
(0, util_1.promisify)(httpServer.close.bind(httpServer))(),
(0, util_1.promisify)(httpsServer.close.bind(httpsServer))(),
]).then(() => callback === null || callback === void 0 ? void 0 : callback(), callback);
},
};
}
exports.createServer = createServer;
function calculateHttpsPort(port) {
return port + 1;
}
exports.calculateHttpsPort = calculateHttpsPort;
;