Files
workspace-shared/packages/validation/src/schemas.ts
2026-02-09 21:51:55 -08:00

38 lines
673 B
TypeScript

/**
* Common validation schemas
*/
import { z } from 'zod';
/**
* Email validation schema
*/
export const emailSchema = z.string().email('Invalid email address');
/**
* UUID validation schema
*/
export const uuidSchema = z.string().uuid('Invalid UUID');
/**
* URL validation schema
*/
export const urlSchema = z.string().url('Invalid URL');
/**
* Pagination schema
*/
export const paginationSchema = z.object({
page: z.number().int().positive().default(1),
limit: z.number().int().positive().max(100).default(10),
});
/**
* Sort schema
*/
export const sortSchema = z.object({
field: z.string(),
order: z.enum(['asc', 'desc']).default('asc'),
});