Привет, у меня проблема с директивой create с params, которая является объектом.
Я создаю объявление объявления директивы в файле .graphql,
directive @validate(params: ValidateParams) on FIELD_DEFINITION
input ValidateParams {
limit: Int,
}
photos(
limit: Int,
sort: String,
): [Photo!]! @validate(params: {limit: 100})
Я получил ошибку
Schema must contain uniquely named types but contains multiple types named "ValidateParams"
Есть ли у вас какие-либо идеи, как я могу создать params как объект? Когда я устанавливаю предел как Int, все в порядке.
Спасибо!
Обновление
return new ApolloServer({
context: ({ req: { body, headers } }) => {
return {
authorization: headers.authorization,
};
},
debug: false,
introspection: true,
playground: true,
schema: internalSchema,
tracing: true,
uploads: false
});
export function buildSchema(schemaContent: string, resolvers: IResolvers, schemaDirectives: IDirectiveResolvers = {}): GraphQLSchema {
const schema = buildFederatedSchema({ typeDefs: gql`${schemaContent}` });
addResolveFunctionsToSchema({
schema,
resolvers: { JSON: GraphQLJSONObject },
resolverValidationOptions: { requireResolversForResolveType: false, allowResolversNotInSchema: true }
});
if (Object.keys(schemaDirectives).length) {
attachDirectiveResolvers(schema, schemaDirectives);
}
return schema;
}