| 1 |
- {"ast":null,"code":"function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n/* global __resourceQuery, __webpack_hash__ */\n/// <reference types=\"webpack/module\" />\nimport webpackHotLog from \"webpack/hot/log.js\";\nimport stripAnsi from \"./utils/stripAnsi.js\";\nimport parseURL from \"./utils/parseURL.js\";\nimport socket from \"./socket.js\";\nimport { formatProblem, createOverlay } from \"./overlay.js\";\nimport { log, logEnabledFeatures, setLogLevel } from \"./utils/log.js\";\nimport sendMessage from \"./utils/sendMessage.js\";\nimport reloadApp from \"./utils/reloadApp.js\";\nimport createSocketURL from \"./utils/createSocketURL.js\";\n\n/**\n * @typedef {Object} OverlayOptions\n * @property {boolean | (error: Error) => boolean} [warnings]\n * @property {boolean | (error: Error) => boolean} [errors]\n * @property {boolean | (error: Error) => boolean} [runtimeErrors]\n * @property {string} [trustedTypesPolicyName]\n */\n\n/**\n * @typedef {Object} Options\n * @property {boolean} hot\n * @property {boolean} liveReload\n * @property {boolean} progress\n * @property {boolean | OverlayOptions} overlay\n * @property {string} [logging]\n * @property {number} [reconnect]\n */\n\n/**\n * @typedef {Object} Status\n * @property {boolean} isUnloading\n * @property {string} currentHash\n * @property {string} [previousHash]\n */\n\n/**\n * @param {boolean | { warnings?: boolean | string; errors?: boolean | string; runtimeErrors?: boolean | string; }} overlayOptions\n */\nvar decodeOverlayOptions = function decodeOverlayOptions(overlayOptions) {\n if (typeof overlayOptions === \"object\") {\n [\"warnings\", \"errors\", \"runtimeErrors\"].forEach(function (property) {\n if (typeof overlayOptions[property] === \"string\") {\n var overlayFilterFunctionString = decodeURIComponent(overlayOptions[property]);\n\n // eslint-disable-next-line no-new-func\n var overlayFilterFunction = new Function(\"message\", \"var callback = \".concat(overlayFilterFunctionString, \"\\n return callback(message)\"));\n overlayOptions[property] = overlayFilterFunction;\n }\n });\n }\n};\n\n/**\n * @type {Status}\n */\nvar status = {\n isUnloading: false,\n // TODO Workaround for webpack v4, `__webpack_hash__` is not replaced without HotModuleReplacement\n // eslint-disable-next-line camelcase\n currentHash: typeof __webpack_hash__ !== \"undefined\" ? __webpack_hash__ : \"\"\n};\n\n/** @type {Options} */\nvar options = {\n hot: false,\n liveReload: false,\n progress: false,\n overlay: false\n};\nvar parsedResourceQuery = parseURL(__resourceQuery);\nvar enabledFeatures = {\n \"Hot Module Replacement\": false,\n \"Live Reloading\": false,\n Progress: false,\n Overlay: false\n};\nif (parsedResourceQuery.hot === \"true\") {\n options.hot = true;\n enabledFeatures[\"Hot Module Replacement\"] = true;\n}\nif (parsedResourceQuery[\"live-reload\"] === \"true\") {\n options.liveReload = true;\n enabledFeatures[\"Live Reloading\"] = true;\n}\nif (parsedResourceQuery.progress === \"true\") {\n options.progress = true;\n enabledFeatures.Progress = true;\n}\nif (parsedResourceQuery.overlay) {\n try {\n options.overlay = JSON.parse(parsedResourceQuery.overlay);\n } catch (e) {\n log.error(\"Error parsing overlay options from resource query:\", e);\n }\n\n // Fill in default \"true\" params for partially-specified objects.\n if (typeof options.overlay === \"object\") {\n options.overlay = _objectSpread({\n errors: true,\n warnings: true,\n runtimeErrors: true\n }, options.overlay);\n decodeOverlayOptions(options.overlay);\n }\n enabledFeatures.Overlay = true;\n}\nif (parsedResourceQuery.logging) {\n options.logging = parsedResourceQuery.logging;\n}\nif (typeof parsedResourceQuery.reconnect !== \"undefined\") {\n options.reconnect = Number(parsedResourceQuery.reconnect);\n}\n\n/**\n * @param {string} level\n */\nfunction setAllLogLevel(level) {\n // This is needed because the HMR logger operate separately from dev server logger\n webpackHotLog.setLogLevel(level === \"verbose\" || level === \"log\" ? \"info\" : level);\n setLogLevel(level);\n}\nif (options.logging) {\n setAllLogLevel(options.logging);\n}\nlogEnabledFeatures(enabledFeatures);\nself.addEventListener(\"beforeunload\", function () {\n status.isUnloading = true;\n});\nvar overlay = typeof window !== \"undefined\" ? createOverlay(typeof options.overlay === \"object\" ? {\n trustedTypesPolicyName: options.overlay.trustedTypesPolicyName,\n catchRuntimeError: options.overlay.runtimeErrors\n} : {\n trustedTypesPolicyName: false,\n catchRuntimeError: options.overlay\n}) : {\n send: function send() {}\n};\nvar onSocketMessage = {\n hot: function hot() {\n if (parsedResourceQuery.hot === \"false\") {\n return;\n }\n options.hot = true;\n },\n liveReload: function liveReload() {\n if (parsedResourceQuery[\"live-reload\"] === \"false\") {\n return;\n }\n options.liveReload = true;\n },\n invalid: function invalid() {\n log.info(\"App updated. Recompiling...\");\n\n // Fixes #1042. overlay doesn't clear if errors are fixed but warnings remain.\n if (options.overlay) {\n overlay.send({\n type: \"DISMISS\"\n });\n }\n sendMessage(\"Invalid\");\n },\n /**\n * @param {string} hash\n */\n hash: function hash(_hash) {\n status.previousHash = status.currentHash;\n status.currentHash = _hash;\n },\n logging: setAllLogLevel,\n /**\n * @param {boolean} value\n */\n overlay: function overlay(value) {\n if (typeof document === \"undefined\") {\n return;\n }\n options.overlay = value;\n decodeOverlayOptions(options.overlay);\n },\n /**\n * @param {number} value\n */\n reconnect: function reconnect(value) {\n if (parsedResourceQuery.reconnect === \"false\") {\n return;\n }\n options.reconnect = value;\n },\n /**\n * @param {boolean} value\n */\n progress: function progress(value) {\n options.progress = value;\n },\n /**\n * @param {{ pluginName?: string, percent: number, msg: string }} data\n */\n \"progress-update\": function progressUpdate(data) {\n if (options.progress) {\n log.info(\"\".concat(data.pluginName ? \"[\".concat(data.pluginName, \"] \") : \"\").concat(data.percent, \"% - \").concat(data.msg, \".\"));\n }\n sendMessage(\"Progress\", data);\n },\n \"still-ok\": function stillOk() {\n log.info(\"Nothing changed.\");\n if (options.overlay) {\n overlay.send({\n type: \"DISMISS\"\n });\n }\n sendMessage(\"StillOk\");\n },\n ok: function ok() {\n sendMessage(\"Ok\");\n if (options.overlay) {\n overlay.send({\n type: \"DISMISS\"\n });\n }\n reloadApp(options, status);\n },\n // TODO: remove in v5 in favor of 'static-changed'\n /**\n * @param {string} file\n */\n \"content-changed\": function contentChanged(file) {\n log.info(\"\".concat(file ? \"\\\"\".concat(file, \"\\\"\") : \"Content\", \" from static directory was changed. Reloading...\"));\n self.location.reload();\n },\n /**\n * @param {string} file\n */\n \"static-changed\": function staticChanged(file) {\n log.info(\"\".concat(file ? \"\\\"\".concat(file, \"\\\"\") : \"Content\", \" from static directory was changed. Reloading...\"));\n self.location.reload();\n },\n /**\n * @param {Error[]} warnings\n * @param {any} params\n */\n warnings: function warnings(_warnings, params) {\n log.warn(\"Warnings while compiling.\");\n var printableWarnings = _warnings.map(function (error) {\n var _formatProblem = formatProblem(\"warning\", error),\n header = _formatProblem.header,\n body = _formatProblem.body;\n return \"\".concat(header, \"\\n\").concat(stripAnsi(body));\n });\n sendMessage(\"Warnings\", printableWarnings);\n for (var i = 0; i < printableWarnings.length; i++) {\n log.warn(printableWarnings[i]);\n }\n var overlayWarningsSetting = typeof options.overlay === \"boolean\" ? options.overlay : options.overlay && options.overlay.warnings;\n if (overlayWarningsSetting) {\n var warningsToDisplay = typeof overlayWarningsSetting === \"function\" ? _warnings.filter(overlayWarningsSetting) : _warnings;\n if (warningsToDisplay.length) {\n overlay.send({\n type: \"BUILD_ERROR\",\n level: \"warning\",\n messages: _warnings\n });\n }\n }\n if (params && params.preventReloading) {\n return;\n }\n reloadApp(options, status);\n },\n /**\n * @param {Error[]} errors\n */\n errors: function errors(_errors) {\n log.error(\"Errors while compiling. Reload prevented.\");\n var printableErrors = _errors.map(function (error) {\n var _formatProblem2 = formatProblem(\"error\", error),\n header = _formatProblem2.header,\n body = _formatProblem2.body;\n return \"\".concat(header, \"\\n\").concat(stripAnsi(body));\n });\n sendMessage(\"Errors\", printableErrors);\n for (var i = 0; i < printableErrors.length; i++) {\n log.error(printableErrors[i]);\n }\n var overlayErrorsSettings = typeof options.overlay === \"boolean\" ? options.overlay : options.overlay && options.overlay.errors;\n if (overlayErrorsSettings) {\n var errorsToDisplay = typeof overlayErrorsSettings === \"function\" ? _errors.filter(overlayErrorsSettings) : _errors;\n if (errorsToDisplay.length) {\n overlay.send({\n type: \"BUILD_ERROR\",\n level: \"error\",\n messages: _errors\n });\n }\n }\n },\n /**\n * @param {Error} error\n */\n error: function error(_error) {\n log.error(_error);\n },\n close: function close() {\n log.info(\"Disconnected!\");\n if (options.overlay) {\n overlay.send({\n type: \"DISMISS\"\n });\n }\n sendMessage(\"Close\");\n }\n};\nvar socketURL = createSocketURL(parsedResourceQuery);\nsocket(socketURL, onSocketMessage, options.reconnect);","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}
|