刮刮前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

51 lines
1.5 KiB

/* 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 */
if (__PLATFORM_WEB__) {
// 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,
'../lib/source-map/lib',
'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'
)
}
}