signal-desktop/ts/util/timestampLongUtils.ts
automated-signal f43e98041d
Improve compatibility for max long values in backups
Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com>
2024-12-10 04:19:30 +10:00

36 lines
721 B
TypeScript

// Copyright 2021 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import Long from 'long';
export function getSafeLongFromTimestamp(timestamp = 0): Long {
if (timestamp >= Number.MAX_SAFE_INTEGER) {
return Long.MAX_VALUE;
}
return Long.fromNumber(timestamp);
}
export function getTimestampFromLong(value?: Long | null): number {
if (!value) {
return 0;
}
const num = value.toNumber();
if (num >= Number.MAX_SAFE_INTEGER) {
return Number.MAX_SAFE_INTEGER;
}
return num;
}
export function getTimestampOrUndefinedFromLong(
value?: Long | null
): number | undefined {
if (!value || value.isZero()) {
return undefined;
}
return getTimestampFromLong(value);
}