@backland/schema
Version:
TypeScript schema declaration and validation library with static type inference
29 lines • 943 B
JavaScript
import { GraphQLError, GraphQLScalarType, Kind } from 'graphql';
import { DateField } from '../fields/DateField';
export var GraphQLDateType = new GraphQLScalarType({
name: 'Date',
parseLiteral(ast) {
if (ast.kind === Kind.INT) {
return new Date(parseInt(ast.value, 10));
}
if (ast.kind !== Kind.STRING) {
throw new GraphQLError("Query error: Can only parse string or integer to Date but got a: ".concat(ast.kind), [ast]);
}
var result = new Date(ast.value);
if (Number.isNaN(result.getTime())) {
throw new GraphQLError('Query error: Invalid date', [ast]);
}
return result;
},
parseValue(value) {
var date = new Date(value);
if (Number.isNaN(date.getTime())) {
throw new TypeError('Field error: value is an invalid Date');
}
return date;
},
serialize(value) {
return DateField.serialize(value).toJSON();
}
});
//# sourceMappingURL=GraphQLDateType.js.map