File size: 1,480 Bytes
5641073
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const index_1 = require("../base/index");
const hash_fn_1 = require("./hash-fn");
const encoding_1 = require("./encoding");
const hash_reader_1 = require("./hash-reader");
const hash_1 = require("./hash");
const wasm_1 = require("./wasm");
/**
 * @inheritdoc
 */
class BrowserHasher extends index_1.BaseHash {
    /**
     * @inheritdoc
     * @override
     */
    update(data) {
        return super.update(hash_fn_1.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 ? encoding_1.mustGetEncoder(resolvedEnc)(result) : result;
    }
}
exports.BrowserHasher = BrowserHasher;
/**
 * A Node.js crypto-like createHash method.
 */
exports.createHash = () => new BrowserHasher(wasm_1.getWasm().create_hasher(), l => new hash_1.Hash(l), r => new hash_reader_1.BrowserHashReader(r));
/**
 * A Node.js crypto-like createHash method.
 */
exports.createKeyed = (key) => new BrowserHasher(wasm_1.getWasm().create_keyed(key), l => new hash_1.Hash(l), r => new hash_reader_1.BrowserHashReader(r));
//# sourceMappingURL=hash-instance.js.map