diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
| commit | d1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch) | |
| tree | 60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/webpack/hot/lazy-compilation-web.js | |
| parent | 7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff) | |
added hover prefixer
Diffstat (limited to 'node_modules/webpack/hot/lazy-compilation-web.js')
| -rw-r--r-- | node_modules/webpack/hot/lazy-compilation-web.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/node_modules/webpack/hot/lazy-compilation-web.js b/node_modules/webpack/hot/lazy-compilation-web.js new file mode 100644 index 00000000..ec8253f0 --- /dev/null +++ b/node_modules/webpack/hot/lazy-compilation-web.js @@ -0,0 +1,83 @@ +/* global __resourceQuery */ + +"use strict"; + +if (typeof EventSource !== "function") { + throw new Error( + "Environment doesn't support lazy compilation (requires EventSource)" + ); +} + +var urlBase = decodeURIComponent(__resourceQuery.slice(1)); +/** @type {EventSource | undefined} */ +var activeEventSource; +var activeKeys = new Map(); +var errorHandlers = new Set(); + +var updateEventSource = function updateEventSource() { + if (activeEventSource) activeEventSource.close(); + if (activeKeys.size) { + activeEventSource = new EventSource( + urlBase + Array.from(activeKeys.keys()).join("@") + ); + /** + * @this {EventSource} + * @param {Event & { message?: string, filename?: string, lineno?: number, colno?: number, error?: Error }} event event + */ + activeEventSource.onerror = function (event) { + errorHandlers.forEach(function (onError) { + onError( + new Error( + "Problem communicating active modules to the server: " + + event.message + + " " + + event.filename + + ":" + + event.lineno + + ":" + + event.colno + + " " + + event.error + ) + ); + }); + }; + } else { + activeEventSource = undefined; + } +}; + +/** + * @param {{ data: string, onError: (err: Error) => void, active: boolean, module: module }} options options + * @returns {() => void} function to destroy response + */ +exports.keepAlive = function (options) { + var data = options.data; + var onError = options.onError; + var active = options.active; + var module = options.module; + errorHandlers.add(onError); + var value = activeKeys.get(data) || 0; + activeKeys.set(data, value + 1); + if (value === 0) { + updateEventSource(); + } + if (!active && !module.hot) { + console.log( + "Hot Module Replacement is not enabled. Waiting for process restart..." + ); + } + + return function () { + errorHandlers.delete(onError); + setTimeout(function () { + var value = activeKeys.get(data); + if (value === 1) { + activeKeys.delete(data); + updateEventSource(); + } else { + activeKeys.set(data, value - 1); + } + }, 1000); + }; +}; |
