Initial Commit
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Vitest setup polyfills for @suaveplan/bitpacker-crypto.
|
||||
*
|
||||
* The package's primitives consume `globalThis.crypto.getRandomValues` for
|
||||
* AEAD nonces and `globalThis.crypto.subtle` for sha256 digests. Modern Node
|
||||
* (≥ 19) exposes these on `globalThis.crypto`, but the vitest forks pool can
|
||||
* sometimes start in a context where the global is not yet attached. Pull it
|
||||
* explicitly from `node:crypto.webcrypto` if missing.
|
||||
*/
|
||||
import { webcrypto } from "node:crypto";
|
||||
|
||||
if (typeof globalThis.crypto?.getRandomValues !== "function") {
|
||||
Object.defineProperty(globalThis, "crypto", {
|
||||
value: webcrypto,
|
||||
configurable: true,
|
||||
writable: true,
|
||||
});
|
||||
}
|
||||
|
||||
if (typeof globalThis.crypto?.getRandomValues !== "function") {
|
||||
throw new Error(
|
||||
"[bitpacker-crypto polyfills] failed to install globalThis.crypto.getRandomValues"
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user