From 053522172a06cb3ddae2a2c2374f80edc1b514e2 Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Tue, 27 Sep 2022 05:26:52 +0300 Subject: [PATCH 1/2] feat: allow to set the `sockjs_url` option (only `sockjs`) --- lib/servers/SockJSServer.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/servers/SockJSServer.js b/lib/servers/SockJSServer.js index 5952886ef5..c3537ab407 100644 --- a/lib/servers/SockJSServer.js +++ b/lib/servers/SockJSServer.js @@ -41,9 +41,16 @@ module.exports = class SockJSServer extends BaseServer { constructor(server) { super(server); + const sockjsUrl = + /** @type {NonNullable} */ + ( + /** @type {WebSocketServerConfiguration} */ + (this.server.options.webSocketServer).options + ).sockjsUrl ?? "/__webpack_dev_server__/sockjs.bundle.js"; + this.implementation = sockjs.createServer({ // Use provided up-to-date sockjs-client - sockjs_url: "/__webpack_dev_server__/sockjs.bundle.js", + sockjs_url: sockjsUrl, // Default logger is very annoy. Limit useless logs. /** * @param {string} severity From 58a6806856b22de75f0feede7a2b887c863ae8df Mon Sep 17 00:00:00 2001 From: "alexander.akait" Date: Tue, 27 Sep 2022 05:50:39 +0300 Subject: [PATCH 2/2] refactor: logic --- lib/servers/SockJSServer.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/servers/SockJSServer.js b/lib/servers/SockJSServer.js index c3537ab407..dcadf52c00 100644 --- a/lib/servers/SockJSServer.js +++ b/lib/servers/SockJSServer.js @@ -41,16 +41,28 @@ module.exports = class SockJSServer extends BaseServer { constructor(server) { super(server); - const sockjsUrl = + const webSocketServerOptions = /** @type {NonNullable} */ ( /** @type {WebSocketServerConfiguration} */ (this.server.options.webSocketServer).options - ).sockjsUrl ?? "/__webpack_dev_server__/sockjs.bundle.js"; + ); + + /** + * @param {NonNullable} options + * @returns {string} + */ + const getSockjsUrl = (options) => { + if (typeof options.sockjsUrl !== "undefined") { + return options.sockjsUrl; + } + + return "/__webpack_dev_server__/sockjs.bundle.js"; + }; this.implementation = sockjs.createServer({ // Use provided up-to-date sockjs-client - sockjs_url: sockjsUrl, + sockjs_url: getSockjsUrl(webSocketServerOptions), // Default logger is very annoy. Limit useless logs. /** * @param {string} severity @@ -80,15 +92,8 @@ module.exports = class SockJSServer extends BaseServer { }; const options = { - .../** @type {WebSocketServerConfiguration} */ - (this.server.options.webSocketServer).options, - prefix: getPrefix( - /** @type {NonNullable} */ - ( - /** @type {WebSocketServerConfiguration} */ - (this.server.options.webSocketServer).options - ) - ), + ...webSocketServerOptions, + prefix: getPrefix(webSocketServerOptions), }; this.implementation.installHandlers(