hash-wasm
Version:
Lightning fast hash functions for browsers and Node.js using hand-tuned WebAssembly binaries (MD4, MD5, SHA-1, SHA-2, SHA-3, Keccak, BLAKE2, BLAKE3, PBKDF2, Argon2, bcrypt, scrypt, Adler-32, CRC32, CRC32C, RIPEMD-160, HMAC, xxHash, SM3, Whirlpool)
15 lines (13 loc) • 401 B
text/typescript
import { type IWASMInterface, WASMInterface } from "./WASMInterface";
import type Mutex from "./mutex";
import type { IEmbeddedWasm } from "./util";
export default async function lockedCreate(
mutex: Mutex,
binary: IEmbeddedWasm,
hashLength: number,
): Promise<IWASMInterface> {
const unlock = await mutex.lock();
const wasm = await WASMInterface(binary, hashLength);
unlock();
return wasm;
}