50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | /* Determine browser vs node environment by testing the default top level context. Solution courtesy of: https://stackoverflow.com/questions/17575790/environment-detection-node-js-or-browser */ | ||
|  | const isBrowserEnvironment = (function() { | ||
|  |     // eslint-disable-next-line no-undef
 | ||
|  |     return (typeof window !== "undefined") && (this === window); | ||
|  | }).call(); | ||
|  | 
 | ||
|  | if (isBrowserEnvironment) { | ||
|  |   // Web version of reading a wasm file into an array buffer.
 | ||
|  | 
 | ||
|  |   let mappingsWasm = null; | ||
|  | 
 | ||
|  |   module.exports = function readWasm() { | ||
|  |     if (typeof mappingsWasm === "string") { | ||
|  |       return fetch(mappingsWasm) | ||
|  |         .then(response => response.arrayBuffer()); | ||
|  |     } | ||
|  |     if (mappingsWasm instanceof ArrayBuffer) { | ||
|  |       return Promise.resolve(mappingsWasm); | ||
|  |     } | ||
|  |     throw new Error("You must provide the string URL or ArrayBuffer contents " + | ||
|  |                     "of lib/mappings.wasm by calling " + | ||
|  |                     "SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) " + | ||
|  |                     "before using SourceMapConsumer"); | ||
|  |   }; | ||
|  | 
 | ||
|  |   module.exports.initialize = input => mappingsWasm = input; | ||
|  | } else { | ||
|  |   // Node version of reading a wasm file into an array buffer.
 | ||
|  |   const fs = require("fs"); | ||
|  |   const path = require("path"); | ||
|  | 
 | ||
|  |   module.exports = function readWasm() { | ||
|  |     return new Promise((resolve, reject) => { | ||
|  |       const wasmPath = path.join(__dirname, "mappings.wasm"); | ||
|  |       fs.readFile(wasmPath, null, (error, data) => { | ||
|  |         if (error) { | ||
|  |           reject(error); | ||
|  |           return; | ||
|  |         } | ||
|  | 
 | ||
|  |         resolve(data.buffer); | ||
|  |       }); | ||
|  |     }); | ||
|  |   }; | ||
|  | 
 | ||
|  |   module.exports.initialize = _ => { | ||
|  |     console.debug("SourceMapConsumer.initialize is a no-op when running in node.js"); | ||
|  |   }; | ||
|  | } |