{"id":19655970,"url":"https://github.com/sandrewtx08/prisma-paginate","last_synced_at":"2025-04-12T20:46:02.251Z","repository":{"id":64557544,"uuid":"567727266","full_name":"sandrewTx08/prisma-paginate","owner":"sandrewTx08","description":"Paginate ORM Prisma","archived":false,"fork":false,"pushed_at":"2025-03-31T18:45:08.000Z","size":3315,"stargazers_count":109,"open_issues_count":14,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T00:11:32.293Z","etag":null,"topics":["orm","pagination","prisma","typescript"],"latest_commit_sha":null,"homepage":"https://sandrewtx08.github.io/prisma-paginate/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandrewTx08.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-18T12:41:30.000Z","updated_at":"2025-03-14T05:11:08.000Z","dependencies_parsed_at":"2022-12-10T14:49:15.568Z","dependency_job_id":"31be783f-ea82-4b07-a793-76c6ef19df2c","html_url":"https://github.com/sandrewTx08/prisma-paginate","commit_stats":{"total_commits":543,"total_committers":4,"mean_commits":135.75,"dds":"0.30386740331491713","last_synced_commit":"d219c922bc316835f9ebb00debabe895997399dc"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrewTx08%2Fprisma-paginate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrewTx08%2Fprisma-paginate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrewTx08%2Fprisma-paginate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandrewTx08%2Fprisma-paginate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandrewTx08","download_url":"https://codeload.github.com/sandrewTx08/prisma-paginate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248631696,"owners_count":21136559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["orm","pagination","prisma","typescript"],"created_at":"2024-11-11T15:25:20.715Z","updated_at":"2025-04-12T20:46:02.230Z","avatar_url":"https://github.com/sandrewTx08.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📖 prisma-paginate\n\n| [![npm version](https://badge.fury.io/js/prisma-paginate.svg)](https://badge.fury.io/js/prisma-paginate) | [![CI](https://github.com/sandrewTx08/prisma-paginate/actions/workflows/ci.yaml/badge.svg)](https://github.com/sandrewTx08/prisma-paginate/actions/workflows/ci.yaml) | [![pages-build-deployment](https://github.com/sandrewTx08/prisma-paginate/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/sandrewTx08/prisma-paginate/actions/workflows/pages/pages-build-deployment) |\n| -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n\n# Install\n\n```shell\nnpm i prisma@\u003e=4.9.0 @prisma/client@\u003e=4.9.0 prisma-paginate@latest\nyarn add prisma@\u003e=4.9.0 @prisma/client@\u003e=4.9.0 prisma-paginate@latest\n```\n\n**`prisma/schema.prisma`**:\n\n```ts\ngenerator client {\n  provider      = \"prisma-client-js\"\n  previewFeatures = [\"clientExtensions\"]\n}\n```\n\n⚠️ These steps no longer required for versions starting from **4.16.0**\n\n# Documentation and usage\n\nFor more details and type definitions see:\n\nhttp://sandrewtx08.github.io/prisma-paginate/\n\n## Importing\n\n```js\n// ESM\nimport { PrismaClient } from \"@prisma/client\";\nimport extension from \"prisma-paginate\";\n\n// Commonjs\nconst { PrismaClient } = require(\"@prisma/client\");\nconst { extension } = require(\"prisma-paginate\");\n```\n\n## Applying extension\n\n```js\nconst prisma = new PrismaClient();\nconst xprisma = prisma.$extends(extension);\n\nxprisma.model2\n\t.paginate({ limit: 10, page: 1, select: { id: true } })\n\t.then((result) =\u003e {\n\t\tconsole.log(result);\n\t});\n\nxprisma.table1\n\t.paginate({ where: { id: 5 } }, { limit: 10, page: 1 })\n\t.then((result) =\u003e {\n\t\tconsole.log(result);\n\t});\n```\n\n## Paginating 100 rows\n\n```js\n// on database = [ { id: 1 }, { id: 2 }, {...}, { id: 100 } ]\nxprisma.model1\n\t.paginate(\n\t\t{\n\t\t\twhere: {\n\t\t\t\t// query stuff...\n\t\t\t},\n\t\t},\n\t\t{ page: 1, limit: 50 },\n\t)\n\t.then((result) =\u003e {\n\t\tconsole.log(result.result); // [ {...}, { id: 48 }, { id: 49 }, { id: 50 } ]\n\t});\n```\n\n## Paginating SQL queries\n\n```ts\nconst [{ count }] = await prisma.$queryRawUnsafe\u003c[{ count: bigint }]\u003e(\n\t'SELECT COUNT(*) FROM \"Model3\";',\n);\n\nconst pagination = new Pagination(limit, page, Number(count));\n```\n\n```ts\nconst data = await prisma.$queryRawUnsafe\u003cunknown[]\u003e(\n\t'SELECT name FROM \"Model3\" LIMIT $1 OFFSET $2;',\n\tlimit,\n\tPagination.offset(limit, page),\n);\n```\n\n## Parameters\n\n- `findManyArgs` {Object}\n- `paginationArgs` {Pagination\u0026onCount?(pagination) =\u003e void}\n\n---\n\n- `findManyPaginationArgs` {Object\u0026Pagination}\n\n## Return\n\n- `result` {Array}\n- `totalPages` {Number}\n- `hasNextPage` {Boolean}\n- `hasPrevPage` {Boolean}\n- `count` {Number}\n- `nextPage` {() =\u003e Promise}\n- `exceedCount` {Boolean}\n- `exceedTotalPages` {Boolean}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandrewtx08%2Fprisma-paginate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandrewtx08%2Fprisma-paginate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandrewtx08%2Fprisma-paginate/lists"}