UNPKG

minigame-std

Version:

Mini Game Standard Development Library.

34 lines (31 loc) 954 B
import { Ok, type AsyncIOResult } from 'happy-rusty'; import { isMinaEnv } from '../../../macros/env.ts'; import { getRandomValues as minaGetRandomValues, randomUUID as minaRandomUUID, } from './mina_random.ts'; import type { UUID } from './random_defines.ts'; import { getRandomValues as webGetRandomValues, randomUUID as webRandomUUID, } from './web_random.ts'; export * from './random_defines.ts'; /** * 获取密码学安全随机数。 * @param length - 要生成的字节数。 * @returns 生成的随机数 Buffer。 */ export function getRandomValues(length: number): AsyncIOResult<Uint8Array> { return isMinaEnv() ? minaGetRandomValues(length) : Promise.resolve(Ok(webGetRandomValues(length))) } /** * 生成 UUID。 * @returns UUID 字符串。 */ export function randomUUID(): AsyncIOResult<UUID> { return isMinaEnv() ? minaRandomUUID() : Promise.resolve(Ok(webRandomUUID())) }