From 4f1e974623f7e38693d3e202cd387c51f652b9d8 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sun, 15 Dec 2024 01:57:28 -0800 Subject: logout on end --- src/duration.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/duration.ts') diff --git a/src/duration.ts b/src/duration.ts index 3d1a44c..e8dc7d1 100644 --- a/src/duration.ts +++ b/src/duration.ts @@ -12,6 +12,7 @@ export enum DurationUnit { MINUTE, HOUR, } + const durationUnitMap: Record = { ms: DurationUnit.MILLISECOND, milliseconds: DurationUnit.MILLISECOND, @@ -153,3 +154,26 @@ export const parse = (duration: string): E.Either => { E.map(build), ); }; + +export const transformDurations = (obj: any): E.Either => { + const transform = (o: any): E.Either => { + const entries = Object.entries(o); + + for (let [key, value] of entries) { + if (key === "duration" && typeof value === "string") { + return parse(value); + } else if (typeof value === "object" && value !== null) { + const result = transform(value); + if (E.isLeft(result)) { + return result; + } else { + o[key] = result.right; + } + } + } + + return E.right(o); + }; + + return transform(obj); +} -- cgit v1.2.3-70-g09d2