12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /* 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");
- };
- }
|