aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth@simponic.xyz>2024-08-01 09:15:33 -0700
committerElizabeth Hunt <elizabeth@simponic.xyz>2024-08-01 09:15:33 -0700
commit5dbd16878546886cae5b56b67de6185bfbae0d07 (patch)
tree8dd29c83d8f56b254d964ec040be9bcea0bc108b /src/util
parentad74ff999589e0df2b60ba6e94362ed5215af312 (diff)
downloadmon.hatecomputers.club-5dbd16878546886cae5b56b67de6185bfbae0d07.tar.gz
mon.hatecomputers.club-5dbd16878546886cae5b56b67de6185bfbae0d07.zip
add arg parser
Diffstat (limited to 'src/util')
-rw-r--r--src/util/duration.ts44
1 files changed, 22 insertions, 22 deletions
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<T> = (
+ arg: T,
+) => (builder: DurationBuilder) => DurationBuilder;
+
+export const withMillis: DurationBuilderField<number> =
+ (millis) => (builder) => ({
...builder,
millis,
});
-export const withSeconds =
- (seconds: number) =>
- (builder: DurationBuilder): DurationBuilder => ({
+export const withSeconds: DurationBuilderField<number> =
+ (seconds) => (builder) => ({
...builder,
seconds,
});
-export const withMinutes =
- (minutes: number) =>
- (builder: DurationBuilder): DurationBuilder => ({
+export const withMinutes: DurationBuilderField<number> =
+ (minutes) => (builder) => ({
...builder,
minutes,
});
-export const withHours =
- (hours: number) =>
- (builder: DurationBuilder): DurationBuilder => ({
+export const withHours: DurationBuilderField<number> =
+ (hours) => (builder) => ({
...builder,
hours,
});
@@ -99,7 +99,7 @@ export const parse = (duration: string): E.Either<string, Duration> => {
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<string, Duration> => {
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<string, Duration> => {
default:
return E.left(`unknown unit: ${unit}`);
}
- })
- )
- )
+ }),
+ ),
+ ),
),
- E.map(build)
+ E.map(build),
);
};