Registry /
database / graphql-directive-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.
default
✓ import paginationDirective from 'graphql-directive-pagination'
✗ const paginationDirective = require('graphql-directive-pagination')
Default export is a factory function. The package is ESM-only; CommonJS require will fail.
paginationResolver
✓ const { paginationResolver } = paginationDirective('pagination', { timezone: 'utc' })
✗ import { paginationResolver } from 'graphql-directive-pagination'
paginationResolver is not a named export from the package; it's destructured from the result of calling the default export factory function.
paginationDirectiveTransform
✓ const { paginationDirectiveTransform } = paginationDirective('pagination', { timezone: 'utc' })
✗ const { paginationDirectiveTransform } = require('graphql-directive-pagination')
Must call the default export with directive name and options to obtain the transform.
paginationDirectiveTypeDefs
✓ const { paginationDirectiveTypeDefs } = paginationDirective('pagination', { timezone: 'utc' })
✗ import { paginationDirectiveTypeDefs } from 'graphql-directive-pagination'
Type definitions are also returned from the factory, not directly exported.
Shows how to set up the @pagination directive, apply schema transform, and use the generated Pagination types.
import paginationDirective from 'graphql-directive-pagination';
import { makeExecutableSchema } from '@graphql-tools/schema';
const { paginationDirectiveTransform, paginationDirectiveTypeDefs } = paginationDirective('pagination', {
timezone: 'utc'
});
const typeDefs = `
directive @pagination on FIELD_DEFINITION
type User {
userId: Int
posts: [Post!]! @pagination
}
type Post {
postId: Int
}
type Query {
user: User
}
`;
const resolvers = {};
let schema = makeExecutableSchema({
typeDefs: [typeDefs, paginationDirectiveTypeDefs],
resolvers,
});
schema = paginationDirectiveTransform(schema, resolvers);
export default schema;
Errors
Common errors & fixes
Error: Cannot find module 'graphql-directive-pagination'
Package not installed or ESM-only and using CommonJS require.
fixRun `npm install graphql-directive-pagination` and ensure your project uses ES modules (e.g., `"type": "module"` in package.json or use .mjs extension).
TypeError: paginationDirective is not a function
Incorrect import: trying to use named import directly from package instead of calling default export factory.
fixChange to: import paginationDirective from 'graphql-directive-pagination'; const { paginationTransform } = paginationDirective('pagination'); Error: Schema must contain unique root types. Type "Pagination" already exists.
Multiple schemas in the same GraphQL project using this package cause conflicting type definitions.
fixUse unique directive names per schema, or ensure the Pagination types are only added once by reusing the same transform.
Validation Error: Field "posts" of type "Pagination" must have a selection of subfields.
Client query is not selecting nested fields of the Pagination type (e.g., items, pageInfo).
fixUpdate query to include fields like `posts { items { ... } pageInfo { hasMore } }`. Audit
Dependencies
graphqlrequiredPeer dependency required for GraphQL schema manipulation and type definitions.