@@ -112,7 +112,87 @@ public extension SelectionSet {
112112
113113 func addData( for type: Selection . Field . OutputType , inList: Bool = false ) {
114114 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:
116196 if inList {
117197 guard let listData = fieldData as? [ AnyHashable ] else {
118198 preconditionFailure ( " Expected list data for field: \( field) " )
0 commit comments