mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
				
	
	
		
			45 lines
		
	
	
		
			966 B
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			966 B
		
	
	
	
		
			JavaScript
		
	
	
	
| /*
 | |
| 	MIT License http://www.opensource.org/licenses/mit-license.php
 | |
| 	Author Ivan Kopeykin @vankop
 | |
| */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| const RuntimeGlobals = require("./RuntimeGlobals");
 | |
| const RuntimeModule = require("./RuntimeModule");
 | |
| const Template = require("./Template");
 | |
| 
 | |
| class BaseURIRuntimeModule extends RuntimeModule {
 | |
| 	/**
 | |
| 	 * @param {"node"|"web"|"webworker"} environment environment
 | |
| 	 */
 | |
| 	constructor(environment) {
 | |
| 		super("baseURI");
 | |
| 		this.env = environment;
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * @returns {string} runtime code
 | |
| 	 */
 | |
| 	generate() {
 | |
| 		switch (this.env) {
 | |
| 			case "web":
 | |
| 				return Template.asString([
 | |
| 					`${RuntimeGlobals.baseURI} = document.baseURI;`
 | |
| 				]);
 | |
| 			case "webworker":
 | |
| 				return Template.asString([
 | |
| 					`${RuntimeGlobals.baseURI} = self.location;`
 | |
| 				]);
 | |
| 			case "node":
 | |
| 				return Template.asString([
 | |
| 					`${RuntimeGlobals.baseURI} = require('url').pathToFileURL(__filename);`
 | |
| 				]);
 | |
| 			default:
 | |
| 				return "";
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| module.exports = BaseURIRuntimeModule;
 |