diff options
author | Florian Dold <florian@dold.me> | 2022-05-19 10:36:01 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-05-19 10:36:58 +0200 |
commit | b2931fbac62a128862f310028c16b32b12f0c14e (patch) | |
tree | f3515cb52dd06d1d3446576810477b0ea3e34a2d /packages/taler-util/src/time.ts | |
parent | 611a57ca0a73d864584d8f06aa3d6a3ed615542e (diff) | |
download | wallet-core-b2931fbac62a128862f310028c16b32b12f0c14e.tar.xz |
wallet-core: clamp claim retry properly
Diffstat (limited to 'packages/taler-util/src/time.ts')
-rw-r--r-- | packages/taler-util/src/time.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/taler-util/src/time.ts b/packages/taler-util/src/time.ts index f12e8d32b..8b0516bf8 100644 --- a/packages/taler-util/src/time.ts +++ b/packages/taler-util/src/time.ts @@ -91,19 +91,24 @@ export namespace Duration { } return { d_ms: deadline.t_ms - now.t_ms }; } + export function toIntegerYears(d: Duration): number { if (typeof d.d_ms !== "number") { throw Error("infinite duration"); } return Math.ceil(d.d_ms / 1000 / 60 / 60 / 24 / 365); } + export const fromSpec = durationFromSpec; + export function getForever(): Duration { return { d_ms: "forever" }; } + export function getZero(): Duration { return { d_ms: 0 }; } + export function fromTalerProtocolDuration( d: TalerProtocolDuration, ): Duration { @@ -116,6 +121,7 @@ export namespace Duration { d_ms: d.d_us / 1000, }; } + export function toTalerProtocolDuration(d: Duration): TalerProtocolDuration { if (d.d_ms === "forever") { return { @@ -126,6 +132,14 @@ export namespace Duration { d_us: d.d_ms * 1000, }; } + + export function clamp(args: { + lower: Duration; + upper: Duration; + value: Duration; + }): Duration { + return durationMax(durationMin(args.value, args.upper), args.lower); + } } export namespace AbsoluteTime { |