@@ -171,35 +171,22 @@ public final class GraphQLScalarType {
171171 public let kind : TypeKind = . scalar
172172
173173 let serialize : ( Any ) throws -> Map
174- let parseValue : ( ( Map ) throws -> Map ) ?
175- let parseLiteral : ( ( Value ) throws -> Map ) ?
176-
177- public init (
178- name: String ,
179- description: String ? = nil ,
180- serialize: @escaping ( Any ) throws -> Map
181- ) throws {
182- try assertValid ( name: name)
183- self . name = name
184- self . description = description
185- self . serialize = serialize
186- parseValue = nil
187- parseLiteral = nil
188- }
174+ let parseValue : ( Map ) throws -> Map
175+ let parseLiteral : ( Value ) throws -> Map
189176
190177 public init (
191178 name: String ,
192179 description: String ? = nil ,
193180 serialize: @escaping ( Any ) throws -> Map ,
194- parseValue: @escaping ( Map ) throws -> Map ,
195- parseLiteral: @escaping ( Value ) throws -> Map
181+ parseValue: ( ( Map ) throws -> Map ) ? = nil ,
182+ parseLiteral: ( ( Value ) throws -> Map ) ? = nil
196183 ) throws {
197184 try assertValid ( name: name)
198185 self . name = name
199186 self . description = description
200187 self . serialize = serialize
201- self . parseValue = parseValue
202- self . parseLiteral = parseLiteral
188+ self . parseValue = parseValue ?? defaultParseValue
189+ self . parseLiteral = parseLiteral ?? defaultParseLiteral
203190 }
204191
205192 // Serializes an internal value to include in a response.
@@ -209,15 +196,23 @@ public final class GraphQLScalarType {
209196
210197 // Parses an externally provided value to use as an input.
211198 public func parseValue( value: Map ) throws -> Map {
212- return try parseValue ? ( value) ?? Map . null
199+ return try parseValue ( value)
213200 }
214201
215202 // Parses an externally provided literal value to use as an input.
216203 public func parseLiteral( valueAST: Value ) throws -> Map {
217- return try parseLiteral ? ( valueAST) ?? Map . null
204+ return try parseLiteral ( valueAST)
218205 }
219206}
220207
208+ let defaultParseValue : ( ( Map ) throws -> Map ) = { value in
209+ value
210+ }
211+
212+ let defaultParseLiteral : ( ( Value ) throws -> Map ) = { value in
213+ try valueFromASTUntyped ( valueAST: value)
214+ }
215+
221216extension GraphQLScalarType : Encodable {
222217 private enum CodingKeys : String , CodingKey {
223218 case name
0 commit comments