graphql-js
graphql-js copied to clipboard
astFromValue fails with a custom scalar serializing to an object value
When you have a scalar with a serialize
function that returns an object, it is not possible to convert it to AST.
So it doesn't allow you to print a schema that has an input value with an object as a default value.
Reproduction -> https://github.com/graphql/graphql-js/pull/4086 Proposed fix -> https://github.com/graphql/graphql-js/pull/4087
const JSONScalar = new GraphQLScalarType({
name: "JSON",
serialize(value) {
return value;
},
});
const schema = new GraphQLSchema({
types: [JSONScalar],
query: new GraphQLObjectType({
name: "Query",
fields: {
test: {
type: GraphQLString,
args: {
i: {
type: JSONScalar,
defaultValue: { object: true },
},
},
},
},
}),
});