Deploy.
This commit is contained in:
+76
@@ -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
|
||||
Reference in New Issue
Block a user