UNPKG

lean4-code-actions

Version:

Refactorings and snippets for Lean 4

29 lines (20 loc) 884 B
import { getDuplicatesRefinement } from 'libs/utils/zod' import { z } from 'zod' export const DateIntervalSchema = z.object({ from: z.date(), to: z.date(), }) export const DateIntervalsSchema = z.array(DateIntervalSchema) .superRefine(getDuplicatesRefinement('DateInterval', parseDateIntervalUid)) export const DateIntervalUidSchema = DateIntervalSchema export type DateInterval = z.infer<typeof DateIntervalSchema> export type DateIntervalUid = z.infer<typeof DateIntervalUidSchema> export function parseDateInterval(interval: DateInterval): DateInterval { return DateIntervalSchema.parse(interval) } export function parseDateIntervals(intervals: DateInterval[]): DateInterval[] { return DateIntervalsSchema.parse(intervals) } export function parseDateIntervalUid(intervalUid: DateIntervalUid): DateIntervalUid { return DateIntervalUidSchema.parse(intervalUid) }