Some checks failed
		
		
	
	studiorailgun/Renderer/pipeline/head There was a failure building this commit
				
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
 | |
| 
 | |
| /**
 | |
|  * Caches loaded modules
 | |
|  */
 | |
| let REQUIRE_CACHE = { }
 | |
| 
 | |
| /**
 | |
|  * Used if the module is directly executed instead of being require'd for some reason
 | |
|  */
 | |
| let exports = { }
 | |
| 
 | |
| /**
 | |
|  * Imports a module
 | |
|  * @param {*} path The path of the module
 | |
|  * @param {*} cwd The current working directory
 | |
|  */
 | |
| const require = (path) => {
 | |
|     loggerScripts.DEBUG('Require path ' + path)
 | |
|     let normalizedFilePath = FILE_RESOLUTION_getFilePath(path)
 | |
|     if(!!REQUIRE_CACHE[normalizedFilePath]){
 | |
|         return REQUIRE_CACHE[normalizedFilePath].exports
 | |
|     } else if(!!COMPILER_fileMap[normalizedFilePath]?.content) {
 | |
|         const code = COMPILER_fileMap[normalizedFilePath].moduleContent
 | |
|         loggerScripts.DEBUG('Module code ' + JSON.stringify(code))
 | |
|         let exports = new Function(code)()
 | |
|         //create module object
 | |
|         const module = {
 | |
|             exports: exports,
 | |
|             exportedValues: Object.keys(exports),
 | |
|         }
 | |
|         REQUIRE_CACHE[normalizedFilePath] = module
 | |
|         loggerScripts.INFO("[require] CREATE MODULE " + normalizedFilePath)
 | |
|         return module.exports
 | |
|     } else {
 | |
|         const errorMsg = "FAILED TO REQUIRE FILE " + normalizedFilePath
 | |
|         loggerScripts.WARNING(errorMsg)
 | |
|         loggerScripts.WARNING('Module value:')
 | |
|         const cacheValue = REQUIRE_CACHE?.[normalizedFilePath]
 | |
|         loggerScripts.WARNING(Object.keys(cacheValue ? cacheValue : {}) + '')
 | |
|         loggerScripts.WARNING('Require cache contents:')
 | |
|         loggerScripts.WARNING(Object.keys(REQUIRE_CACHE) + '')
 | |
|         loggerScripts.WARNING('File cache contents:')
 | |
|         loggerScripts.WARNING(Object.keys(COMPILER_fileMap) + '')
 | |
|         throw new Error(errorMsg)
 | |
|     }
 | |
| }
 |