prisma-paginate
    Preparing search index...

    prisma-paginate

    📖 prisma-paginate

    npm version CI pages-build-deployment

    Install

    npm i prisma @prisma/client prisma-paginate@latest
    yarn add prisma @prisma/client prisma-paginate@latest

    Documentation and usage

    For more details and type definitions see:

    http://sandrewtx08.github.io/prisma-paginate/

    // ESM
    import { PrismaClient } from "@prisma/client";
    import { extension } from "prisma-paginate";

    // Commonjs
    const { PrismaClient } = require("@prisma/client");
    const { extension } = require("prisma-paginate");
    const prisma = new PrismaClient();
    const xprisma = prisma.$extends(extension);

    xprisma.model2
    .paginate({ limit: 10, page: 1, select: { id: true } })
    .then((result) => {
    console.log(result);
    });

    xprisma.table1
    .paginate({ where: { id: 5 } }, { limit: 10, page: 1 })
    .then((result) => {
    console.log(result);
    });
    // on database = [ { id: 1 }, { id: 2 }, {...}, { id: 100 } ]
    xprisma.model1
    .paginate(
    {
    where: {
    // query stuff...
    },
    },
    { page: 1, limit: 50 },
    )
    .then((result) => {
    console.log(result.result); // [ {...}, { id: 48 }, { id: 49 }, { id: 50 } ]
    });
    const [{ count }] = await prisma.$queryRawUnsafe<[{ count: bigint }]>(
    'SELECT COUNT(*) FROM "Model3";',
    );

    const pagination = new Pagination(limit, page, Number(count));
    const data = await prisma.$queryRawUnsafe<unknown[]>(
    'SELECT name FROM "Model3" LIMIT $1 OFFSET $2;',
    limit,
    Pagination.offset(limit, page),
    );
    • findManyArgs {Object}
    • paginationArgs {Pagination&onCount?(pagination) => void}

    • findManyPaginationArgs {Object&Pagination}
    • result {Array}
    • totalPages {Number}
    • hasNextPage {Boolean}
    • hasPrevPage {Boolean}
    • count {Number}
    • nextPage {() => Promise}
    • exceedCount {Boolean}
    • exceedTotalPages {Boolean}