Registry /
database / graphql-compose-pagination
Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
preparePaginationResolver
✓ import { preparePaginationResolver } from 'graphql-compose-pagination'
✗ const preparePaginationResolver = require('graphql-compose-pagination')
Main export is a named function. CommonJS require works but matches the default export of an object with preparePaginationResolver property; prefer ESM import.
PaginationInfoType
✓ import { PaginationInfoType } from 'graphql-compose-pagination'
✗ import PaginationInfoType from 'graphql-compose-pagination'
PaginationInfoType is a named export, not default. Available since v8.
ResolverResolveParams
✓ import { ResolverResolveParams } from 'graphql-compose'
✗ import { ResolverResolveParams } from 'graphql-compose-pagination'
ResolverResolveParams is a type from graphql-compose, not from this package. Common mistake when trying to type the resolve params.
PaginationResolverOpts
✓ import { PaginationResolverOpts } from 'graphql-compose-pagination'
✗ const { PaginationResolverOpts } = require('graphql-compose-pagination')
TypeScript type, not a runtime value. Only import when using TypeScript.
Shows how to import and use preparePaginationResolver to add a paginated resolver (with page/perPage args) to an ObjectTypeComposer.
import { preparePaginationResolver } from 'graphql-compose-pagination';
import { schemaComposer } from 'graphql-compose';
// Assuming you have UserTC with findMany and count resolvers
const UserTC = schemaComposer.createObjectTC({
name: 'User',
fields: { id: 'Int!', name: 'String!', age: 'Int!' },
});
// Mock findManyResolver (returns list) and countResolver (returns count)
const findManyResolver = schemaComposer.createResolver({
name: 'findMany',
type: [UserTC],
resolve: async () => [{ id: 1, name: 'John', age: 25 }],
});
const countResolver = schemaComposer.createResolver({
name: 'count',
type: 'Int',
resolve: async () => 1,
});
// Add pagination resolver to UserTC
UserTC.addResolver(
preparePaginationResolver(UserTC, {
findManyResolver,
countResolver,
perPage: 10,
name: 'paginatedUsers',
})
);
const schema = schemaComposer.buildSchema();
// Now query 'paginatedUsers' with arguments: page, perPage, filter, sort
Errors
Common errors & fixes
Error: Cannot find module 'graphql-compose-pagination'
Package not installed or missing from node_modules.
fixRun: npm install graphql-compose-pagination
TypeError: preparePaginationResolver is not a function
Using default import instead of named import (e.g., import prepPagination from 'graphql-compose-pagination').
fixChange to: import { preparePaginationResolver } from 'graphql-compose-pagination' GraphQLError: Field 'pagination' is not defined on type 'Query'
The pagination resolver was not added to any type in the schema.
fixCall UserTC.addResolver() with the result of preparePaginationResolver() before building schema.
Error: Cannot read property 'resolve' of undefined
Missing findManyResolver or countResolver in options object.
fixEnsure both 'findManyResolver' and 'countResolver' are passed to preparePaginationResolver.
Audit
Dependencies
graphql-composerequiredPeer dependency; required to use this plugin.