1+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
12import { schemaComposer , ResolverResolveParams } from 'graphql-compose' ;
2- import {
3- GraphQLString ,
4- GraphQLObjectType ,
5- GraphQLInputObjectType ,
6- GraphQLEnumType ,
7- GraphQLInt ,
8- } from 'graphql-compose/lib/graphql' ;
9- import type { ConnectionSortMapOpts } from '../connectionResolver' ;
3+ import type { ConnectionSortMapOpts } from '../connection' ;
104
11- export const UserType = new GraphQLObjectType ( {
12- name : 'User' ,
13- fields : {
14- id : {
15- type : GraphQLInt ,
16- } ,
17- name : {
18- type : GraphQLString ,
19- } ,
20- age : {
21- type : GraphQLInt ,
22- } ,
23- gender : {
24- type : GraphQLString ,
25- } ,
26- } ,
27- } ) ;
28-
29- export const UserLinkType = new GraphQLObjectType ( {
30- name : 'UserLink' ,
31- fields : {
32- id : {
33- type : GraphQLInt ,
34- } ,
35- type : {
36- type : GraphQLString ,
37- } ,
38- userId : {
39- type : GraphQLInt ,
40- } ,
41- otherUserId : {
42- type : GraphQLInt ,
43- } ,
44- } ,
45- } ) ;
5+ export const UserTC = schemaComposer . createObjectTC ( `
6+ type User {
7+ id: Int
8+ name: String
9+ age: Int
10+ gender: String
11+ }
12+ ` ) ;
4613
47- export const userTC = schemaComposer . createObjectTC ( UserType ) ;
48- export const userLinkTC = schemaComposer . createObjectTC ( UserLinkType ) ;
14+ export const UserLinkTC = schemaComposer . createObjectTC ( `
15+ type UserLink {
16+ id: Int
17+ type: String
18+ userId: Int
19+ otherUserId: Int
20+ }
21+ ` ) ;
4922
5023export const userList = [
5124 { id : 1 , name : 'user01' , age : 11 , gender : 'm' } ,
@@ -70,52 +43,29 @@ export const userLinkList = [
7043 { id : 2 , type : 'dislikes' , userId : 2 , otherUserId : 1 } ,
7144] ;
7245
73- const filterArgConfig = {
74- name : 'filter' ,
75- type : new GraphQLInputObjectType ( {
76- name : 'FilterUserInput' ,
77- fields : {
78- gender : {
79- type : GraphQLString ,
80- } ,
81- age : {
82- type : GraphQLInt ,
83- } ,
84- } ,
85- } ) ,
86- } ;
46+ const filterArgConfig = schemaComposer . createInputTC ( `
47+ input FilterUserInput {
48+ gender: String
49+ age: Int
50+ }
51+ ` ) ;
8752
88- const filterEdgeArgConfig = {
89- name : 'filter' ,
90- type : new GraphQLInputObjectType ( {
91- name : 'FilterNodeEdgeUserInput' ,
92- fields : {
93- edge : {
94- type : new GraphQLInputObjectType ( {
95- name : 'FilterNodeEdgeEdgeUserInput' ,
96- fields : {
97- type : {
98- type : GraphQLString ,
99- } ,
100- } ,
101- } ) ,
102- } ,
103- node : {
104- type : new GraphQLInputObjectType ( {
105- name : 'FilterNodeNodeEdgeUserInput' ,
106- fields : {
107- gender : {
108- type : GraphQLString ,
109- } ,
110- age : {
111- type : GraphQLInt ,
112- } ,
113- } ,
114- } ) ,
115- } ,
116- } ,
117- } ) ,
118- } ;
53+ const filterEdgeArgConfig = schemaComposer . createInputTC ( {
54+ name : 'FilterNodeEdgeUserInput' ,
55+ fields : {
56+ edge : `
57+ input FilterNodeEdgeEdgeUserInput {
58+ type: String
59+ }
60+ ` ,
61+ node : `
62+ input FilterNodeNodeEdgeUserInput {
63+ gender: String
64+ age: Int
65+ }
66+ ` ,
67+ } ,
68+ } ) ;
11969
12070function filterUserLink (
12171 link : typeof userLinkList [ 0 ] ,
@@ -189,13 +139,13 @@ function prepareFilterFromArgs(resolveParams = {} as ResolverResolveParams<any,
189139 return filter ;
190140}
191141
192- export const findManyResolver = schemaComposer . createResolver ( {
142+ export const findManyResolver = schemaComposer . createResolver < any , any > ( {
193143 name : 'findMany' ,
194144 kind : 'query' ,
195- type : UserType ,
145+ type : UserTC ,
196146 args : {
197147 filter : filterArgConfig ,
198- sort : new GraphQLEnumType ( {
148+ sort : UserTC . schemaComposer . createEnumTC ( {
199149 name : 'SortUserInput' ,
200150 values : {
201151 ID_ASC : { value : { id : 1 } } ,
@@ -204,8 +154,8 @@ export const findManyResolver = schemaComposer.createResolver({
204154 AGE_DESC : { value : { age : - 1 } } ,
205155 } ,
206156 } ) ,
207- limit : GraphQLInt ,
208- skip : GraphQLInt ,
157+ limit : 'Int' ,
158+ skip : 'Int' ,
209159 } ,
210160 resolve : ( resolveParams ) => {
211161 const args = resolveParams . args || { } ;
@@ -226,20 +176,18 @@ export const findManyResolver = schemaComposer.createResolver({
226176 return Promise . resolve ( list ) ;
227177 } ,
228178} ) ;
229- userTC . setResolver ( 'findMany' , findManyResolver ) ;
230179
231180export const countResolver = schemaComposer . createResolver ( {
232181 name : 'count' ,
233182 kind : 'query' ,
234- type : GraphQLInt ,
183+ type : 'Int' ,
235184 args : {
236185 filter : filterArgConfig ,
237186 } ,
238187 resolve : ( resolveParams ) => {
239188 return Promise . resolve ( filteredUserList ( userList , prepareFilterFromArgs ( resolveParams ) ) . length ) ;
240189 } ,
241190} ) ;
242- userTC . setResolver ( 'count' , countResolver ) ;
243191
244192function getThroughLinkResolver ( list : typeof userLinkList , filter : any ) {
245193 const nodeFilter = filter ? filter . node : { } ;
@@ -255,11 +203,11 @@ function getThroughLinkResolver(list: typeof userLinkList, filter: any) {
255203export const findManyThroughLinkResolver = schemaComposer . createResolver ( {
256204 name : 'findManyThroughLink' ,
257205 kind : 'query' ,
258- type : UserType ,
206+ type : UserTC ,
259207 args : {
260208 filter : filterEdgeArgConfig ,
261- limit : GraphQLInt ,
262- skip : GraphQLInt ,
209+ limit : 'Int' ,
210+ skip : 'Int' ,
263211 } ,
264212 resolve : async ( resolveParams ) => {
265213 const args = resolveParams . args || { } ;
@@ -277,12 +225,11 @@ export const findManyThroughLinkResolver = schemaComposer.createResolver({
277225 return getThroughLinkResolver ( list , args . filter ) ;
278226 } ,
279227} ) ;
280- userTC . setResolver ( 'findManyThroughLink' , findManyThroughLinkResolver ) ;
281228
282229export const countThroughLinkResolver = schemaComposer . createResolver ( {
283230 name : 'count' ,
284231 kind : 'query' ,
285- type : GraphQLInt ,
232+ type : 'Int' ,
286233 args : {
287234 filter : filterEdgeArgConfig ,
288235 } ,
@@ -291,7 +238,6 @@ export const countThroughLinkResolver = schemaComposer.createResolver({
291238 return getThroughLinkResolver ( userLinkList . slice ( ) , args . filter ) . length ;
292239 } ,
293240} ) ;
294- userTC . setResolver ( 'countThroughLink' , countThroughLinkResolver ) ;
295241
296242export const sortOptions : ConnectionSortMapOpts = {
297243 ID_ASC : {
0 commit comments