26 lines
1.1 KiB
TypeScript
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(),
|
|
}) |