aboutsummaryrefslogtreecommitdiff
path: root/src/lib/server/services/validation.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/server/services/validation.ts')
-rw-r--r--src/lib/server/services/validation.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/server/services/validation.ts b/src/lib/server/services/validation.ts
index a8cebd9..69820ea 100644
--- a/src/lib/server/services/validation.ts
+++ b/src/lib/server/services/validation.ts
@@ -1,3 +1,4 @@
+import { parseIntervalToDays } from '$lib/shared/routine-metrics';
import * as v from 'valibot';
export const IdSchema = v.pipe(v.number(), v.integer(), v.minValue(1));
@@ -43,3 +44,12 @@ export function parseOptionalNumber(
if (!Number.isFinite(n)) return null;
return n;
}
+
+/** Parses an interval like '2w' into days; throws when the format is invalid. */
+export function parseFrequencyDays(value: FormDataEntryValue | null): number {
+ const days = parseIntervalToDays(value?.toString() ?? '');
+ if (days === null) {
+ throw new Error('Invalid interval');
+ }
+ return days;
+}