39 lines
599 B
TypeScript
39 lines
599 B
TypeScript
|
import { z } from 'zod'
|
||
|
|
||
|
const personJSONSchema = z.object({
|
||
|
name: z.string(),
|
||
|
age: z.number(),
|
||
|
})
|
||
|
|
||
|
const postJSONSchema = z.object({
|
||
|
id: z.number(),
|
||
|
title: z.string(),
|
||
|
})
|
||
|
|
||
|
const idJSONSchema = z.object({
|
||
|
id: z.string(),
|
||
|
})
|
||
|
|
||
|
const queryNameSchema = z
|
||
|
.object({
|
||
|
name: z.string().optional(),
|
||
|
})
|
||
|
.optional()
|
||
|
|
||
|
const queryPaginationSchema = z.object({
|
||
|
page: z.coerce.number(),
|
||
|
})
|
||
|
|
||
|
const querySortSchema = z.object({
|
||
|
order: z.enum(['asc', 'desc']),
|
||
|
})
|
||
|
|
||
|
export {
|
||
|
idJSONSchema,
|
||
|
personJSONSchema,
|
||
|
postJSONSchema,
|
||
|
queryNameSchema,
|
||
|
queryPaginationSchema,
|
||
|
querySortSchema,
|
||
|
}
|