@@ -304,20 +304,46 @@ export interface GraphQLScalarTypeExtensions {
304304 *     const OddType = new GraphQLScalarType({ 
305305 *       name: 'Odd', 
306306 *       serialize(value) { 
307-  *         return value % 2 === 1 ? value : null; 
307+  *         if (value % 2 === 1) { 
308+  *           return value; 
309+  *         } 
310+  *       }, 
311+  *       parseValue(value) { 
312+  *         if (value % 2 === 1) { 
313+  *           return value; 
314+  *         } 
308315 *       } 
309316 *     }); 
310317 * 
318+  * Custom scalars behavior is defined via the following functions: 
319+  * 
320+  *  - serialize(value): Implements "Result Coercion". Given an internal value, 
321+  *    produces an external value valid for this type. Returns undefined or 
322+  *    throws an error to indicate invalid values. 
323+  * 
324+  *  - parseValue(value): Implements "Input Coercion" for values. Given an 
325+  *    external value (for example, variable values), produces an internal value 
326+  *    valid for this type. Returns undefined or throws an error to indicate 
327+  *    invalid values. 
328+  * 
329+  *  - parseLiteral(ast): Implements "Input Coercion" for literals. Given an 
330+  *    GraphQL literal (AST) (for example, an argument value), produces an 
331+  *    internal value valid for this type. Returns undefined or throws an error 
332+  *    to indicate invalid values. 
333+  * 
334+  *  - valueToLiteral(value): Converts an external value to a GraphQL 
335+  *    literal (AST). Returns undefined or throws an error to indicate 
336+  *    invalid values. 
337+  * 
311338 */ 
312339export  class  GraphQLScalarType  { 
313340  name : string ; 
314341  description : Maybe < string > ; 
315342  specifiedByURL : Maybe < string > ; 
316343  serialize : GraphQLScalarSerializer < unknown > ; 
317344  parseValue : GraphQLScalarValueParser < unknown > ; 
318-   parseLiteral : Maybe < GraphQLScalarLiteralParser < unknown > > ; 
345+   parseLiteral : GraphQLScalarLiteralParser < unknown > ; 
319346  valueToLiteral : Maybe < GraphQLScalarValueToLiteral > ; 
320-   literalToValue : Maybe < GraphQLScalarLiteralToValue > ; 
321347  extensions : Maybe < Readonly < GraphQLScalarTypeExtensions > > ; 
322348  astNode : Maybe < ScalarTypeDefinitionNode > ; 
323349  extensionASTNodes : ReadonlyArray < ScalarTypeExtensionNode > ; 
@@ -328,9 +354,8 @@ export class GraphQLScalarType {
328354    specifiedByURL : Maybe < string > ; 
329355    serialize : GraphQLScalarSerializer < unknown > ; 
330356    parseValue : GraphQLScalarValueParser < unknown > ; 
331-     parseLiteral : Maybe < GraphQLScalarLiteralParser < unknown > > ; 
357+     parseLiteral : GraphQLScalarLiteralParser < unknown > ; 
332358    valueToLiteral : Maybe < GraphQLScalarValueToLiteral > ; 
333-     literalToValue : Maybe < GraphQLScalarLiteralToValue > ; 
334359    extensions : Maybe < Readonly < GraphQLScalarTypeExtensions > > ; 
335360    extensionASTNodes : ReadonlyArray < ScalarTypeExtensionNode > ; 
336361  } ; 
@@ -352,9 +377,6 @@ export type GraphQLScalarLiteralParser<TInternal> = (
352377export  type  GraphQLScalarValueToLiteral  =  ( 
353378  inputValue : unknown , 
354379)  =>  Maybe < ConstValueNode > ; 
355- export  type  GraphQLScalarLiteralToValue  =  ( 
356-   valueNode : ConstValueNode , 
357- )  =>  unknown ; 
358380
359381export  interface  GraphQLScalarTypeConfig < TInternal ,  TExternal >  { 
360382  name : string ; 
@@ -366,10 +388,8 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
366388  parseValue ?: GraphQLScalarValueParser < TInternal > ; 
367389  // Parses an externally provided literal value to use as an input. 
368390  parseLiteral ?: GraphQLScalarLiteralParser < TInternal > ; 
369-   // Translates an external input  value to a literal (AST). 
391+   // Translates an externally provided  value to a literal (AST). 
370392  valueToLiteral ?: Maybe < GraphQLScalarValueToLiteral > ; 
371-   // Translates a literal (AST) to external input value. 
372-   literalToValue ?: Maybe < GraphQLScalarLiteralToValue > ; 
373393  extensions ?: Maybe < Readonly < GraphQLScalarTypeExtensions > > ; 
374394  astNode ?: Maybe < ScalarTypeDefinitionNode > ; 
375395  extensionASTNodes ?: Maybe < ReadonlyArray < ScalarTypeExtensionNode > > ; 
@@ -801,7 +821,6 @@ export class GraphQLEnumType {
801821  parseValue ( value : unknown ) : Maybe < any > ; 
802822  parseLiteral ( valueNode : ConstValueNode ) : Maybe < any > ; 
803823  valueToLiteral ( value : unknown ) : Maybe < ConstValueNode > ; 
804-   literalToValue ( valueNode : ConstValueNode ) : unknown ; 
805824
806825  toConfig ( ) : GraphQLEnumTypeConfig  &  { 
807826    extensions : Maybe < Readonly < GraphQLEnumTypeExtensions > > ; 
0 commit comments