UNPKG

webgme-engine

Version:

WebGME server and Client API without a GUI

59 lines (48 loc) 1.74 kB
let wasm; const { TextDecoder } = require(String.raw`util`); let WASM_VECTOR_LEN = 0; let cachegetNodeBufferMemory = null; function getNodeBufferMemory() { if (cachegetNodeBufferMemory === null || cachegetNodeBufferMemory.buffer !== wasm.memory.buffer) { cachegetNodeBufferMemory = Buffer.from(wasm.memory.buffer); } return cachegetNodeBufferMemory; } function passStringToWasm(arg) { const size = Buffer.byteLength(arg); const ptr = wasm.__wbindgen_malloc(size); getNodeBufferMemory().write(arg, ptr, size); WASM_VECTOR_LEN = size; return ptr; } let cachegetInt32Memory = null; function getInt32Memory() { if (cachegetInt32Memory === null || cachegetInt32Memory.buffer !== wasm.memory.buffer) { cachegetInt32Memory = new Int32Array(wasm.memory.buffer); } return cachegetInt32Memory; } let cachedTextDecoder = new TextDecoder('utf-8'); let cachegetUint8Memory = null; function getUint8Memory() { if (cachegetUint8Memory === null || cachegetUint8Memory.buffer !== wasm.memory.buffer) { cachegetUint8Memory = new Uint8Array(wasm.memory.buffer); } return cachegetUint8Memory; } function getStringFromWasm(ptr, len) { return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len)); } /** * @param {string} data * @returns {string} */ module.exports.hash = function(data) { const retptr = 8; const ret = wasm.hash(retptr, passStringToWasm(data), WASM_VECTOR_LEN); const memi32 = getInt32Memory(); const v0 = getStringFromWasm(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1]).slice(); wasm.__wbindgen_free(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1] * 1); return v0; }; wasm = require('./wasm-sha1-node_bg');