1 | /**
|
2 | * The hard-coded singleton key for webpack-hot-middleware's client instance.
|
3 | *
|
4 | * [Ref](https://github.com/webpack-contrib/webpack-hot-middleware/blob/cb29abb9dde435a1ac8e9b19f82d7d36b1093198/client.js#L152)
|
5 | */
|
6 | const singletonKey = '__webpack_hot_middleware_reporter__';
|
7 |
|
8 | /**
|
9 | * Initializes a socket server for HMR for webpack-hot-middleware.
|
10 | * @param {function(*): void} messageHandler A handler to consume Webpack compilation messages.
|
11 | * @returns {void}
|
12 | */
|
13 | function initWHMEventSource(messageHandler) {
|
14 | const client = window[singletonKey] || require('webpack-hot-middleware/client');
|
15 |
|
16 | client.useCustomOverlay({
|
17 | showProblems(type, data) {
|
18 | const error = {
|
19 | type,
|
20 | data,
|
21 | };
|
22 |
|
23 | messageHandler(error);
|
24 | },
|
25 | clear() {
|
26 | messageHandler({ type: 'ok' });
|
27 | },
|
28 | });
|
29 | }
|
30 |
|
31 | module.exports = initWHMEventSource;
|