Use DurationInSeconds for expireTimer
This commit is contained in:
parent
cf57c7aaf0
commit
6be69a7ba8
59 changed files with 411 additions and 216 deletions
39
ts/util/durations/duration-in-seconds.ts
Normal file
39
ts/util/durations/duration-in-seconds.ts
Normal file
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2022 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
import * as Constants from './constants';
|
||||
|
||||
export type DurationInSeconds = number & {
|
||||
// eslint-disable-next-line camelcase
|
||||
__time_difference_in_seconds: never;
|
||||
};
|
||||
|
||||
/* eslint-disable @typescript-eslint/no-namespace, @typescript-eslint/no-redeclare */
|
||||
export namespace DurationInSeconds {
|
||||
export const fromMillis = (ms: number): DurationInSeconds =>
|
||||
(ms / Constants.SECOND) as DurationInSeconds;
|
||||
export const fromSeconds = (seconds: number): DurationInSeconds =>
|
||||
seconds as DurationInSeconds;
|
||||
export const fromMinutes = (m: number): DurationInSeconds =>
|
||||
((m * Constants.MINUTE) / Constants.SECOND) as DurationInSeconds;
|
||||
export const fromHours = (h: number): DurationInSeconds =>
|
||||
((h * Constants.HOUR) / Constants.SECOND) as DurationInSeconds;
|
||||
export const fromDays = (d: number): DurationInSeconds =>
|
||||
((d * Constants.DAY) / Constants.SECOND) as DurationInSeconds;
|
||||
export const fromWeeks = (d: number): DurationInSeconds =>
|
||||
((d * Constants.WEEK) / Constants.SECOND) as DurationInSeconds;
|
||||
export const fromMonths = (d: number): DurationInSeconds =>
|
||||
((d * Constants.MONTH) / Constants.SECOND) as DurationInSeconds;
|
||||
|
||||
export const toSeconds = (d: DurationInSeconds): number => d;
|
||||
export const toMillis = (d: DurationInSeconds): number =>
|
||||
d * Constants.SECOND;
|
||||
export const toHours = (d: DurationInSeconds): number =>
|
||||
(d * Constants.SECOND) / Constants.HOUR;
|
||||
|
||||
export const ZERO = DurationInSeconds.fromSeconds(0);
|
||||
export const HOUR = DurationInSeconds.fromHours(1);
|
||||
export const MINUTE = DurationInSeconds.fromMinutes(1);
|
||||
export const DAY = DurationInSeconds.fromDays(1);
|
||||
}
|
||||
/* eslint-enable @typescript-eslint/no-namespace, @typescript-eslint/no-redeclare */
|
Loading…
Add table
Add a link
Reference in a new issue