Adding special type for Paginator and FixedLengthPaginator classes #13
+441
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Support for pagination
In your query, if you explicitly return an object that extends the
Illuminate\Pagination\LengthAwarePaginator
class,the query result will be wrapped in a "paginator" type.
Notice that:
Illuminate\Pagination\LengthAwarePaginator
or a class extendingIlluminate\Pagination\LengthAwarePaginator
@return
statement to help GraphQLite find the type of the listOnce this is done, you can get plenty of useful information about this page:
Illuminate\Pagination\LengthAwarePaginator
) and not on the interface (Illuminate\Contracts\Pagination\LengthAwarePaginator
). The interface itself is not iterable (it does not extendTraversable
) and therefore, GraphQLite will refuse to iterate over it.Simple paginator
Note: if you are using
simplePaginate
instead ofpaginate
, you can type hint on theIlluminate\Pagination\Paginator
class.The behaviour will be exactly the same except you will be missing the
totalCount
andlastPage
fields.