UNPKG

graphql-compose-mongoose

Version:

Plugin for `graphql-compose` which derive a graphql types from a mongoose model.

37 lines (30 loc) 983 B
/* @flow */ /* eslint-disable global-require */ import type { Resolver, ObjectTypeComposer } from 'graphql-compose'; import type { MongooseDocument } from 'mongoose'; export type PaginationResolverOpts = { perPage?: number, }; export default function pagination<TSource: MongooseDocument, TContext>( model: Class<TSource>, // === MongooseModel tc: ObjectTypeComposer<TSource, TContext>, opts?: PaginationResolverOpts ): ?Resolver<TSource, TContext> { try { require.resolve('graphql-compose-pagination'); } catch (e) { return undefined; } const preparePaginationResolver = require('graphql-compose-pagination').preparePaginationResolver; if (!preparePaginationResolver) { throw new Error( 'You should update `graphql-compose-pagination` package till 3.3.0 version or above' ); } const resolver = preparePaginationResolver(tc, { findResolverName: 'findMany', countResolverName: 'count', ...opts, }); return resolver; }