首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以对前端和后端的所有graphql查询和突变进行编码并合并到来自.graphql和gql的单个文件中?

是否可以对前端和后端的所有graphql查询和突变进行编码并合并到来自.graphql和gql的单个文件中?
EN

Stack Overflow用户
提问于 2022-11-06 23:07:53
回答 1查看 33关注 0票数 1

我使用的是@ graphql -codegen/cli,其中我的确认被设置为输出到graphql和graphql文件:

代码语言:javascript
运行
复制
  'http://localhost:8080/v1/graphql':
    headers:
      secret: "devsecret"
  'http://localhost:3000/api/auth':
    headers:
      secret: "devsecret"
documents: './**/*.graphql'
overwrite: true
generates:
  generated/graphql-sdk.ts:
    config:
      rawRequest: true
    plugins:
      - 'typescript'
      - typescript-graphql-request
      - 'typescript-operations'
      - fragment-matcher:
          apolloClientVersion: 3
          module: es2015
          useExplicitTyping: false
  generated/graphql.ts:
    config:
      reactApolloVersion: 3
      withHooks: true
      withComponent: false
      withHOC: false
      skipTypename: true
    plugins:
      - 'typescript'
      - 'typescript-operations'
      - 'typescript-react-apollo'
      - fragment-matcher:
          apolloClientVersion: 3
          module: es2015
          useExplicitTyping: false

是否有可能将这两个编解码器信任到同一个.ts文件中。

此外,上述两种方法都要求*.graphql文件中存在突变和查询,是否有一种方法可以使codegen为查询所需的. to /..tsx文件(使用类似gql标记的gql(...some query...)?)。

我试着把“文档”放在一个数组中,比如:

代码语言:javascript
运行
复制
documents: ['./**/*.graphql', './**/.ts', './**/.tsx']

但它被忽视了。

EN

回答 1

Stack Overflow用户

发布于 2022-11-07 08:35:15

我是行会的查莉,在GraphQL代码生成器上工作。

您可以利用import-type-preset在后端和前端GQL类型之间共享基本类型,避免重复。

使用共享类型文件(resolvers-types.ts)的后端解析器配置(types.ts)示例:

代码语言:javascript
运行
复制
import { CodegenConfig } from "@graphql-codegen/cli";

const config: CodegenConfig = {
  schema: "schema.graphql",
  documents: ["src/**/*.ts"],
  generates: {
    "types.ts": {
      plugins: ["typescript"],
    },
    "resolvers-types.ts": {
      preset: "import-types-preset",
      presetConfig: {
        typesPath: "./types.js", // .js for ESM support
      },
      plugins: ["typescript-resolvers"],
    },
  },
};

export default config;

您将在这里找到一个完整的、实用的示例:https://github.com/charlypoly/codegen-repros/tree/master/resolvers-import-types

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74340442

复制
相关文章

相似问题

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