@@ -58,38 +58,40 @@ retJT = pure . J.toJSON
58
58
59
59
-- 4.5.2.1
60
60
scalarR
61
- :: (Monad m )
61
+ :: (MonadReusability m , MonadError QErr m )
62
62
=> ScalarTyInfo
63
63
-> Field
64
64
-> m J. Object
65
- scalarR (ScalarTyInfo descM name _ _) fld =
65
+ scalarR (ScalarTyInfo descM name _ _) fld = do
66
+ dummyReadIncludeDeprecated fld
66
67
withSubFields (_fSelSet fld) $ \ subFld ->
67
- case _fName subFld of
68
- " __typename" -> retJT " __Type"
69
- " kind" -> retJ TKSCALAR
70
- " description" -> retJ $ fmap G. unDescription descM
71
- " name" -> retJ name
72
- _ -> return J. Null
68
+ case _fName subFld of
69
+ " __typename" -> retJT " __Type"
70
+ " kind" -> retJ TKSCALAR
71
+ " description" -> retJ $ fmap G. unDescription descM
72
+ " name" -> retJ name
73
+ _ -> return J. Null
73
74
74
75
-- 4.5.2.2
75
76
objectTypeR
76
77
:: ( MonadReader r m , Has TypeMap r
77
- , MonadError QErr m )
78
+ , MonadError QErr m , MonadReusability m )
78
79
=> ObjTyInfo
79
80
-> Field
80
81
-> m J. Object
81
- objectTypeR objectType fld =
82
+ objectTypeR objectType fld = do
83
+ dummyReadIncludeDeprecated fld
82
84
withSubFields (_fSelSet fld) $ \ subFld ->
83
- case _fName subFld of
84
- " __typename" -> retJT " __Type"
85
- " kind" -> retJ TKOBJECT
86
- " name" -> retJ $ namedTyToTxt n
87
- " description" -> retJ $ fmap G. unDescription descM
88
- " interfaces" -> fmap J. toJSON $ mapM (`ifaceR` subFld) $ Set. toList iFaces
89
- " fields" -> fmap J. toJSON $ mapM (`fieldR` subFld) $
90
- sortOn _fiName $
91
- filter notBuiltinFld $ Map. elems flds
92
- _ -> return J. Null
85
+ case _fName subFld of
86
+ " __typename" -> retJT " __Type"
87
+ " kind" -> retJ TKOBJECT
88
+ " name" -> retJ $ namedTyToTxt n
89
+ " description" -> retJ $ fmap G. unDescription descM
90
+ " interfaces" -> fmap J. toJSON $ mapM (`ifaceR` subFld) $ Set. toList iFaces
91
+ " fields" -> fmap J. toJSON $ mapM (`fieldR` subFld) $
92
+ sortOn _fiName $
93
+ filter notBuiltinFld $ Map. elems flds
94
+ _ -> return J. Null
93
95
where
94
96
descM = _otiDesc objectType
95
97
n = _otiName objectType
@@ -110,23 +112,24 @@ getImplTypes aot = do
110
112
111
113
-- 4.5.2.3
112
114
unionR
113
- :: (MonadReader t m , MonadError QErr m , Has TypeMap t )
115
+ :: (MonadReader t m , MonadError QErr m , Has TypeMap t , MonadReusability m )
114
116
=> UnionTyInfo -> Field -> m J. Object
115
- unionR u@ (UnionTyInfo descM n _) fld =
117
+ unionR u@ (UnionTyInfo descM n _) fld = do
118
+ dummyReadIncludeDeprecated fld
116
119
withSubFields (_fSelSet fld) $ \ subFld ->
117
- case _fName subFld of
118
- " __typename" -> retJT " __Field"
119
- " kind" -> retJ TKUNION
120
- " name" -> retJ $ namedTyToTxt n
121
- " description" -> retJ $ fmap G. unDescription descM
122
- " possibleTypes" -> fmap J. toJSON $
123
- mapM (`objectTypeR` subFld) =<< getImplTypes (AOTUnion u)
124
- _ -> return J. Null
120
+ case _fName subFld of
121
+ " __typename" -> retJT " __Field"
122
+ " kind" -> retJ TKUNION
123
+ " name" -> retJ $ namedTyToTxt n
124
+ " description" -> retJ $ fmap G. unDescription descM
125
+ " possibleTypes" -> fmap J. toJSON $
126
+ mapM (`objectTypeR` subFld) =<< getImplTypes (AOTUnion u)
127
+ _ -> return J. Null
125
128
126
129
-- 4.5.2.4
127
130
ifaceR
128
131
:: ( MonadReader r m , Has TypeMap r
129
- , MonadError QErr m )
132
+ , MonadError QErr m , MonadReusability m )
130
133
=> G. NamedType
131
134
-> Field
132
135
-> m J. Object
@@ -138,7 +141,7 @@ ifaceR n fld = do
138
141
139
142
ifaceR'
140
143
:: ( MonadReader r m , Has TypeMap r
141
- , MonadError QErr m )
144
+ , MonadError QErr m , MonadReusability m )
142
145
=> IFaceTyInfo
143
146
-> Field
144
147
-> m J. Object
@@ -163,11 +166,12 @@ ifaceR' ifaceTyInfo fld = do
163
166
164
167
-- 4.5.2.5
165
168
enumTypeR
166
- :: ( Monad m )
169
+ :: ( Monad m , MonadReusability m , MonadError QErr m )
167
170
=> EnumTyInfo
168
171
-> Field
169
172
-> m J. Object
170
- enumTypeR (EnumTyInfo descM n vals _) fld =
173
+ enumTypeR (EnumTyInfo descM n vals _) fld = do
174
+ dummyReadIncludeDeprecated fld
171
175
withSubFields (_fSelSet fld) $ \ subFld ->
172
176
case _fName subFld of
173
177
" __typename" -> retJT " __Type"
@@ -231,25 +235,26 @@ dummyReadIncludeDeprecated fld = do
231
235
-- 4.5.2.6
232
236
inputObjR
233
237
:: ( MonadReader r m , Has TypeMap r
234
- , MonadError QErr m )
238
+ , MonadError QErr m , MonadReusability m )
235
239
=> InpObjTyInfo
236
240
-> Field
237
241
-> m J. Object
238
- inputObjR (InpObjTyInfo descM nt flds _) fld =
242
+ inputObjR (InpObjTyInfo descM nt flds _) fld = do
243
+ dummyReadIncludeDeprecated fld
239
244
withSubFields (_fSelSet fld) $ \ subFld ->
240
- case _fName subFld of
241
- " __typename" -> retJT " __Type"
242
- " kind" -> retJ TKINPUT_OBJECT
243
- " name" -> retJ $ namedTyToTxt nt
244
- " description" -> retJ $ fmap G. unDescription descM
245
- " inputFields" -> fmap J. toJSON $ mapM (inputValueR subFld) $
246
- sortOn _iviName $ Map. elems flds
247
- _ -> return J. Null
245
+ case _fName subFld of
246
+ " __typename" -> retJT " __Type"
247
+ " kind" -> retJ TKINPUT_OBJECT
248
+ " name" -> retJ $ namedTyToTxt nt
249
+ " description" -> retJ $ fmap G. unDescription descM
250
+ " inputFields" -> fmap J. toJSON $ mapM (inputValueR subFld) $
251
+ sortOn _iviName $ Map. elems flds
252
+ _ -> return J. Null
248
253
249
254
-- 4.5.2.7
250
255
listTypeR
251
256
:: ( MonadReader r m , Has TypeMap r
252
- , MonadError QErr m )
257
+ , MonadError QErr m , MonadReusability m )
253
258
=> G. ListType -> Field -> m J. Object
254
259
listTypeR (G. ListType ty) fld =
255
260
withSubFields (_fSelSet fld) $ \ subFld ->
@@ -262,7 +267,7 @@ listTypeR (G.ListType ty) fld =
262
267
-- 4.5.2.8
263
268
nonNullR
264
269
:: ( MonadReader r m , Has TypeMap r
265
- , MonadError QErr m )
270
+ , MonadError QErr m , MonadReusability m )
266
271
=> G. GType -> Field -> m J. Object
267
272
nonNullR gTyp fld =
268
273
withSubFields (_fSelSet fld) $ \ subFld ->
@@ -277,7 +282,7 @@ nonNullR gTyp fld =
277
282
278
283
namedTypeR
279
284
:: ( MonadReader r m , Has TypeMap r
280
- , MonadError QErr m )
285
+ , MonadError QErr m , MonadReusability m )
281
286
=> G. NamedType
282
287
-> Field
283
288
-> m J. Object
@@ -287,22 +292,25 @@ namedTypeR nt fld = do
287
292
288
293
namedTypeR'
289
294
:: ( MonadReader r m , Has TypeMap r
290
- , MonadError QErr m )
295
+ , MonadError QErr m , MonadReusability m )
291
296
=> Field
292
297
-> TypeInfo
293
298
-> m J. Object
294
- namedTypeR' fld = \ case
295
- TIScalar colTy -> scalarR colTy fld
296
- TIObj objTyInfo -> objectTypeR objTyInfo fld
297
- TIEnum enumTypeInfo -> enumTypeR enumTypeInfo fld
298
- TIInpObj inpObjTyInfo -> inputObjR inpObjTyInfo fld
299
- TIIFace iFaceTyInfo -> ifaceR' iFaceTyInfo fld
300
- TIUnion unionTyInfo -> unionR unionTyInfo fld
299
+ namedTypeR' fld tyInfo = do
300
+ -- Now fetch the required type information from the corresponding
301
+ -- information generator
302
+ case tyInfo of
303
+ TIScalar colTy -> scalarR colTy fld
304
+ TIObj objTyInfo -> objectTypeR objTyInfo fld
305
+ TIEnum enumTypeInfo -> enumTypeR enumTypeInfo fld
306
+ TIInpObj inpObjTyInfo -> inputObjR inpObjTyInfo fld
307
+ TIIFace iFaceTyInfo -> ifaceR' iFaceTyInfo fld
308
+ TIUnion unionTyInfo -> unionR unionTyInfo fld
301
309
302
310
-- 4.5.3
303
311
fieldR
304
312
:: ( MonadReader r m , Has TypeMap r
305
- , MonadError QErr m )
313
+ , MonadError QErr m , MonadReusability m )
306
314
=> ObjFldInfo -> Field -> m J. Object
307
315
fieldR (ObjFldInfo descM n params ty _) fld =
308
316
withSubFields (_fSelSet fld) $ \ subFld ->
@@ -319,7 +327,7 @@ fieldR (ObjFldInfo descM n params ty _) fld =
319
327
-- 4.5.4
320
328
inputValueR
321
329
:: ( MonadReader r m , Has TypeMap r
322
- , MonadError QErr m )
330
+ , MonadError QErr m , MonadReusability m )
323
331
=> Field -> InpValInfo -> m J. Object
324
332
inputValueR fld (InpValInfo descM n defM ty) =
325
333
withSubFields (_fSelSet fld) $ \ subFld ->
@@ -348,7 +356,7 @@ enumValueR fld (EnumValInfo descM enumVal isDeprecated) =
348
356
-- 4.5.6
349
357
directiveR
350
358
:: ( MonadReader r m , Has TypeMap r
351
- , MonadError QErr m )
359
+ , MonadError QErr m , MonadReusability m )
352
360
=> Field -> DirectiveInfo -> m J. Object
353
361
directiveR fld (DirectiveInfo descM n args locs) =
354
362
withSubFields (_fSelSet fld) $ \ subFld ->
@@ -368,7 +376,7 @@ showDirLoc = \case
368
376
369
377
gtypeR
370
378
:: ( MonadReader r m , Has TypeMap r
371
- , MonadError QErr m )
379
+ , MonadError QErr m , MonadReusability m )
372
380
=> G. GType -> Field -> m J. Object
373
381
gtypeR ty fld =
374
382
case ty of
@@ -379,7 +387,7 @@ gtypeR ty fld =
379
387
380
388
schemaR
381
389
:: ( MonadReader r m , Has TypeMap r
382
- , MonadError QErr m )
390
+ , MonadError QErr m , MonadReusability m )
383
391
=> Field -> m J. Object
384
392
schemaR fld =
385
393
withSubFields (_fSelSet fld) $ \ subFld -> do
0 commit comments