diff options
Diffstat (limited to 'packages/open-api/lib/pagination.ts')
| -rw-r--r-- | packages/open-api/lib/pagination.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/open-api/lib/pagination.ts b/packages/open-api/lib/pagination.ts new file mode 100644 index 00000000..fe98cd62 --- /dev/null +++ b/packages/open-api/lib/pagination.ts @@ -0,0 +1,24 @@ +import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi"; +import { z } from "zod"; + +import { zBookmarkSchema } from "@hoarder/shared/types/bookmarks"; + +extendZodWithOpenApi(z); + +export const BookmarkSchema = zBookmarkSchema.openapi("Bookmark"); + +export const PaginatedBookmarksSchema = z + .object({ + bookmarks: z.array(BookmarkSchema), + nextCursor: z.string().nullable(), + }) + .openapi("PaginatedBookmarks"); + +export const CursorSchema = z.string().openapi("Cursor"); + +export const PaginationSchema = z + .object({ + limit: z.number().optional(), + cursor: CursorSchema.optional(), + }) + .openapi("Pagination"); |
