{"id":13679024,"url":"https://github.com/devoxa/prisma-relay-cursor-connection","last_synced_at":"2026-04-02T01:29:54.034Z","repository":{"id":37064949,"uuid":"273036595","full_name":"devoxa/prisma-relay-cursor-connection","owner":"devoxa","description":"Extend Prisma's `findMany` method to support Relay Cursor Connections","archived":false,"fork":false,"pushed_at":"2026-03-22T17:36:42.000Z","size":3972,"stargazers_count":272,"open_issues_count":11,"forks_count":20,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-23T08:42:05.278Z","etag":null,"topics":["cursor","graphql","hacktoberfest","pagination","prisma","prisma-client","prisma2","relay"],"latest_commit_sha":null,"homepage":"","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/devoxa.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-17T17:19:46.000Z","updated_at":"2026-03-22T17:35:43.000Z","dependencies_parsed_at":"2025-12-30T19:01:01.109Z","dependency_job_id":null,"html_url":"https://github.com/devoxa/prisma-relay-cursor-connection","commit_stats":{"total_commits":676,"total_committers":14,"mean_commits":"48.285714285714285","dds":0.7248520710059172,"last_synced_commit":"ea20ec7a24caa24d08806917905a50d983ba3a51"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/devoxa/prisma-relay-cursor-connection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxa%2Fprisma-relay-cursor-connection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxa%2Fprisma-relay-cursor-connection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxa%2Fprisma-relay-cursor-connection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxa%2Fprisma-relay-cursor-connection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devoxa","download_url":"https://codeload.github.com/devoxa/prisma-relay-cursor-connection/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devoxa%2Fprisma-relay-cursor-connection/sbom","scorecard":{"id":338230,"data":{"date":"2025-08-11","repo":{"name":"github.com/devoxa/prisma-relay-cursor-connection","commit":"5f197521ca488608b19c1d0f70486780fa5aef99"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":-1,"reason":"Found no human activity in the last 15 changesets","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/push.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/push.yml:21: update your workflow using https://app.stepsecurity.io/secureworkflow/devoxa/prisma-relay-cursor-connection/push.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/push.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/devoxa/prisma-relay-cursor-connection/push.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/devoxa/prisma-relay-cursor-connection/push.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/push.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/devoxa/prisma-relay-cursor-connection/push.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"13 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-9pv7-vfvm-6vr7","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T05:13:25.627Z","repository_id":37064949,"created_at":"2025-08-18T05:13:25.627Z","updated_at":"2025-08-18T05:13:25.627Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:05:07.454Z","status":"ssl_error","status_checked_at":"2026-04-02T00:56:46.496Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cursor","graphql","hacktoberfest","pagination","prisma","prisma-client","prisma2","relay"],"created_at":"2024-08-02T13:01:01.037Z","updated_at":"2026-04-02T01:29:54.006Z","avatar_url":"https://github.com/devoxa.png","language":"TypeScript","funding_links":[],"categories":["TypeScript",":safety_vest: Community Prisma Tools"],"sub_categories":[],"readme":"\u003c!-- Title --\u003e\n\u003ch1 align=\"center\"\u003e\n  prisma-relay-cursor-connection\n\u003c/h1\u003e\n\n\u003c!-- Description --\u003e\n\u003ch4 align=\"center\"\u003e\n  Extend \u003ca href=\"https://www.prisma.io/\"\u003ePrisma's\u003c/a\u003e \u003ccode\u003efindMany\u003c/code\u003e method to support \u003ca href=\"https://relay.dev/graphql/connections.htm\"\u003eRelay Cursor Connections\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003c!-- Badges --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@devoxa/prisma-relay-cursor-connection\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/npm/v/@devoxa/prisma-relay-cursor-connection?style=flat-square\"\n      alt=\"Package Version\"\n    /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/actions?query=branch%3Amaster+workflow%3A%22Continuous+Integration%22\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/github/actions/workflow/status/devoxa/prisma-relay-cursor-connection/push.yml?branch=master\u0026style=flat-square\"\n      alt=\"Build Status\"\n    /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://codecov.io/github/devoxa/prisma-relay-cursor-connection\"\u003e\n    \u003cimg\n      src=\"https://img.shields.io/codecov/c/github/devoxa/prisma-relay-cursor-connection/master?style=flat-square\"\n      alt=\"Code Coverage\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- Quicklinks --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#contributors\"\u003eContributors\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n## Installation\n\n```bash\nyarn add @devoxa/prisma-relay-cursor-connection\n```\n\nThis module has a peer dependency on `@prisma/client`. You can check the supported versions in the\n[package.json](./package.json) (`peerDependencies`).\n\n## Usage\n\n### General Usage\n\nThis module validates the connection arguments to make sure they work with Prisma. The following\ncombinations are supported:\n\n- `{}` All resources\n- `{ first: number }` The first X resources\n- `{ first: number, after: string }` The first X resources after the id Y\n- `{ last: number }` The last X resources\n- `{ last: number, before: string }` The last X resources before the id Y\n\nTwo cases need to be checked in your code if you are passing in user-provided data to prevent the\nuser from reading out too many resources at once:\n\n- One of `first` | `last` has to be defined\n- `first` | `last` have to be below a reasonable maximum (e.g. 100)\n\n```ts\nimport {\n  findManyCursorConnection,\n  ConnectionArguments,\n} from '@devoxa/prisma-relay-cursor-connection'\n\nconst result = await findManyCursorConnection(\n  (args) =\u003e client.todo.findMany(args),\n  () =\u003e client.todo.count(),\n  { first: 5, after: '5c11e0fa-fd6b-44ee-9016-0809ee2f2b9a' } // typeof ConnectionArguments\n)\n```\n\n### Type-Safe Arguments\n\nYou can also use additional `FindManyArgs` while keeping type safety intact:\n\n```ts\nimport { findManyCursorConnection } from '@devoxa/prisma-relay-cursor-connection'\n\nconst baseArgs = {\n  select: { id: true, isCompleted: true },\n  where: { isCompleted: true },\n}\n\nconst result = await findManyCursorConnection(\n  (args) =\u003e client.todo.findMany({ ...args, ...baseArgs }),\n  () =\u003e client.todo.count({ where: baseArgs.where }),\n  { last: 5, before: '5c11e0fa-fd6b-44ee-9016-0809ee2f2b9a' }\n)\n\n// Type error: Property text does not exist\nresult.edges[0].node.text\n```\n\n### Custom Cursors\n\nBy default, the cursor is the `id` field of your model. If you would like to use a different field,\na compound index, or handle encoding/decoding, you can pass the following options:\n\n```ts\nimport { findManyCursorConnection } from '@devoxa/prisma-relay-cursor-connection'\n\nconst result = await findManyCursorConnection(\n  (args) =\u003e client.todo.findMany(args),\n  () =\u003e client.todo.count(),\n  { first: 5, after: 'eyJpZCI6MTZ9' },\n  {\n    getCursor: (record) =\u003e ({ id: record.id }),\n    encodeCursor: (cursor) =\u003e Buffer.from(JSON.stringify(cursor)).toString('base64'),\n    decodeCursor: (cursor) =\u003e JSON.parse(Buffer.from(cursor, 'base64').toString('ascii')),\n  }\n)\n```\n\nYou can find more examples for custom cursors in the [unit tests](./tests/index.spec.ts).\n\n### Custom Edges \u0026 Nodes\n\nBy default, the edge consists of the `cursor` and the `node`. If you would like to add additional\nfields to the edge or the node, you can pass the following option:\n\n```ts\nimport { findManyCursorConnection } from '@devoxa/prisma-relay-cursor-connection'\n\nconst result = await findManyCursorConnection(\n  (args) =\u003e client.todo.findMany(args),\n  () =\u003e client.todo.count(),\n  { first: 5, after: 'eyJpZCI6MTZ9' },\n  {\n    recordToEdge: (record) =\u003e ({\n      node: { ...record, extraNodeField: 'Foo' },\n      extraEdgeField: 'Bar',\n    }),\n  }\n)\n```\n\nOut-of-the box this will have the revised types inferred for you.\n\n### Resolve information\n\nYou can pass GraphQL resolve information into the options to automatically remove extra Prisma\nqueries for fields that are not present in your GraphQL query. This is mainly useful if you are not\nusing `totalCount` for your pagination logic or you only want to query `totalCount` without any\nedges.\n\n```ts\nimport { findManyCursorConnection } from '@devoxa/prisma-relay-cursor-connection'\nimport { GraphQLResolveInfo } from 'graphql'\n\nconst resolveInfo: GraphQLResolveInfo = {\n  // ...\n}\n\nconst result = await findManyCursorConnection(\n  (args) =\u003e client.todo.findMany(args),\n  () =\u003e client.todo.count(),\n  { first: 5, after: '5c11e0fa-fd6b-44ee-9016-0809ee2f2b9a' },\n  { resolveInfo }\n)\n```\n\n## Contributing\n\n```bash\n# Setup the test database\nyarn prisma migrate dev --preview-feature\n\n# Run the tests\nyarn test\n```\n\n## Contributors\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.david-reess.de\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/4615516?v=4?s=75\" width=\"75px;\" alt=\"David Reeß\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDavid Reeß\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=queicherius\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=queicherius\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=queicherius\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://twitter.com/controlplusb\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/12164768?v=4?s=75\" width=\"75px;\" alt=\"Sean Matheson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSean Matheson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=ctrlplusb\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=ctrlplusb\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://marcjulian.de/?ref=github\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/8985933?v=4?s=75\" width=\"75px;\" alt=\"Marc\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarc\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=marcjulian\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://jeongsd.dev\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/7903426?v=4?s=75\" width=\"75px;\" alt=\"Jeong Seong Dae\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJeong Seong Dae\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=jeongsd\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=jeongsd\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/ahmetuysal\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26417668?v=4?s=75\" width=\"75px;\" alt=\"Ahmet Uysal\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAhmet Uysal\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=ahmetuysal\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=ahmetuysal\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/nicksrandall\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1800460?v=4?s=75\" width=\"75px;\" alt=\"Nick Randall\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNick Randall\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=nicksrandall\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/igo\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/55597?v=4?s=75\" width=\"75px;\" alt=\"Igor Urminček\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eIgor Urminček\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=igo\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/TheAschr\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10580515?v=4?s=75\" width=\"75px;\" alt=\"Alex Schrimpf\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlex Schrimpf\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=TheAschr\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/marinarierav\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/47626039?v=4?s=75\" width=\"75px;\" alt=\"Marina Riera\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMarina Riera\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=marinarierav\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://kervin.tech/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/15281277?v=4?s=75\" width=\"75px;\" alt=\"Kervin Vasquez\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKervin Vasquez\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=kervin5\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=kervin5\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://stackoverflow.com/users/515932/jeff-gu-kang?tab=profile\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/216363?v=4?s=75\" width=\"75px;\" alt=\"Jeff Gu Kang\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJeff Gu Kang\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=JeffGuKang\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://orta.io/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/49038?v=4?s=75\" width=\"75px;\" alt=\"Orta Therox\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eOrta Therox\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=orta\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=orta\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=orta\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/Kareem-Medhat\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39652808?v=4?s=75\" width=\"75px;\" alt=\"Kareem-Medhat\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKareem-Medhat\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/devoxa/prisma-relay-cursor-connection/commits?author=Kareem-Medhat\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors)\nspecification. Contributions of any kind welcome!\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevoxa%2Fprisma-relay-cursor-connection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevoxa%2Fprisma-relay-cursor-connection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevoxa%2Fprisma-relay-cursor-connection/lists"}