Я пытаюсь определить пользовательский скаляр на сервере apollo, пока вот что у меня есть
Пользовательский скалярный файл (timestamp.js)
import { isRFC3339 } from 'validator';
import { GraphQLScalarType } from 'graphql';
export default new GraphQLScalarType({
name: 'Timestamp',
description: 'RFC3339 Timestamp format',
serialize(value) {
if (isRFC3339(value)) {
return value;
}
throw new Error('Timestamp cannot represent an invalid RFC-3339 Timestamp string');
},
parseValue(value) {
if (isRFC3339(value)) {
return value;
}
throw new Error('Timestamp cannot represent an invalid RFC-3339 Timestamp string');
},
parseLiteral(ast) {
if (isRFC3339(ast.value)) {
return ast.value;
}
throw new Error('Timestamp cannot represent an invalid RFC-3339 Timestamp string');
}
});
В моей схеме,моя схема находится в нескольких файлах, но я соединяю их вместе, прежде чем передать их в makeExecutableSchema.
scalar Timestamp
В файле, в котором есть makeExecutableSchema, которая позже экспортируется, и пользователь в конструкторе моего сервера.
import timeStamp from './scalars/timeStamp';
.
.
.
.
const schema = {
typeDefs: [
myTypeDefs
],
resolvers: merge(
resolvers,
timeStamp
),
};
export default makeExecutableSchema({
typeDefs: schema.typeDefs,
resolvers: schema.resolvers
});
Я не знаю, чего мне не хватает, потому что у меня возникает эта ошибка при попытке запустить мой API
throw new _1.SchemaError("\"" + typeName + "\" defined in resolvers, but has invalid value \"" + resolverValue + "\". A resolver's value " +
^
Error: "name" defined in resolvers, but has invalid value "Timestamp". A resolver's value must be of type object or function.
Любая помощь будет принята с благодарностью.Заранее спасибо!