@hazae41/base64
Version:
Base64 adapter for WebAssembly and JS implementations
58 lines (55 loc) • 2.03 kB
JavaScript
import { __addDisposableResource, __disposeResources } from '../../../node_modules/tslib/tslib.es6.mjs';
import { Ref, Pin } from '@hazae41/box';
import { fromBuffer } from './buffer.mjs';
function fromBufferOrWasm(wasm) {
if ("process" in globalThis)
return fromBuffer();
return fromWasm(wasm);
}
function fromWasm(wasm) {
const { Memory, base64_encode_padded, base64_decode_padded, base64_encode_unpadded, base64_decode_unpadded } = wasm;
function getMemory(bytesOrCopiable) {
if (bytesOrCopiable instanceof Memory)
return new Ref(bytesOrCopiable);
if (bytesOrCopiable instanceof Uint8Array)
return Pin.from(new Memory(bytesOrCopiable));
return Pin.from(new Memory(bytesOrCopiable.bytes));
}
function encodePaddedOrThrow(bytes) {
const env_1 = { stack: [], error: void 0, hasError: false };
try {
const memory = __addDisposableResource(env_1, getMemory(bytes), false);
return base64_encode_padded(memory.value);
}
catch (e_1) {
env_1.error = e_1;
env_1.hasError = true;
}
finally {
__disposeResources(env_1);
}
}
function decodePaddedOrThrow(text) {
return base64_decode_padded(text);
}
function encodeUnpaddedOrThrow(bytes) {
const env_2 = { stack: [], error: void 0, hasError: false };
try {
const memory = __addDisposableResource(env_2, getMemory(bytes), false);
return base64_encode_unpadded(memory.value);
}
catch (e_2) {
env_2.error = e_2;
env_2.hasError = true;
}
finally {
__disposeResources(env_2);
}
}
function decodeUnpaddedOrThrow(text) {
return base64_decode_unpadded(text);
}
return { encodePaddedOrThrow, decodePaddedOrThrow, encodeUnpaddedOrThrow, decodeUnpaddedOrThrow };
}
export { fromBufferOrWasm, fromWasm };
//# sourceMappingURL=wasm.mjs.map