From 5dbd16878546886cae5b56b67de6185bfbae0d07 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 1 Aug 2024 09:15:33 -0700 Subject: add arg parser --- src/util/duration.ts | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'src/util') diff --git a/src/util/duration.ts b/src/util/duration.ts index 9c10375..3d1a44c 100644 --- a/src/util/duration.ts +++ b/src/util/duration.ts @@ -1,6 +1,6 @@ import { flow, pipe } from "fp-ts/function"; -import * as E from "fp-ts/Either"; -import * as S from "fp-ts/String"; +import * as E from "fp-ts/lib/Either"; +import * as S from "fp-ts/lib/string"; import * as O from "fp-ts/lib/Option"; import * as R from "fp-ts/lib/ReadonlyArray"; @@ -60,30 +60,30 @@ export const createDurationBuilder = (): DurationBuilder => ({ hours: 0, }); -export const withMillis = - (millis: number) => - (builder: DurationBuilder): DurationBuilder => ({ +export type DurationBuilderField = ( + arg: T, +) => (builder: DurationBuilder) => DurationBuilder; + +export const withMillis: DurationBuilderField = + (millis) => (builder) => ({ ...builder, millis, }); -export const withSeconds = - (seconds: number) => - (builder: DurationBuilder): DurationBuilder => ({ +export const withSeconds: DurationBuilderField = + (seconds) => (builder) => ({ ...builder, seconds, }); -export const withMinutes = - (minutes: number) => - (builder: DurationBuilder): DurationBuilder => ({ +export const withMinutes: DurationBuilderField = + (minutes) => (builder) => ({ ...builder, minutes, }); -export const withHours = - (hours: number) => - (builder: DurationBuilder): DurationBuilder => ({ +export const withHours: DurationBuilderField = + (hours) => (builder) => ({ ...builder, hours, }); @@ -99,7 +99,7 @@ export const parse = (duration: string): E.Either => { duration, S.split(" "), R.map(S.trim), - R.filter((part) => !S.isEmpty(part)) + R.filter((part) => !S.isEmpty(part)), ); const valueUnitPairs = pipe( @@ -120,9 +120,9 @@ export const parse = (duration: string): E.Either => { E.map( flow( R.filter(O.isSome), - R.map(({ value }) => value) - ) - ) + R.map(({ value }) => value), + ), + ), ); return pipe( @@ -146,10 +146,10 @@ export const parse = (duration: string): E.Either => { default: return E.left(`unknown unit: ${unit}`); } - }) - ) - ) + }), + ), + ), ), - E.map(build) + E.map(build), ); }; -- cgit v1.3