24 lines
No EOL
868 B
JavaScript
Executable file
24 lines
No EOL
868 B
JavaScript
Executable file
/**
|
|
* @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; |