Files
calendar/lib/helpers/withPagination.ts
T
Omar LópezandGitHub 992bdc0b54 Fixes paginated endpoints (#234)
- Passing an invalid number or 0 was causing trouble
2023-02-07 17:20:21 -07:00

18 lines
445 B
TypeScript

import { NextMiddleware } from "next-api-middleware";
import z from "zod";
const withPage = z.object({
page: z.coerce.number().min(1).optional().default(1),
take: z.coerce.number().min(1).optional().default(10),
});
export const withPagination: NextMiddleware = async (req, _, next) => {
const { page, take } = withPage.parse(req.query);
const skip = (page - 1) * take;
req.pagination = {
take,
skip,
};
await next();
};