问题标签 [graphql-codegen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
87 浏览

graphql - 带有 graphql-codegen 端点错误的 Vercel 应用程序找不到以下指针的任何 GraphQL 类型定义

我像这样加载我的 GraphQL 架构:

这在本地工作正常,但是,在部署到 vercel 时出现错误:

我认为这是因为 vercel 在构建后删除了相关文件?

0 投票
1 回答
279 浏览

javascript - 如何为 typescript 制作 Graphql 代码生成器,使其枚举成为帕斯卡大小写而不是蛇形大小写?

目前,Graphql 代码生成器生成的枚举如下所示

但是我希望生成的枚举是这样的帕斯卡案例:

编辑,我的 codegen.yml:

枚举的架构是

0 投票
1 回答
1221 浏览

typescript - 使用graphql代码生成器时如何将自定义标量类型映射到打字稿类型?

Date在后端定义了一个名为 ISO 8601 字符串的自定义标量类型。

在前端“GraphQL 代码生成器”(https://www.graphql-code-generator.com/)用于从模式生成打字稿类型。

codegen.yml看起来像这样:

这给出了在 graphql 模式中具有自定义标量类型的所有字段Date对应于Date生成的打字稿类型中的打字稿类型的类型。但是在运行时它仍然是一个string. 如果Date: Date去掉了配置中标量下的部分,则对应的类型为Any.

猜测是我们需要指定某种映射器,它将我们从后端获得的 ISO 8601 字符串转换为 typescript Date,但我不明白这是怎么做到的。

0 投票
1 回答
305 浏览

next.js - 有什么方法可以在 codegen.yaml 中使用 @next/env 吗?

我想知道是否有办法在codegen.yaml我运行时使用@next/env 替换变量yarn codegen

graphql-codegen -r dotenv/config --config codegen.yml- 这是加载点环境的代码生成示例

graphql-codegen -r @next/env --config codegen.yml- 这就是我想要实现的

当我调用它时,我得到

${SERVER_API_URL}/graphql作为undefined/graphql

我的用例是:


为什么使用@next/env?它替换了 .env 中的变量,我附上了 next.js 文档中的文档示例

注意:Next.js 将自动扩展 .env* 文件中的变量 ($VAR)。这允许您引用其他机密,如下所示:

例如:

来源:https ://nextjs.org/docs/basic-features/environment-variables#loading-environment-variables

0 投票
0 回答
90 浏览

graphql - Apollo codegen 复制嵌套片段导入

我在.gql文件中使用可重用的片段,但结果查询将在使用 codegen 时多次声明片段。一个简化的例子:

但这会导致 ImageInfos 片段声明的多次出现。我怎样才能避免这种情况?

0 投票
0 回答
49 浏览

javascript - RangeError:graphql-codegen 时超出了最大调用堆栈大小

我实现了 graphql-codegen,当我运行 yarn graphql-codegen 它返回 Maximum call stack size exceeded

0 投票
0 回答
67 浏览

typescript - 如何为本地状态的 GraphQL 查询生成 TypeScript 类型?

我正在@graphql-codegen/cli为我的 GraphQL 服务器生成 TypeScript 类型。

这正如我所期望的那样工作。但是在我的应用程序中,我有一个查询来为本地状态带来一些值,例如:

结果文件不包含getUi,因为它不在服务器模式中,这是一个本地查询。

我看到可以组合多个模式并生成一个文件。我还看到了有关为 local state 手动创建 .graphql 文件的内容

有没有一种方法可以导出本地状态查询的类型(如 getUi),而无需手动创建 .graphql 文件?如果没有,推荐的处理方法是什么?

0 投票
0 回答
29 浏览

angular - 如何获取用于生成角度形式的 Typescript 类型定义

我正在使用 @graphql-codegen/typescript-apollo-angular 为我的 Angular 应用程序生成类型和服务。现在我想尝试从这个生成的代码中生成角度形式。

我想使用 LoginUserMutationMutationVariables 类型来生成我的表单,但我找不到任何方法来动态获取类型定义以进行进一步处理。类似于 JSON 的东西,然后我可以使用它来生成我的表单。

这是一种示例类型。例如,我想获取一个带有“值”类型的 JSON 来解析它。

0 投票
0 回答
72 浏览

typescript - GraphQL Codegen – 如何使 Partial 成为解析器的返回类型,但保留所需的参数?

我正在使用这个配置文件:

工作正常,但as any as TypeGQL每次我想将返回的对象的属性委托给另一个解析器时都进行强制转换真的很烦人。

在这里我必须强制转换,as any因为它缺少regions我想委托给它自己的解析器的字段。

我也尝试添加选项:

但这也将我的解析器的参数修改为Partial<Parent>或类似的东西。

我被迫更改代码,这很好:

如何使解析器的返回类型为 Partial?

0 投票
0 回答
59 浏览

graphql - 错误:无法在 graphql-codegen 中合并 GraphQL 指令“abstractEntity”

Codegen 与 "@graphql-codegen/add": "^3.1.0", "@graphql-codegen/cli": "1.21.7", "@graphql-codegen/typescript": "1.23.0", “@graphql-codegen/typescript-resolvers”:“1.20.0”,“@graphql-codegen/typescript-mongodb”:“^1.19.5”,然后不小心将所有包更新到最新版本。然后得到TypeError:

我的代码生成配置

我尝试回滚更新的软件包。但是现在错误并没有消失。

在以下位置重新创建错误:https ://codesandbox.io/s/relaxed-perlman-mdrwp