summaryrefslogtreecommitdiff
path: root/node_modules/blake3-wasm/esm/node/hash-instance.js
diff options
context:
space:
mode:
authorakiyamn2023-09-24 23:22:21 +1000
committerakiyamn2023-09-24 23:22:21 +1000
commit4e87195739f2a5d9a05451b48773c8afdc680765 (patch)
tree9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/blake3-wasm/esm/node/hash-instance.js
downloadprice-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz
price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/blake3-wasm/esm/node/hash-instance.js')
-rw-r--r--node_modules/blake3-wasm/esm/node/hash-instance.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/node_modules/blake3-wasm/esm/node/hash-instance.js b/node_modules/blake3-wasm/esm/node/hash-instance.js
new file mode 100644
index 0000000..4e08d4f
--- /dev/null
+++ b/node_modules/blake3-wasm/esm/node/hash-instance.js
@@ -0,0 +1,76 @@
+import { normalizeInput } from './hash-fn.js';
+import { BaseHash } from '../base/index.js';
+import { Transform } from 'stream.js';
+import { getWasm } from './wasm.js';
+import { NodeHashReader } from './hash-reader.js';
+/**
+ * @inheritdoc
+ */
+export class NodeHash extends Transform {
+ constructor(implementation, getReader) {
+ super();
+ this.hash = new BaseHash(implementation, l => Buffer.alloc(l), getReader);
+ }
+ /**
+ * @reader
+ */
+ reader(options) {
+ const reader = this.hash.reader(options);
+ return reader;
+ }
+ /**
+ * @inheritdoc
+ */
+ update(data, encoding) {
+ this.hash.update(normalizeInput(data, encoding));
+ return this;
+ }
+ digest(encoding, options) {
+ let resolvedOpts;
+ let resolvedEnc;
+ if (encoding && typeof encoding === 'object') {
+ resolvedOpts = encoding;
+ resolvedEnc = undefined;
+ }
+ else {
+ resolvedOpts = options;
+ resolvedEnc = encoding;
+ }
+ const result = this.hash.digest(resolvedOpts);
+ return resolvedEnc ? result.toString(resolvedEnc) : result;
+ }
+ /**
+ * @inheritdoc
+ */
+ dispose() {
+ this.hash.dispose();
+ }
+ /**
+ * @inheritdoc
+ * @hidden
+ */
+ _transform(chunk, encoding, callback) {
+ this.update(chunk, encoding);
+ callback();
+ }
+ /**
+ * @inheritdoc
+ * @hidden
+ */
+ _flush(callback) {
+ callback(null, this.digest());
+ }
+}
+/**
+ * A Node.js crypto-like createHash method.
+ */
+export const createHash = () => new NodeHash(getWasm().create_hasher(), r => new NodeHashReader(r));
+/**
+ * Construct a new Hasher for the keyed hash function.
+ */
+export const createKeyed = (key) => new NodeHash(getWasm().create_keyed(key), r => new NodeHashReader(r));
+/**
+ * Construct a new Hasher for the key derivation function.
+ */
+export const createDeriveKey = (context) => new NodeHash(getWasm().create_derive(context), r => new NodeHashReader(r));
+//# sourceMappingURL=hash-instance.js.map \ No newline at end of file