diff options
| author | akiyamn | 2023-09-24 23:22:21 +1000 |
|---|---|---|
| committer | akiyamn | 2023-09-24 23:22:21 +1000 |
| commit | 4e87195739f2a5d9a05451b48773c8afdc680765 (patch) | |
| tree | 9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/blake3-wasm/esm/node/hash-instance.js | |
| download | price-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.js | 76 |
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 |
