UNPKG

@vulog/aima-core

Version:

46 lines (43 loc) 1.46 kB
import { z } from 'zod'; type PaginableOptions<T> = { page?: number; pageSize?: number; filters?: T; }; declare const createPaginableOptionsSchema: <T extends z.ZodTypeAny>(optionsSchema: T) => z.ZodObject<{ page: z.ZodDefault<z.ZodNumber>; pageSize: z.ZodDefault<z.ZodNumber>; filters: z.ZodDefault<T>; }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ page: z.ZodDefault<z.ZodNumber>; pageSize: z.ZodDefault<z.ZodNumber>; filters: z.ZodDefault<T>; }>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ page: z.ZodDefault<z.ZodNumber>; pageSize: z.ZodDefault<z.ZodNumber>; filters: z.ZodDefault<T>; }>, any>[k]; } : never, z.baseObjectInputType<{ page: z.ZodDefault<z.ZodNumber>; pageSize: z.ZodDefault<z.ZodNumber>; filters: z.ZodDefault<T>; }> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{ page: z.ZodDefault<z.ZodNumber>; pageSize: z.ZodDefault<z.ZodNumber>; filters: z.ZodDefault<T>; }>[k_1]; } : never>; type PaginableResponse<T> = { data: T[]; page: number; pageSize: number; total: number; totalPages: number; }; type PatchAction<T extends string> = { op: 'add' | 'replace'; path: T; value: string; } | { op: 'remove'; path: T; }; export { type PaginableOptions, type PaginableResponse, type PatchAction, createPaginableOptionsSchema };