问题标签 [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.
typescript - GraphQL 代码生成器 - Graphql 文档验证失败
我运行时不断收到错误消息
yarn run graphql-codegen --config codegen.yml
错误说
代码生成.yml
src/graphql/mutations/login.graphql
用户解析器
我完成了 ben awad 的 14 小时全栈教程,并决定做一个类似的项目。但我遇到了这个问题。在互联网上找不到任何有用的东西,因此我决定在这里问。
我也有所有需要的依赖项
reactjs - 根据服务器指令验证客户端
我们希望在 GraphQL 项目的客户端进行验证,然后根据在服务器模式上注释的自定义指令发送突变
示例用例:
我们希望在客户端(TypeScript / React)中验证 newName 是否短于 100 个字符,基于服务器端模式中的注释,但最好是通过库。
有没有人设法让这种设置工作呢?
我们用:
服务器:GraphQL-java(可接受使用前沿)(以编程方式生成的模式)
客户端:Typesscript + React + appolo + graphQL-codegen 生成类型
注意:我意识到公开指令仍处于 RFC 阶段,但我们愿意为此使用实验性功能
typescript - 如何从可为空的嵌套对象中提取 Typescript 类型?
我正在使用graphql- codegen 为我的 React 项目生成 Typescript 类型。使用 graphql,您可以设置查询以仅返回您需要的属性。这很有用,但也会导致我的 Typescript 定义文件看起来非常复杂的对象类型。我有一个Query
返回几个嵌套项目。我想知道是否可以仅提取tags
属性的类型?
我将如何使用 Typescript 提取以下类型:
从这个基础对象类型(我已经指出了我想提取的类型的一部分):
对我来说棘手的是嵌套属性可以为空或未定义,所以我不确定如何深入访问它们?
请注意,graphql-codegen 定义Maybe
为:
作为参考,ManageTeamPageQuery
从 graphql 的结果生成的类型如下所示:
reactjs - 错误:无效的钩子调用(Codegen & Apollo & Next.js)
我尝试使用 Codegen 生成的钩子来进行注册突变:
但是在 http://localhost:3000/signup 得到了这个错误:
我已经尝试了很多方法,比如将它包装在 useEffect 或 useCallback 中(只需遵循其他问题的解决方案,虽然不知道为什么),或者使用异步 IIFE,仍然无法解决。
这是我的仓库:https ://github.com/Jocelyn59435/Trackky_frontend
任何帮助表示赞赏。
typescript - 如何在生成的查询类型中为嵌套的“可能”指定类型?
我使用 Graphql codegen 从我们的模式生成类型。我需要访问嵌套类型并常用以下方法:
当没有 Maybes 时,这很有效,这意味着它有可能为空。当类型被定义为“可能”时,我无法使用它并且它会引发错误。
有没有人有一个实用的解决方案来指定这些嵌套类型?我不想将每一步都包装在许多非可空泛型中......
先感谢您 !
typescript - Apollo withFilter 不通知客户端
考虑以下对 apollo 的订阅:
我正在使用 codegen 侦听器来侦听此事件,但它仅在此函数如下时触发:
第二个效果很好。为什么?似乎第一个变体不等待异步调用完成?
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
:
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
消除此错误,因此这对我来说不是可行的解决方案。我们的目标是坚持严格的打字。
提前感谢您的任何见解。
javascript - 如何将 Auth0 的 ID 令牌转发到 GraphQL 代码生成器?
我正在使用带有React Query的 GraphQL 代码生成器,这是我的codegen.yml
:
这会生成以下提取器:
NEXT_PUBLIC_API_URL
指的是外部 GraphQL API。在我的 Next.js 应用程序中,我尝试使用nextjs-auth0和auth0-react。
nextjs-auth0
允许我从 Next.js API 路由访问 Auth0 的 ID 令牌:
同时auth0-react
允许我获取令牌客户端:
问题是,由于这些抽象,我无法找到一种方法将此令牌包含在对我的 GraphQL 端点的请求中,例如: