Files
suaveplan/packages/foundation/bitpacker/bitpacker-network/src/defaults/default-rng.ts
2026-05-27 23:47:53 +01:00

15 lines
629 B
TypeScript

/**
* Default RNG factory for bitpacker-network.
*
* Wraps `cryptoRng()` from `@suaveplan/random` so callers don't have to
* reach into another package for the standard CSPRNG-backed source. The
* `cryptoRng()` factory throws `RANDOM.SOURCE.UNAVAILABLE` if the host
* environment lacks `globalThis.crypto.getRandomValues`; we surface that
* directly so consumers know to inject a seeded `Rng` in environments
* without a CSPRNG (or in tests that need deterministic replay).
*/
import { cryptoRng } from "@suaveplan/random";
import type { Rng } from "@suaveplan/types";
export const defaultRng = (): Rng => cryptoRng();