UNPKG

@node-dlc/messaging

Version:
38 lines (35 loc) 1.35 kB
export function sleep(ms: number): Promise<void> { return new Promise((resolve) => setTimeout(resolve, ms)); } /** * Safely converts various input types to BigInt * @param value Value to convert to BigInt * @returns BigInt representation of the value, or BigInt(0) for null/undefined */ export function toBigInt( value: string | number | bigint | null | undefined, ): bigint { if (value === null || value === undefined) return BigInt(0); if (typeof value === 'bigint') return value; if (typeof value === 'string') return BigInt(value); if (typeof value === 'number') return BigInt(value); return BigInt(0); } /** * Safely converts BigInt to number, preserving precision for safe integers * @param value BigInt value to convert * @returns Number if within safe range, otherwise returns the BigInt as-is for JSON serialization */ // eslint-disable-next-line @typescript-eslint/no-explicit-any export function bigIntToNumber(value: bigint): number | any { // For values within safe integer range, convert to number if ( value <= BigInt(Number.MAX_SAFE_INTEGER) && value >= BigInt(Number.MIN_SAFE_INTEGER) ) { return Number(value); } // For larger values, preserve as BigInt (json-bigint will handle serialization) // eslint-disable-next-line @typescript-eslint/no-explicit-any return value as any; }