@vulog/aima-core
Version:
Shared types and Zod schema helpers for pagination and patch actions.
14 lines (13 loc) • 478 B
JavaScript
import { z } from "zod";
//#region src/index.ts
const createPaginableOptionsSchema = (optionsSchema, sortSchema = z.string().optional()) => {
return z.object({
page: z.number().int().nonnegative().default(0),
pageSize: z.number().int().positive().lte(1e3).default(100),
sort: sortSchema,
sortDirection: z.enum(["ASC", "DESC"]).optional().default("ASC"),
...optionsSchema ? { filters: optionsSchema } : {}
});
};
//#endregion
export { createPaginableOptionsSchema };