diff options
Diffstat (limited to 'src/lib/server/services/validation.ts')
| -rw-r--r-- | src/lib/server/services/validation.ts | 10 |
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; +} |
