Utilities for building paginated APIs and clients in Next.js. Includes:
withPaginationmiddleware for Next.js API routes (App Router) that adds pagination helpers to the handler context.createPaginatedResponseandcreatePaginatedPrismaResponsehelpers for formatting results and running PrismafindMany + countqueries.useSWRPaginatedclient hook for incremental pagination with SWR.
npm install @raburski/next-paginationimport { NextResponse } from "next/server"
import { withPagination } from "@raburski/next-pagination/server"
import { db } from "@/server/db"
const handler = async (_request, context) => {
const { createPaginatedPrismaResponse } = context
return NextResponse.json(
await createPaginatedPrismaResponse(db.building, {
where: { status: "APPROVED" },
orderBy: { createdAt: "desc" },
})
)
}
export const GET = withPagination(handler)import { useSWRPaginated } from "@raburski/next-pagination/client"
const { data, loadMore, hasMore } = useSWRPaginated("/api/buildings")MIT