@@ -2,13 +2,23 @@ import { Resolver, inspect } from 'graphql-compose';
22import type {
33 ObjectTypeComposer ,
44 InterfaceTypeComposer ,
5+ UnionTypeComposer ,
6+ ScalarTypeComposer ,
7+ EnumTypeComposer ,
58 ResolverResolveParams ,
69 ObjectTypeComposerArgumentConfigMap ,
710} from 'graphql-compose' ;
811import { preparePaginationTC } from './types' ;
912
1013export const DEFAULT_RESOLVER_NAME = 'pagination' ;
1114export const DEFAULT_PER_PAGE = 20 ;
15+ const ALLOWED_TYPE_COMPOSERS = [
16+ 'ObjectTypeComposer' ,
17+ 'InterfaceTypeComposer' ,
18+ 'UnionTypeComposer' ,
19+ 'ScalarTypeComposer' ,
20+ 'EnumTypeComposer' ,
21+ ] ;
1222
1323export type PaginationResolverOpts = {
1424 findManyResolver : Resolver ;
@@ -40,12 +50,19 @@ export interface PaginationTArgs {
4050}
4151
4252export function preparePaginationResolver < TSource , TContext > (
43- tc : ObjectTypeComposer < TSource , TContext > | InterfaceTypeComposer < TSource , TContext > ,
53+ tc :
54+ | ObjectTypeComposer < TSource , TContext >
55+ | InterfaceTypeComposer < TSource , TContext >
56+ | UnionTypeComposer < TSource , TContext >
57+ | ScalarTypeComposer < TContext >
58+ | EnumTypeComposer < TContext > ,
4459 opts : PaginationResolverOpts
4560) : Resolver < TSource , TContext , PaginationTArgs > {
46- if ( ! tc || tc . constructor . name !== 'ObjectTypeComposer' ) {
61+ if ( ! tc || ! ALLOWED_TYPE_COMPOSERS . includes ( tc . constructor . name ) ) {
4762 throw new Error (
48- 'First arg for prepareConnectionResolver() should be instance of ObjectTypeComposer'
63+ `First arg for preparePaginationResolver() should be instance of ${ ALLOWED_TYPE_COMPOSERS . join (
64+ ' or '
65+ ) } `
4966 ) ;
5067 }
5168
0 commit comments