mirror of
https://github.com/JonasunderscoreJones/api-worker.git
synced 2025-10-23 18:39:19 +02:00
41 lines
No EOL
1.3 KiB
JavaScript
41 lines
No EOL
1.3 KiB
JavaScript
import { BaseHash as BaseHasher } from '../base/index.js';
|
|
import { normalizeInput } from './hash-fn.js';
|
|
import { mustGetEncoder } from './encoding.js';
|
|
import { BrowserHashReader } from './hash-reader.js';
|
|
import { Hash } from './hash.js';
|
|
import { getWasm } from './wasm.js';
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
export class BrowserHasher extends BaseHasher {
|
|
/**
|
|
* @inheritdoc
|
|
* @override
|
|
*/
|
|
update(data) {
|
|
return super.update(normalizeInput(data));
|
|
}
|
|
digest(encoding, options) {
|
|
let resolvedOpts;
|
|
let resolvedEnc;
|
|
if (encoding && typeof encoding === 'object') {
|
|
resolvedOpts = encoding;
|
|
resolvedEnc = undefined;
|
|
}
|
|
else {
|
|
resolvedOpts = options;
|
|
resolvedEnc = encoding;
|
|
}
|
|
const result = super.digest(resolvedOpts);
|
|
return resolvedEnc ? mustGetEncoder(resolvedEnc)(result) : result;
|
|
}
|
|
}
|
|
/**
|
|
* A Node.js crypto-like createHash method.
|
|
*/
|
|
export const createHash = () => new BrowserHasher(getWasm().create_hasher(), l => new Hash(l), r => new BrowserHashReader(r));
|
|
/**
|
|
* A Node.js crypto-like createHash method.
|
|
*/
|
|
export const createKeyed = (key) => new BrowserHasher(getWasm().create_keyed(key), l => new Hash(l), r => new BrowserHashReader(r));
|
|
//# sourceMappingURL=hash-instance.js.map
|