UNPKG

871 BJavaScriptView Raw
1/* global __webpack_dev_server_client__ */
2
3const url = require('native-url');
4const getSocketUrlParts = require('./utils/getSocketUrlParts');
5
6/**
7 * Initializes a socket server for HMR for webpack-dev-server.
8 * @param {function(*): void} messageHandler A handler to consume Webpack compilation messages.
9 * @param {string} [resourceQuery] Webpack's `__resourceQuery` string.
10 * @returns {void}
11 */
12function initWDSSocket(messageHandler, resourceQuery) {
13 if (typeof __webpack_dev_server_client__ !== 'undefined') {
14 const SocketClient = __webpack_dev_server_client__;
15
16 const urlParts = getSocketUrlParts(resourceQuery);
17 const connection = new SocketClient(url.format(urlParts));
18
19 connection.onMessage(function onSocketMessage(data) {
20 const message = JSON.parse(data);
21 messageHandler(message);
22 });
23 }
24}
25
26module.exports = initWDSSocket;