From da5723860e87c97831c02a1137e9431d96c14239 Mon Sep 17 00:00:00 2001 From: Ginhing <3444080+Ginhing@users.noreply.github.com> Date: Mon, 21 Feb 2022 22:06:29 +0800 Subject: [PATCH] correct outdated documentation (#3505) Co-authored-by: Ivan Goncharov --- src/type/definition.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/type/definition.ts b/src/type/definition.ts index 090afa367f..5e0c6d0472 100644 --- a/src/type/definition.ts +++ b/src/type/definition.ts @@ -562,10 +562,9 @@ export interface GraphQLScalarTypeExtensions { * Scalars (or Enums) and are defined with a name and a series of functions * used to parse input from ast or variables and to ensure validity. * - * If a type's serialize function does not return a value (i.e. it returns - * `undefined`) then an error will be raised and a `null` value will be returned - * in the response. If the serialize function returns `null`, then no error will - * be included in the response. + * If a type's serialize function returns `null` or does not return a value + * (i.e. it returns `undefined`) then an error will be raised and a `null` + * value will be returned in the response. It is always better to validate * * Example: * @@ -573,9 +572,16 @@ export interface GraphQLScalarTypeExtensions { * const OddType = new GraphQLScalarType({ * name: 'Odd', * serialize(value) { - * if (value % 2 === 1) { - * return value; + * if (!Number.isFinite(value)) { + * throw new Error( + * `Scalar "Odd" cannot represent "${value}" since it is not a finite number.`, + * ); * } + * + * if (value % 2 === 0) { + * throw new Error(`Scalar "Odd" cannot represent "${value}" since it is even.`); + * } + * return value; * } * }); * ```