diff --git a/lib/Server.js b/lib/Server.js index 6a40a9b0af..1d59bcbca3 100644 --- a/lib/Server.js +++ b/lib/Server.js @@ -91,14 +91,10 @@ class Server { this.hot = this.options.hot || this.options.hotOnly; this.watchOptions = options.watchOptions || {}; - if (!this.options.clientSocketOptions) { - this.options.clientSocketOptions = {}; - } - // Replace leading and trailing slashes to normalize path this.sockPath = `/${ - this.options.clientSocketOptions.path - ? this.options.clientSocketOptions.path.replace(/^\/|\/$/g, '') + this.options.sockPath + ? this.options.sockPath.replace(/^\/|\/$/g, '') : 'sockjs-node' }`; diff --git a/lib/options.json b/lib/options.json index d12f058346..87319af51c 100644 --- a/lib/options.json +++ b/lib/options.json @@ -39,27 +39,6 @@ "clientLogLevel": { "enum": ["info", "warn", "error", "debug", "trace", "silent"] }, - "clientSocketOptions": { - "type": "object", - "properties": { - "host": { - "type": "string" - }, - "path": { - "type": "string" - }, - "port": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ] - } - } - }, "compress": { "type": "boolean" }, @@ -318,6 +297,25 @@ "setup": { "instanceof": "Function" }, + "sockHost": { + "type": "string" + }, + "sockPath": { + "type": "string" + }, + "sockPort": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "socket": { "type": "string" }, @@ -405,7 +403,6 @@ "ca": "should be {String|Buffer}", "cert": "should be {String|Buffer}", "clientLogLevel": "should be {String} and equal to one of the allowed values\n\n [ 'silent', 'info', 'debug', 'trace', 'error', 'warn' ]\n\n (https://webpack.js.org/configuration/dev-server/#devserverclientloglevel)", - "clientSocketOptions": "should be {Object} (https://webpack.js.org/configuration/dev-server/#devserverclientsocketoptions)", "compress": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devservercompress)", "contentBase": "should be {Number|String|Array} (https://webpack.js.org/configuration/dev-server/#devservercontentbase)", "disableHostCheck": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserverdisablehostcheck)", @@ -449,6 +446,9 @@ "serveIndex": "should be {Boolean} (https://webpack.js.org/configuration/dev-server/#devserverserveindex)", "serverSideRender": "should be {Boolean} (https://github.com/webpack/webpack-dev-middleware#serversiderender)", "setup": "should be {Function} (https://webpack.js.org/configuration/dev-server/#devserversetup)", + "sockHost": "should be {String|Null} (https://webpack.js.org/configuration/dev-server/#devserversockhost)", + "sockPath": "should be {String} (https://webpack.js.org/configuration/dev-server/#devserversockpath)", + "sockPort": "should be {Number|String|Null} (https://webpack.js.org/configuration/dev-server/#devserversockport)", "socket": "should be {String} (https://webpack.js.org/configuration/dev-server/#devserversocket)", "staticOptions": "should be {Object} (https://webpack.js.org/configuration/dev-server/#devserverstaticoptions)", "stats": "should be {Object|Boolean} (https://webpack.js.org/configuration/dev-server/#devserverstats-)", diff --git a/lib/utils/addEntries.js b/lib/utils/addEntries.js index 4bba943c40..501b12e080 100644 --- a/lib/utils/addEntries.js +++ b/lib/utils/addEntries.js @@ -27,18 +27,14 @@ function addEntries(config, options, server) { }, }; - if (!options.clientSocketOptions) { - options.clientSocketOptions = {}; - } - /** @type {string} */ const domain = createDomain(options, app); /** @type {string} */ - const sockHost = options.clientSocketOptions.host ? `&sockHost=${options.clientSocketOptions.host}` : ''; + const sockHost = options.sockHost ? `&sockHost=${options.sockHost}` : ''; /** @type {string} */ - const sockPath = options.clientSocketOptions.path ? `&sockPath=${options.clientSocketOptions.path}` : ''; + const sockPath = options.sockPath ? `&sockPath=${options.sockPath}` : ''; /** @type {string} */ - const sockPort = options.clientSocketOptions.port ? `&sockPort=${options.clientSocketOptions.port}` : ''; + const sockPort = options.sockPort ? `&sockPort=${options.sockPort}` : ''; /** @type {string} */ const clientEntry = `${require.resolve( '../../client/' diff --git a/lib/utils/createConfig.js b/lib/utils/createConfig.js index 8e7475035f..d5a3e1db99 100644 --- a/lib/utils/createConfig.js +++ b/lib/utils/createConfig.js @@ -31,23 +31,16 @@ function createConfig(config, argv, { port }) { options.socket = argv.socket; } - if ( - (argv.sockHost || argv.sockPath || argv.sockPort) && - !options.clientSocketOptions - ) { - options.clientSocketOptions = {}; - } - if (argv.sockHost) { - options.clientSocketOptions.host = argv.sockHost; + options.sockHost = argv.sockHost; } if (argv.sockPath) { - options.clientSocketOptions.path = argv.sockPath; + options.sockPath = argv.sockPath; } if (argv.sockPort) { - options.clientSocketOptions.port = argv.sockPort; + options.sockPort = argv.sockPort; } if (argv.liveReload === false) { diff --git a/test/e2e/ClientOptions.test.js b/test/e2e/ClientOptions.test.js index 42b971359b..1d7f4aa6e8 100644 --- a/test/e2e/ClientOptions.test.js +++ b/test/e2e/ClientOptions.test.js @@ -96,9 +96,7 @@ describe('Client complex inline script path', () => { poll: true, }, public: 'myhost.test', - clientSocketOptions: { - path: '/foo/test/bar/', - }, + sockPath: '/foo/test/bar/', quiet: true, }; testServer.startAwaitingCompilation(config, options, done); @@ -140,10 +138,8 @@ describe('Client complex inline script path with sockPort', () => { watchOptions: { poll: true, }, - clientSocketOptions: { - path: '/foo/test/bar/', - port: port3, - }, + sockPath: '/foo/test/bar/', + sockPort: port3, quiet: true, }; testServer.startAwaitingCompilation(config, options, done); @@ -189,9 +185,7 @@ describe('Client complex inline script path with sockPort, no sockPath', () => { watchOptions: { poll: true, }, - clientSocketOptions: { - port: port3, - }, + sockPort: port3, quiet: true, }; testServer.startAwaitingCompilation(config, options, done); @@ -231,9 +225,7 @@ describe('Client complex inline script path with sockHost', () => { watchOptions: { poll: true, }, - clientSocketOptions: { - host: 'myhost.test', - }, + sockHost: 'myhost.test', quiet: true, }; testServer.startAwaitingCompilation(config, options, done); diff --git a/test/options.test.js b/test/options.test.js index 1c28806cf7..8f41f4b65f 100644 --- a/test/options.test.js +++ b/test/options.test.js @@ -290,8 +290,16 @@ describe('options', () => { success: [''], failure: [false], }, - clientSocketOptions: { - success: [{}], + sockHost: { + success: [''], + failure: [false], + }, + sockPath: { + success: [''], + failure: [false], + }, + sockPort: { + success: ['', 0, null], failure: [false], }, staticOptions: { diff --git a/test/server/sockPath-option.test.js b/test/server/sockPath-option.test.js index 484cbfaf76..860e3818be 100644 --- a/test/server/sockPath-option.test.js +++ b/test/server/sockPath-option.test.js @@ -37,9 +37,7 @@ describe('sockPath options', () => { server = testServer.start( config, { - clientSocketOptions: { - path: '/foo/test/bar/', - }, + sockPath: '/foo/test/bar/', port, }, done diff --git a/test/server/transportMode-option.test.js b/test/server/transportMode-option.test.js index 55d819fa4e..d4a54ffc12 100644 --- a/test/server/transportMode-option.test.js +++ b/test/server/transportMode-option.test.js @@ -195,9 +195,7 @@ describe('transportMode', () => { config, { port, - clientSocketOptions: { - path: '/foo/test/bar/', - }, + sockPath: '/foo/test/bar/', transportMode: { server: class MySockJSServer extends BaseServer { constructor(serv) { @@ -219,7 +217,7 @@ describe('transportMode', () => { prefix: this.server.sockPath, }); - sockPath = server.options.clientSocketOptions.path; + sockPath = server.options.sockPath; } send(connection, message) { diff --git a/test/server/utils/__snapshots__/createConfig.test.js.snap b/test/server/utils/__snapshots__/createConfig.test.js.snap index 9e9b6ea851..585d74105c 100644 --- a/test/server/utils/__snapshots__/createConfig.test.js.snap +++ b/test/server/utils/__snapshots__/createConfig.test.js.snap @@ -1202,14 +1202,12 @@ Object { exports[`createConfig sockHost option 1`] = ` Object { - "clientSocketOptions": Object { - "host": true, - }, "hot": true, "hotOnly": false, "noInfo": true, "port": 8080, "publicPath": "/", + "sockHost": true, "stats": Object { "cached": false, "cachedAssets": false, @@ -1219,14 +1217,12 @@ Object { exports[`createConfig sockPath option 1`] = ` Object { - "clientSocketOptions": Object { - "path": "path", - }, "hot": true, "hotOnly": false, "noInfo": true, "port": 8080, "publicPath": "/", + "sockPath": "path", "stats": Object { "cached": false, "cachedAssets": false, @@ -1236,14 +1232,12 @@ Object { exports[`createConfig sockPort option 1`] = ` Object { - "clientSocketOptions": Object { - "port": "port", - }, "hot": true, "hotOnly": false, "noInfo": true, "port": 8080, "publicPath": "/", + "sockPort": "port", "stats": Object { "cached": false, "cachedAssets": false,