问题标签 [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 投票
4 回答
11389 浏览

typescript - 找不到以下指针的任何 GraphQL 类型定义:src/**/*.graphql

我正在使用该@graphql-codegen/cli工具从我的 graphql 服务器生成打字稿类型。这是我的codegen.yml内容:

这是package.json我用来生成类型的脚本 ( yarn schema):

所有这些都是通过执行 cli 向导自动生成的yarn codegen init

但是当我运行时yarn schema,这些是我得到的错误:

在此处输入图像描述

(服务器正在积极运行http://localhost:3001/graphql并公开图形模式。

感谢您的帮助和建议

这是托管在我的服务器中的 .graphql 文件(http://localhost:3001/graphql

0 投票
2 回答
740 浏览

typescript - 使用 Hasura graphql 模式时如何自定义 graphql-code-generator 生成的字段的类型

我想覆盖由 Hasura 生成的 graphql 模式中特定字段的 jsonb 类型,并通过 graphql-code-generator 运行。

我有一个customListjsonb 类型的字段。ths 用于包含一个 json 对象数组。当使用带有 TypeScript 插件的 graphql-code-generator 时,生成的类型解析为any. 我试图弄清楚如何仅使用该特定字段的自定义类型来覆盖它。

下面的片段显示了 graphql 模式的相关部分,以及目标 graphql 类型覆盖。到目前为止,我尝试过的一切都会导致代码生成错误

GraphQl 模式

目标覆盖类型

谢谢你的帮助!

0 投票
1 回答
1564 浏览

angular - angular 的 Apollo 客户端:从 graphql 文件生成代码

我从这里了解了angular graphql 代码生成器。我正在尝试在我的项目中使用它来生成 angular 的 graphql 类型和服务。Query

我的 codegen.yml 文件如下所示。

我有一个apps\myGraphQLApp\src\gqls\myBooks.graphql包含以下内容的 graphql 文件

我正在运行npx graphql-codegen --config codegen.yml,它失败并出现以下错误。

我的 graphql 服务器肯定公开了一个查询根,我可以用不同的客户端调用它。

我不确定我做错了什么。任何帮助将不胜感激。

0 投票
1 回答
222 浏览

typescript - 将类型分配给作为 Maybe 类型的嵌套类型的属性

graphql-codegen我正在尝试将由该工具生成的类型分配给属性。我要分配的类型是嵌套类型。给定以下类型:

我需要能够做到:

但是,我遇到的问题是 of 的类型someKey是一种Maybe类型,因此 Typescript 抱怨该类型没有someNestedKey属性<Maybe { __typename?: "OtherType" | ...} & { someNestedKey: (...)[] }>(即 of 的类型someKey)。

在 Typescript 中,您可以使用该!方法来声明您确定知道在这种情况下联合undefined和/或null确实存在的类型的属性值。分配类型时有没有办法做类似的事情?

由于我使用的是该graphql-codegen工具,因此我无法控制这些类型。

0 投票
1 回答
40 浏览

graphql - 直接通过 apollo-codegen 执行操作,无需命名

我正在使用带有 apollo 的 graphql-codegen 从打字稿中使用 graphql api。现在我必须以 1:1 的比例准确地复制很多 graphql 操作才能生成一些代码。例子:

那么是否有可能以某种方式signUp直接调用而不是将其包装在自定义突变中?我知道 graphql 要求我指定我想要的字段作为回报,但 codegen 可以自动将所有已知字段放在那里。

0 投票
6 回答
7279 浏览

graphql - graphql-codegen 没有与配置文件一起运行

在我的package.json文件中,我有运行graphql-codegen的脚本条目,但它抱怨--config参数无效:

因为我相信默认文件名是codegen.yml无论如何,我尝试在没有该参数的情况下运行它并且没有生成任何内容:

有任何想法吗?

0 投票
0 回答
118 浏览

reactjs - 使用 typescript 和 graphQL 反应模态容器模式

Spectrum 对模态使用特定模式,我想用 typescript、graphQL 和 graphQL-codegen 生成的钩子来复制这些模式。

现在我目前拥有的:

  • GraphQL 客户端架构
  • GraphQL 查询

graphql-codegen 使用上面的代码来生成下面使用的类型安全查询钩子。

给定的模态声明如下所示

我是这个 typed 和 graphQL 世界的新手,我觉得它可以做得更好——尤其是我必须使用 switch case 语句而不是原始对象。有什么方法可以保持 ModalType 和 ModalPropsType 之间的耦合吗?并且as在 ModalProps 上进行强制转换后代码仍然安全吗?

0 投票
1 回答
1265 浏览

graphql - 如何在 typescript/javascript 导出中使用字符串模板处理模式 graphql-codegen

我正在使用graphql-codegen为给定模式生成打字稿类型文件。

一切都很好,除非导出方案中有字符串模板,它会抱怨语法并且似乎不会编译它。检查以下文件以获取更多详细信息。

types.js如下:

配置 yml 文件是:

运行时yarn graphql:codegen,它会抱怨以下内容:

看起来graphql-codegen不喜欢模板字符串,例如:${Colors.join('\n')}

另请查看包含上述所有文件的repo

任何人都可以帮助修复?谢谢。

0 投票
1 回答
1568 浏览

typescript - 为什么这些类型不兼容?

我有一个像这样的值类型:

查询结果类型(生成的 apollo 钩子)如下:

我正在尝试将此查询结果传递给函数:

出于某种原因,TypeScript 说这些类型是不兼容的。我的函数调用:

打字稿错误:

有人可以帮我理解这些类型有什么问题吗?我知道这as Value[]可以解决问题,但我不知道为什么。

0 投票
3 回答
5360 浏览

graphql - GraphQL 代码生成器 - 无法从 Nestjs 服务器端点加载我的 GQL 架构

我在 Angular 应用程序上使用graphQL 代码生成器,我正在尝试从本地 nestjs 应用程序加载我的模式。

这是 codegen.yml 文件:

当我运行 graphql-codegen 时,我收到以下错误:

当我记录响应时,我看到它试图解析以下内容,这解释了错误:

如果我在 index.cjs.cs 中挖掘,并记录生成的 POST 正文和响应,我会得到:

身体:

回复:

如果我的端点不正确,那将是有道理的,但是如果我在邮递员中尝试该确切请求,我确实会得到一个有效的响应: 在此处输入图像描述

关于为什么会这样的任何想法?还有什么我可以检查的吗?

谢谢