33
44import type {
55 Resolver ,
6- TypeComposer ,
6+ ObjectTypeComposer ,
77 ResolveParams , // eslint-disable-line
88 ProjectionType ,
99} from 'graphql-compose' ;
@@ -50,26 +50,28 @@ export type PaginationInfoType = {|
5050 hasNextPage : boolean ,
5151| } ;
5252
53- export function preparePaginationResolver (
54- tc : TypeComposer ,
53+ export function preparePaginationResolver < TSource , TContext > (
54+ tc : ObjectTypeComposer < TSource , TContext > ,
5555 opts : ComposeWithPaginationOpts
56- ) : Resolver {
57- if ( ! tc || tc . constructor . name !== 'TypeComposer' ) {
58- throw new Error ( 'First arg for prepareConnectionResolver() should be instance of TypeComposer' ) ;
56+ ) : Resolver < TSource , TContext > {
57+ if ( ! tc || tc . constructor . name !== 'ObjectTypeComposer' ) {
58+ throw new Error (
59+ 'First arg for prepareConnectionResolver() should be instance of ObjectTypeComposer'
60+ ) ;
5961 }
6062
6163 const resolverName = opts . paginationResolverName || DEFAULT_RESOLVER_NAME ;
6264
6365 if ( ! opts . countResolverName ) {
6466 throw new Error (
65- `TypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
67+ `ObjectTypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
6668 'should have option `opts.countResolverName`.'
6769 ) ;
6870 }
6971 const countResolver = tc . getResolver ( opts . countResolverName ) ;
7072 if ( ! countResolver ) {
7173 throw new Error (
72- `TypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
74+ `ObjectTypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
7375 `should have resolver with name '${ opts . countResolverName } ' ` +
7476 'due opts.countResolverName.'
7577 ) ;
@@ -78,14 +80,14 @@ export function preparePaginationResolver(
7880
7981 if ( ! opts . findResolverName ) {
8082 throw new Error (
81- `TypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
83+ `ObjectTypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
8284 'should have option `opts.findResolverName`.'
8385 ) ;
8486 }
8587 const findManyResolver = tc . getResolver ( opts . findResolverName ) ;
8688 if ( ! findManyResolver ) {
8789 throw new Error (
88- `TypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
90+ `ObjectTypeComposer (${ tc . getTypeName ( ) } ) provided to composeWithConnection ` +
8991 `should have resolver with name '${ opts . findResolverName } ' ` +
9092 'due opts.countResolverName.'
9193 ) ;
@@ -106,8 +108,8 @@ export function preparePaginationResolver(
106108 }
107109 }
108110
109- return new tc . constructor . schemaComposer . Resolver ( {
110- type : preparePaginationTC ( tc , resolverName ) ,
111+ return tc . schemaComposer . createResolver ( {
112+ type : preparePaginationTC ( tc ) ,
111113 name : resolverName ,
112114 kind : 'query' ,
113115 args : {
@@ -122,14 +124,11 @@ export function preparePaginationResolver(
122124 } ,
123125 ...( additionalArgs : any ) ,
124126 } ,
125- // prettier-ignore
126- resolve : async /* :: <TContext> */ (
127- rp /* : $Shape<PaginationResolveParams<TContext>> */
128- ) => {
127+ resolve : async ( rp : $Shape < PaginationResolveParams < TContext >> ) => {
129128 let countPromise ;
130129 let findManyPromise ;
131130 const { projection = { } , args, rawQuery } = rp ;
132- const findManyParams /* : $Shape<ResolveParams<any , TContext>> */ = {
131+ const findManyParams : $Shape < ResolveParams < TSource , TContext , any > > = {
133132 ...rp ,
134133 } ;
135134
@@ -142,7 +141,7 @@ export function preparePaginationResolver(
142141 throw new Error ( 'Argument `perPage` should be positive number.' ) ;
143142 }
144143
145- const countParams /* : $Shape<ResolveParams<any , TContext>> */ = {
144+ const countParams : $Shape < ResolveParams < TSource , TContext , any > > = {
146145 ...rp ,
147146 rawQuery,
148147 args : {
@@ -203,6 +202,6 @@ export function preparePaginationResolver(
203202 } ;
204203 return result ;
205204 } ) ;
206- }
205+ } ,
207206 } ) ;
208207}
0 commit comments