首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载前从架构中删除自定义指令

加载前从架构中删除自定义指令
EN

Stack Overflow用户
提问于 2021-06-20 16:05:22
回答 1查看 118关注 0票数 1

我使用带有typescript-mongodb插件的graphql-codegen从qraphql schema生成数据库模型文件。因此,我的模式包含来自typescript-mongodb的自定义指令,如@entity@column。代码生成器工作得很好,但是当我使用graphql-tools loadSchemaSync函数加载模式时,我得到了一个模式验证错误,它抱怨未知的指令。

可能最简单的解决方案是将mongo插件指令定义添加到模式中(我也还不能正常工作)。但是在graphql-codegen生成配置文件之后,实际上没有任何理由在模式中包含这些指令。

因此,我想知道在将模式文件加载到可执行模式之前,是否有一些标准的方法可以从模式中删除与mongo相关的指令,作为中间步骤?

或者,有没有办法告诉loadSchemaSync函数忽略“未知指令”错误?

下面是我加载模式文件的当前代码:

代码语言:javascript
运行
复制
import { join } from "path";
import {loadSchemaSync, GraphQLFileLoader} from "graphql-tools"

const schema = loadSchemaSync(join(__dirname, '../src/graphql/schemas/**/*.graphql'), {
  loaders: [
    new GraphQLFileLoader()
  ]
})
EN

回答 1

Stack Overflow用户

发布于 2021-10-07 23:41:06

听起来您还没有将mongo codegen指令导入到您的模式中。

您应该知道graphql-tools已被弃用,不会再接收更新。您应该使用适当的作用域软件包,例如:https://www.npmjs.com/package/@graphql-codegen/typescript-mongodb

查看文档中的用法示例。

https://www.graphql-code-generator.com/docs/plugins/typescript-mongodb#usage-example

代码语言:javascript
运行
复制
import { makeExecutableSchema } from '@graphql-tools/schema';
import { DIRECTIVES } from '@graphql-codegen/typescript-mongodb';

const schema = makeExecutableSchema({
  typeDefs: [
    DIRECTIVES,
    // the rest of your GraphQL types
  ],
  resolvers,
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68053871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档