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.
22 lines
744 B
22 lines
744 B
/**
|
|
* Gets the source (i.e. host) of the script currently running.
|
|
* @returns {string}
|
|
*/
|
|
function getCurrentScriptSource() {
|
|
// `document.currentScript` is the most accurate way to get the current running script,
|
|
// but is not supported in all browsers (most notably, IE).
|
|
if (document.currentScript) {
|
|
return document.currentScript.getAttribute('src');
|
|
}
|
|
|
|
// Fallback to getting all scripts running in the document.
|
|
const scriptElements = document.scripts || [];
|
|
const currentScript = scriptElements[scriptElements.length - 1];
|
|
if (currentScript) {
|
|
return currentScript.getAttribute('src');
|
|
}
|
|
|
|
throw new Error('[React Refresh] Failed to get current script source!');
|
|
}
|
|
|
|
module.exports = getCurrentScriptSource;
|