'use strict'; /* global __resourceQuery WorkerGlobalScope self */ /* eslint prefer-destructuring: off */ const url = require('url'); const stripAnsi = require('strip-ansi'); const log = require('loglevel').getLogger('webpack-dev-server'); const socket = require('./socket'); const overlay = require('./overlay'); function getCurrentScriptSource() { // `document.currentScript` is the most accurate way to find the current script, // but is not supported in all browsers. if (document.currentScript) { return document.currentScript.getAttribute('src'); } // Fall back to getting all scripts in the document. const scriptElements = document.scripts || []; const currentScript = scriptElements[scriptElements.length - 1]; if (currentScript) { return currentScript.getAttribute('src'); } // Fail as there was no script to use. throw new Error('[WDS] Failed to get current script source.'); } let urlParts; let hotReload = true; if (typeof window !== 'undefined') { const qs = window.location.search.toLowerCase(); hotReload = qs.indexOf('hotreload=false') === -1; } if (typeof __resourceQuery === 'string' && __resourceQuery) { // If this bundle is inlined, use the resource query to get the correct url. urlParts = url.parse(__resourceQuery.substr(1)); } else { // Else, get the url from the