mirror of
https://github.com/strapi/strapi.git
synced 2025-07-26 18:38:46 +00:00
37 lines
830 B
JavaScript
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;
|