TelegramPWA/src/util/numbers.ts

28 lines
812 B
TypeScript

import { DEBUG } from '../config';
export function toJSNumber(value: undefined): undefined;
export function toJSNumber(value: bigint): number;
export function toJSNumber(value?: bigint): number | undefined;
export function toJSNumber(value?: bigint): number | undefined {
if (value === undefined) return undefined;
if (DEBUG && (value < Number.MIN_SAFE_INTEGER || value > Number.MAX_SAFE_INTEGER)) {
// eslint-disable-next-line no-console
console.error('Unsafe BigInt conversion', value);
}
return Number(value);
}
export function tryParseBigInt(value: string): bigint | undefined {
try {
return BigInt(value);
} catch (error) {
if (DEBUG) {
// eslint-disable-next-line no-console
console.error('Error parsing BigInt', value, error);
}
return undefined;
}
}