StellateHQ / fuse

Fuse: The fastest way to build and query great APIs with TypeScript
https://fusedata.dev
MIT License
543 stars 13 forks source link

RFC: Add optional `PageInfo` support to `t.list` #132

Open mxstbr opened 7 months ago

mxstbr commented 7 months ago

Summary

I have a list of items that is paginated with pages. Using t.connection with edgeNullable: false (which I want because the edges can't be nullable and it simplifies the client code) requires me to return cursor on every edge—which doesn't make a lot of sense for page-based pagination.

While t.list doesn't require me to return a cursor and is the better fit for this use case, with t.list I can't add the same PageInfo type that t.connection uses to return pagination information ( especially hasNextPage and hasPreviousPage)

Proposed Solution

t.list({
  pageInfo: true,
  // → Adds the PageInfo type to the schema if no `t.connection` has already added it
  // → Requires returning `pageInfo` from `resolve`
})