You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
868 B
26 lines
868 B
/** |
|
* @returns {string} |
|
*/ |
|
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"); |
|
} // Fallback to getting all scripts running in the document. |
|
|
|
|
|
var scriptElements = document.scripts || []; |
|
var scriptElementsWithSrc = Array.prototype.filter.call(scriptElements, function (element) { |
|
return element.getAttribute("src"); |
|
}); |
|
|
|
if (scriptElementsWithSrc.length > 0) { |
|
var currentScript = scriptElementsWithSrc[scriptElementsWithSrc.length - 1]; |
|
return currentScript.getAttribute("src"); |
|
} // Fail as there was no script to use. |
|
|
|
|
|
throw new Error("[webpack-dev-server] Failed to get current script source."); |
|
} |
|
|
|
export default getCurrentScriptSource; |