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

typescript - GraphQL 代码生成器 - Graphql 文档验证失败

我运行时不断收到错误消息 yarn run graphql-codegen --config codegen.yml

错误说

代码生成.yml

src/graphql/mutations/login.graphql

用户解析器

我完成了 ben awad 的 14 小时全栈教程,并决定做一个类似的项目。但我遇到了这个问题。在互联网上找不到任何有用的东西,因此我决定在这里问。

我也有所有需要的依赖项

0 投票
0 回答
72 浏览

reactjs - 根据服务器指令验证客户端

我们希望在 GraphQL 项目的客户端进行验证,然后根据在服务器模式上注释的自定义指令发送突变

示例用例:

我们希望在客户端(TypeScript / React)中验证 newName 是否短于 100 个字符,基于服务器端模式中的注释,但最好是通过库。

有没有人设法让这种设置工作呢?

我们用:

服务器:GraphQL-java(可接受使用前沿)(以编程方式生成的模式)

客户端:Typesscript + React + appolo + graphQL-codegen 生成类型

注意:我意识到公开指令仍处于 RFC 阶段,但我们愿意为此使用实验性功能

0 投票
0 回答
116 浏览

typescript - 错误:未知参数:init @graphql-codegen/cli

我正在关注这个

@graphql-codegen/cli作为开发依赖项安装在这里是我的package.json.

当我运行时:

我收到此错误:

谁能告诉我这里出了什么问题!

0 投票
0 回答
57 浏览

typescript - 如何从可为空的嵌套对象中提取 Typescript 类型?

我正在使用graphql- codegen 为我的 React 项目生成 Typescript 类型。使用 graphql,您可以设置查询以仅返回您需要的属性。这很有用,但也会导致我的 Typescript 定义文件看起来非常复杂的对象类型。我有一个Query返回几个嵌套项目。我想知道是否可以仅提取tags属性的类型?

我将如何使用 Typescript 提取以下类型:

从这个基础对象类型(我已经指出了我想提取的类型的一部分):

对我来说棘手的是嵌套属性可以为空或未定义,所以我不确定如何深入访问它们?

请注意,graphql-codegen 定义Maybe为:

作为参考,ManageTeamPageQuery从 graphql 的结果生成的类型如下所示:

0 投票
1 回答
177 浏览

reactjs - 错误:无效的钩子调用(Codegen & Apollo & Next.js)

我尝试使用 Codegen 生成的钩子来进行注册突变:

但是在 http://localhost:3000/signup 得到了这个错误:

我已经尝试了很多方法,比如将它包装在 useEffect 或 useCallback 中(只需遵循其他问题的解决方案,虽然不知道为什么),或者使用异步 IIFE,仍然无法解决。

这是我的仓库:https ://github.com/Jocelyn59435/Trackky_frontend

任何帮助表示赞赏。

0 投票
3 回答
56 浏览

typescript - 如何在生成的查询类型中为嵌套的“可能”指定类型?

我使用 Graphql codegen 从我们的模式生成类型。我需要访问嵌套类型并常用以下方法:

当没有 Maybes 时,这很有效,这意味着它有可能为空。当类型被定义为“可能”时,我无法使用它并且它会引发错误。

有没有人有一个实用的解决方案来指定这些嵌套类型?我不想将每一步都包装在许多非可空泛型中......

先感谢您 !

0 投票
0 回答
34 浏览

typescript - Apollo withFilter 不通知客户端

考虑以下对 apollo 的订阅:

我正在使用 codegen 侦听器来侦听此事件,但它仅在此函数如下时触发:

第二个效果很好。为什么?似乎第一个变体不等待异步调用完成?

0 投票
1 回答
256 浏览

typescript - `Exact 的目的是什么` @graphql-codegen 创建的类型?

GraphQL 代码生成器在创建的 TypeScript 文件的顶部创建此类型:

并将其用于所有客户端创建的查询变量:

src/foo.graphql

generated/foo.ts

这种类型的目的是什么Exact<T>以及它如何影响FooQueryVariables(与如果它不存在相比)?


https://www.graphql-code-generator.com/#live-demo的完整演示

schema.graphql

operation.graphql

codegen.yml

生成operations-types.ts

0 投票
0 回答
20 浏览

wordpress - WpContentNode[] 不可分配给 Gatsby+WordPress+TypeScript 项目中的类型 WpPage[] 错误

当通过 GraphQL 拉取 WordPress 页面数据及其子页面数据时,此错误发生在 Gatsby + WordPress + TypeScript 项目组件中。

类型“WpContentNode[]”不可分配给类型“WpPage[]”。

在线的:

const pages: WpPage[] = page?.wpChildren?.nodes;

正在从页面组件中的 GraphQL 查询中获取数据:

这部分查询似乎与生成的 TypeScript 接口没有很好的结合:

wpChildren.nodes即使WpContentNode[]它是从... on WpPage. 我认为它将作为查询内的WpPage[]结果输入... on WpPage

这些类型定义都是用graphql-codegen. 大多数工作正常。只有将适当的类型与... on WpPage查询匹配时才会遇到这个问题。

我怎样才能wpChildren.nodes打字WpPage[]?它们是父节点的子页面。

注意:我们避免使用 来any消除此错误,因此这对我来说不是可行的解决方案。我们的目标是坚持严格的打字。

提前感谢您的任何见解。

0 投票
1 回答
165 浏览

javascript - 如何将 Auth0 的 ID 令牌转发到 GraphQL 代码生成器?

我正在使用带有React Query的 GraphQL 代码生成器,这是我的codegen.yml

这会生成以下提取器:

NEXT_PUBLIC_API_URL指的是外部 GraphQL API。在我的 Next.js 应用程序中,我尝试使用nextjs-auth0auth0-react

nextjs-auth0允许我从 Next.js API 路由访问 Auth0 的 ID 令牌:

同时auth0-react允许我获取令牌客户端:

问题是,由于这些抽象,我无法找到一种方法将此令牌包含在对我的 GraphQL 端点的请求中,例如: