2025-02-06 20:38:36 +08:00
|
|
|
import { object, string, number, optional, pipe, unknown, transform, picklist } from 'valibot'
|
|
|
|
|
|
|
|
const personJSONSchema = object({
|
|
|
|
name: string(),
|
|
|
|
age: number(),
|
|
|
|
})
|
|
|
|
|
|
|
|
const postJSONSchema = object({
|
|
|
|
id: number(),
|
|
|
|
title: string(),
|
|
|
|
})
|
|
|
|
|
|
|
|
const idJSONSchema = object({
|
|
|
|
id: string(),
|
|
|
|
})
|
|
|
|
|
|
|
|
const queryNameSchema = optional(
|
|
|
|
object({
|
|
|
|
name: optional(string()),
|
|
|
|
})
|
|
|
|
)
|
|
|
|
|
|
|
|
const queryPaginationSchema = object({
|
|
|
|
page: pipe(unknown(), transform(Number)),
|
|
|
|
})
|
|
|
|
|
|
|
|
const querySortSchema = object({
|
|
|
|
order: picklist(['asc', 'desc']),
|
|
|
|
})
|
|
|
|
|
2025-07-20 07:30:09 +08:00
|
|
|
const headerSchema = object({
|
|
|
|
'user-agent': string(),
|
|
|
|
})
|
|
|
|
|
2025-02-06 20:38:36 +08:00
|
|
|
export {
|
2025-07-20 07:30:09 +08:00
|
|
|
headerSchema,
|
2025-02-06 20:38:36 +08:00
|
|
|
idJSONSchema,
|
|
|
|
personJSONSchema,
|
|
|
|
postJSONSchema,
|
|
|
|
queryNameSchema,
|
|
|
|
queryPaginationSchema,
|
|
|
|
querySortSchema,
|
|
|
|
}
|