Javascript GraphQL.js-时间戳标量类型?

Javascript GraphQL.js-时间戳标量类型?,javascript,schema,graphql,graphql-js,scalar,Javascript,Schema,Graphql,Graphql Js,Scalar,我正在以编程方式构建GraphQL模式,并且需要时间戳标量类型;标量类型: const TimelineType=new GraphQLObjectType({ 名称:“TimelineType”, 字段:()=>({ 日期:{type:new GraphQLNonNull(graphqltimstamp)}, 价格:{type:new GraphQLNonNull(GraphQLFloat)}, 售出:{type:new GraphQLNonNull(GraphQLInt)} }) });

我正在以编程方式构建GraphQL模式,并且需要
时间戳
标量类型;标量类型:

const TimelineType=new GraphQLObjectType({
名称:“TimelineType”,
字段:()=>({
日期:{type:new GraphQLNonNull(graphqltimstamp)},
价格:{type:new GraphQLNonNull(GraphQLFloat)},
售出:{type:new GraphQLNonNull(GraphQLInt)}
})
});
不幸的是,GraphQL.js既没有
graphqltimstamp
也没有
GraphQLDate
类型,因此上述方法不起作用


我需要一个
日期
输入,我想把它转换成时间戳。如何创建自己的GraphQL时间戳类型?

有一个NPM包,其中包含一组符合RFC 3339的日期/时间GraphQL标量类型


但对于初学者,您应该使用以编程方式在GraphQL中构建自己的标量类型:

/**Kind是描述不同类型的AST节点的枚举*/
从“graphql/language”导入{Kind};
从“graphql”导入{GraphQLScalarType};
const TimestampType=new GraphQLScalarType({
名称:“时间戳”,
序列化(日期){
return(date instanceof date)?date.getTime():null
},
解析值(日期){
尝试{返回新日期(值);}
捕获(错误){return null;}
},
parseLiteral(ast){
if(ast.kind==kind.INT){
返回新日期(parseInt(ast.value,10));
}
else if(ast.kind==kind.STRING){
返回此.parseValue(ast.value);
}
否则{
返回null;
}
},
});
但是,我们没有重新发明轮子,而是讨论了这个问题(),Pavel Lang提出了一个不错的解决方案(my
TimestampType
源于他的)