@@ -112,7 +112,87 @@ public extension SelectionSet {
112
112
113
113
func addData( for type: Selection . Field . OutputType , inList: Bool = false ) {
114
114
switch type {
115
- case . scalar, . customScalar:
115
+ // case .scalar:
116
+ case let . scalar( scalarType) :
117
+ switch scalarType {
118
+ case is String . Type :
119
+ if field. type. isNullable {
120
+ if inList {
121
+ fields [ field. responseKey] = fieldData as? [ String ? ]
122
+ } else {
123
+ fields [ field. responseKey] = fieldData as? String ?
124
+ }
125
+ } else {
126
+ if inList {
127
+ fields [ field. responseKey] = fieldData as? [ String ]
128
+ } else {
129
+ fields [ field. responseKey] = fieldData as? String
130
+ }
131
+ }
132
+
133
+ case is Int . Type :
134
+ if field. type. isNullable {
135
+ if inList {
136
+ fields [ field. responseKey] = fieldData as? [ Int ? ]
137
+ } else {
138
+ fields [ field. responseKey] = fieldData as? Int ?
139
+ }
140
+ } else {
141
+ if inList {
142
+ fields [ field. responseKey] = fieldData as? [ Int ]
143
+ } else {
144
+ fields [ field. responseKey] = fieldData as? Int
145
+ }
146
+ }
147
+
148
+ case is Bool . Type :
149
+ if field. type. isNullable {
150
+ if inList {
151
+ fields [ field. responseKey] = fieldData as? [ Bool ? ]
152
+ } else {
153
+ fields [ field. responseKey] = fieldData as? Bool ?
154
+ }
155
+ } else {
156
+ if inList {
157
+ fields [ field. responseKey] = fieldData as? [ Bool ]
158
+ } else {
159
+ fields [ field. responseKey] = fieldData as? Bool
160
+ }
161
+ }
162
+
163
+ case is Float . Type :
164
+ if field. type. isNullable {
165
+ if inList {
166
+ fields [ field. responseKey] = fieldData as? [ Float ? ]
167
+ } else {
168
+ fields [ field. responseKey] = fieldData as? Float ?
169
+ }
170
+ } else {
171
+ if inList {
172
+ fields [ field. responseKey] = fieldData as? [ Float ]
173
+ } else {
174
+ fields [ field. responseKey] = fieldData as? Float
175
+ }
176
+ }
177
+
178
+ case is Double . Type :
179
+ if field. type. isNullable {
180
+ if inList {
181
+ fields [ field. responseKey] = fieldData as? [ Double ? ]
182
+ } else {
183
+ fields [ field. responseKey] = fieldData as? Double ?
184
+ }
185
+ } else {
186
+ if inList {
187
+ fields [ field. responseKey] = fieldData as? [ Double ]
188
+ } else {
189
+ fields [ field. responseKey] = fieldData as? Double
190
+ }
191
+ }
192
+
193
+ default : fields [ field. responseKey] = fieldData
194
+ }
195
+ case . customScalar:
116
196
if inList {
117
197
guard let listData = fieldData as? [ AnyHashable ] else {
118
198
preconditionFailure ( " Expected list data for field: \( field) " )
0 commit comments