我正在创建覆盖内置的自定义标量类型Int
和Float
. 我想知道架构是否将值定义为可为空的。我想解决一个Int
与Int!
我的自定义标量类型不同的问题
我想要做的是在自定义标量类型的解析器中知道该值是否在模式中定义为 Nullable,以便我可以以不同的方式解析它们并引发自定义错误。
const resolvers = {
// ...
Int: new GraphQL.GraphQLScalarType ({
name: 'Int',
description: 'Custom Int type',
serialize (val, isNullable) {
},
parseValue (val, isNullable) {
// assume this parses the value
const value = transit.read (val);
// this does some type checking (using a library called sanctuary)
if (S.is ($.Integer) (value)) {
// if Nullable we want to return a maybe type
if (isNullable) return S.Just (value);
return value;
}
return isNullable ? S.Nothing : new Error ();
},
parseLiteral (ast) {
},
}),
}
Int
(Nullable) 的结果是类型,Maybe Integer
( Int!
Non-Nullable) 的结果是类型Integer