summaryrefslogtreecommitdiff
path: root/node_modules/blake3-wasm/esm/browser/encoding.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/blake3-wasm/esm/browser/encoding.js')
-rw-r--r--node_modules/blake3-wasm/esm/browser/encoding.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/blake3-wasm/esm/browser/encoding.js b/node_modules/blake3-wasm/esm/browser/encoding.js
new file mode 100644
index 0000000..0b6d1e4
--- /dev/null
+++ b/node_modules/blake3-wasm/esm/browser/encoding.js
@@ -0,0 +1,28 @@
+// A small collection of encodings for convenience of use in the browser.
+const decoder = new TextDecoder();
+const encoders = {
+ // certainly not the fastest, but hashes are pretty small
+ base64: data => btoa(String.fromCharCode(...data)),
+ hex: data => {
+ let out = '';
+ for (const byte of data) {
+ if (byte < 0x10) {
+ out += '0';
+ }
+ out += byte.toString(16);
+ }
+ return out;
+ },
+ utf8: data => decoder.decode(data),
+};
+/**
+ * @hidden
+ */
+export const mustGetEncoder = (encoding) => {
+ const encoder = encoders[encoding];
+ if (!encoder) {
+ throw new Error(`Unknown encoding ${encoding}`);
+ }
+ return encoder;
+};
+//# sourceMappingURL=encoding.js.map \ No newline at end of file