1 line
25 KiB
JSON
1 line
25 KiB
JSON
![]() |
{"ast":null,"code":"/*eslint-env browser*/\n/*global __resourceQuery __webpack_public_path__*/\n\nvar options = {\n path: '/__webpack_hmr',\n timeout: 20 * 1000,\n overlay: true,\n reload: false,\n log: true,\n warn: true,\n name: '',\n autoConnect: true,\n overlayStyles: {},\n overlayWarnings: false,\n ansiColors: {}\n};\nif (__resourceQuery) {\n var params = Array.from(new URLSearchParams(__resourceQuery.slice(1)));\n var overrides = params.reduce(function (memo, param) {\n memo[param[0]] = param[1];\n return memo;\n }, {});\n setOverrides(overrides);\n}\nif (typeof window === 'undefined') {\n // do nothing\n} else if (typeof window.EventSource === 'undefined') {\n console.warn(\"webpack-hot-middleware's client requires EventSource to work. \" + 'You should include a polyfill if you want to support this browser: ' + 'https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events#Tools');\n} else {\n if (options.autoConnect) {\n connect();\n }\n}\n\n/* istanbul ignore next */\nfunction setOptionsAndConnect(overrides) {\n setOverrides(overrides);\n connect();\n}\nfunction setOverrides(overrides) {\n if (overrides.autoConnect) options.autoConnect = overrides.autoConnect == 'true';\n if (overrides.path) options.path = overrides.path;\n if (overrides.timeout) options.timeout = overrides.timeout;\n if (overrides.overlay) options.overlay = overrides.overlay !== 'false';\n if (overrides.reload) options.reload = overrides.reload !== 'false';\n if (overrides.noInfo && overrides.noInfo !== 'false') {\n options.log = false;\n }\n if (overrides.name) {\n options.name = overrides.name;\n }\n if (overrides.quiet && overrides.quiet !== 'false') {\n options.log = false;\n options.warn = false;\n }\n if (overrides.dynamicPublicPath) {\n options.path = __webpack_public_path__ + options.path;\n }\n if (overrides.ansiColors) options.ansiColors = JSON.parse(overrides.ansiColors);\n if (overrides.overlayStyles) options.overlayStyles = JSON.parse(overrides.overlayStyles);\n if (overrides.overlayWarnings) {\n options.overlayWarnings = overrides.overlayWarnings == 'true';\n }\n}\nfunction EventSourceWrapper() {\n var source;\n var lastActivity = new Date();\n var listeners = [];\n init();\n var timer = setInterval(function () {\n if (new Date() - lastActivity > options.timeout) {\n handleDisconnect();\n }\n }, options.timeout / 2);\n function init() {\n source = new window.EventSource(options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onmessage = handleMessage;\n }\n function handleOnline() {\n if (options.log) console.log('[HMR] connected');\n lastActivity = new Date();\n }\n function handleMessage(event) {\n lastActivity = new Date();\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](event);\n }\n }\n function handleDisconnect() {\n clearInterval(timer);\n source.close();\n setTimeout(init, options.timeout);\n }\n return {\n addMessageListener: function (fn) {\n listeners.push(fn);\n }\n };\n}\nfunction getEventSourceWrapper() {\n if (!window.__whmEventSourceWrapper) {\n window.__whmEventSourceWrapper = {};\n }\n if (!window.__whmEventSourceWrapper[options.path]) {\n // cache the wrapper for other entries loaded on\n // the same page with the same options.path\n window.__whmEventSourceWrapper[options.path] = EventSourceWrapper();\n }\n return window.__whmEventSourceWrapper[options.path];\n}\nfunction connect() {\n getEventSourceWrapper().addMessageListener(handleMessage);\n function handleMessage(event) {\n if (event.data == '\\uD83D\\uDC93') {\n return;\n }\n try {\n processMessage(JSON.parse(event.data));\n } catch (ex) {\n if (options.warn) {\n console.warn('Invalid HMR message: ' + event.data + '\\n' + ex);\n }\n }\n }\n}\n\n// the reporter needs to be a singleton on the page\n// in case the client is being used by multiple bundles\n// we only want to report once.\n// all the e
|