Files
linker/src/lib/schema/url.ts
2025-06-27 23:36:43 +02:00

26 lines
1.1 KiB
TypeScript

import { z } from "zod";
export const urlFormSchema = z.object({
url: z.string().url("Please enter a valid URL"),
slug: z.string().max(10, "Slug must be 10 characters or less")
})
export const advancedUrlSchema = z.object({
url: z.string().url("Please enter a valid URL"),
slug: z.string().max(10, "Slug must be 10 characters or less").transform(v => v.trim() === "" ? null : v).nullable(),
title: z.string().max(100, "Title must be 100 characters or less").transform(v => v.trim() === "" ? null : v).nullable(),
maxVisits: z.number().int().positive().nullable(),
expDate: z.date().optional(),
forwardQueryParams: z.boolean(),
crawlable: z.boolean(),
})
export const editUrlSchema = z.object({
url: z.string().url("Please enter a valid URL"),
slug: z.string().max(10, "Slug must be 10 characters or less"),
title: z.string().max(100, "Title must be 100 characters or less").transform(v => v.trim() === "" ? null : v).nullable(),
maxVisits: z.number().int().positive().nullable(),
expDate: z.date().optional(),
forwardQueryParams: z.boolean(),
crawlable: z.boolean(),
})