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