Alexandre Bodin 0ae14c06cb 1st fix pass
2022-08-11 10:20:48 +02:00

37 lines
830 B
JavaScript

'use strict';
const { GraphQLScalarType } = require('graphql');
const { Kind } = require('graphql');
const { parseType } = require('@strapi/utils');
const { ValidationError } = require('@strapi/utils').errors;
/**
* A GraphQL scalar used to store Time (HH:mm:ss.SSS) values
* @type {GraphQLScalarType}
*/
const TimeScalar = new GraphQLScalarType({
name: 'Time',
description: 'A time string with format HH:mm:ss.SSS',
serialize(value) {
return parseType({ type: 'time', value });
},
parseValue(value) {
return parseType({ type: 'time', value });
},
parseLiteral(ast) {
if (ast.kind !== Kind.STRING) {
throw new ValidationError('Time cannot represent non string type');
}
const { value } = ast;
return parseType({ type: 'time', value });
},
});
module.exports = TimeScalar;