@@ -304,20 +304,46 @@ export interface GraphQLScalarTypeExtensions {
304
304
* const OddType = new GraphQLScalarType({
305
305
* name: 'Odd',
306
306
* 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
+ * }
308
315
* }
309
316
* });
310
317
*
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
+ *
311
338
*/
312
339
export class GraphQLScalarType {
313
340
name : string ;
314
341
description : Maybe < string > ;
315
342
specifiedByURL : Maybe < string > ;
316
343
serialize : GraphQLScalarSerializer < unknown > ;
317
344
parseValue : GraphQLScalarValueParser < unknown > ;
318
- parseLiteral : Maybe < GraphQLScalarLiteralParser < unknown > > ;
345
+ parseLiteral : GraphQLScalarLiteralParser < unknown > ;
319
346
valueToLiteral : Maybe < GraphQLScalarValueToLiteral > ;
320
- literalToValue : Maybe < GraphQLScalarLiteralToValue > ;
321
347
extensions : Maybe < Readonly < GraphQLScalarTypeExtensions > > ;
322
348
astNode : Maybe < ScalarTypeDefinitionNode > ;
323
349
extensionASTNodes : ReadonlyArray < ScalarTypeExtensionNode > ;
@@ -328,9 +354,8 @@ export class GraphQLScalarType {
328
354
specifiedByURL : Maybe < string > ;
329
355
serialize : GraphQLScalarSerializer < unknown > ;
330
356
parseValue : GraphQLScalarValueParser < unknown > ;
331
- parseLiteral : Maybe < GraphQLScalarLiteralParser < unknown > > ;
357
+ parseLiteral : GraphQLScalarLiteralParser < unknown > ;
332
358
valueToLiteral : Maybe < GraphQLScalarValueToLiteral > ;
333
- literalToValue : Maybe < GraphQLScalarLiteralToValue > ;
334
359
extensions : Maybe < Readonly < GraphQLScalarTypeExtensions > > ;
335
360
extensionASTNodes : ReadonlyArray < ScalarTypeExtensionNode > ;
336
361
} ;
@@ -352,9 +377,6 @@ export type GraphQLScalarLiteralParser<TInternal> = (
352
377
export type GraphQLScalarValueToLiteral = (
353
378
inputValue : unknown ,
354
379
) => Maybe < ConstValueNode > ;
355
- export type GraphQLScalarLiteralToValue = (
356
- valueNode : ConstValueNode ,
357
- ) => unknown ;
358
380
359
381
export interface GraphQLScalarTypeConfig < TInternal , TExternal > {
360
382
name : string ;
@@ -366,10 +388,8 @@ export interface GraphQLScalarTypeConfig<TInternal, TExternal> {
366
388
parseValue ?: GraphQLScalarValueParser < TInternal > ;
367
389
// Parses an externally provided literal value to use as an input.
368
390
parseLiteral ?: GraphQLScalarLiteralParser < TInternal > ;
369
- // Translates an external input value to a literal (AST).
391
+ // Translates an externally provided value to a literal (AST).
370
392
valueToLiteral ?: Maybe < GraphQLScalarValueToLiteral > ;
371
- // Translates a literal (AST) to external input value.
372
- literalToValue ?: Maybe < GraphQLScalarLiteralToValue > ;
373
393
extensions ?: Maybe < Readonly < GraphQLScalarTypeExtensions > > ;
374
394
astNode ?: Maybe < ScalarTypeDefinitionNode > ;
375
395
extensionASTNodes ?: Maybe < ReadonlyArray < ScalarTypeExtensionNode > > ;
@@ -802,7 +822,6 @@ export class GraphQLEnumType {
802
822
parseValue ( value : unknown ) : Maybe < any > ;
803
823
parseLiteral ( valueNode : ConstValueNode ) : Maybe < any > ;
804
824
valueToLiteral ( value : unknown ) : Maybe < ConstValueNode > ;
805
- literalToValue ( valueNode : ConstValueNode ) : unknown ;
806
825
807
826
toConfig ( ) : GraphQLEnumTypeConfig & {
808
827
extensions : Maybe < Readonly < GraphQLEnumTypeExtensions > > ;
0 commit comments