Spaces:
Sleeping
Sleeping
pythonic-rag-FastAPIReact
/
frontend
/node_modules
/@pmmmwh
/react-refresh-webpack-plugin
/sockets
/utils
/getCurrentScriptSource.js
| /** | |
| * 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 ('currentScript' in document) { | |
| // In some cases, `document.currentScript` would be `null` even if the browser supports it: | |
| // e.g. asynchronous chunks on Firefox. | |
| // We should not fallback to the list-approach as it would not be safe. | |
| if (document.currentScript == null) return; | |
| return document.currentScript.getAttribute('src'); | |
| } | |
| // Fallback to getting all scripts running in the document, | |
| // and finding the last one injected. | |
| else { | |
| const scriptElementsWithSrc = Array.prototype.filter.call( | |
| document.scripts || [], | |
| function (elem) { | |
| return elem.getAttribute('src'); | |
| } | |
| ); | |
| if (!scriptElementsWithSrc.length) return; | |
| const currentScript = scriptElementsWithSrc[scriptElementsWithSrc.length - 1]; | |
| return currentScript.getAttribute('src'); | |
| } | |
| } | |
| module.exports = getCurrentScriptSource; | |