@dprint/ruff
Version:
Wasm buffer for dprint-plugin-ruff.
35 lines (31 loc) • 831 B
JavaScript
/**
* Gets a buffer representing the WASM module.
* @returns {ArrayBuffer}
*/
function getBuffer() {
const encodedBuffer = require("./buffer.generated").encodedBuffer;
return decodeEncodedBuffer(encodedBuffer);
}
/**
* @param {string} encodedBuffer
* @returns {ArrayBuffer}
*/
function decodeEncodedBuffer(encodedBuffer) {
// https://stackoverflow.com/a/51473757/188246
const binaryString = toBinaryString();
const bytes = new Uint8Array(binaryString.length);
for (let i = 0; i < binaryString.length; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes.buffer;
function toBinaryString() {
if (typeof atob === "function") {
return atob(encodedBuffer);
} else {
return Buffer.from(encodedBuffer, "base64").toString("binary");
}
}
}
module.exports = {
getBuffer,
};