问题标签 [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 - 如何一般输入 Apollo useQuery 钩子?
所以这是包装组件,我在其中传递了一个useOrganizationAutocompleteQuery
由 graphql-codegen 生成的 useQuery 钩子。我希望能够传入任何类型的 useQuery 钩子。
我将如何输入queryHook
道具以接受任何类型的阿波罗 useQuery 钩子?
这就是 Apollo 的 useQuery
typescript - GraphQL CodeGen - 使用单个请求执行任意次数的相同突变
我已经定义了一个突变,它允许用户复制他们的产品,一次一个产品:
现在我必须实现一个功能,它允许用户一次复制多个产品。
一种明显的解决方案是重新设计架构以接受多个产品 ID。如果可能的话,我想避免这项工作。
另一种选择是简单地连续多次发布相同的突变,但似乎使用 CodeGen 生成突变服务的方式,我必须发送多个单独的 HTTP 请求。
我的问题是:是否可以使用 CodeGen 生成的服务在单个请求中批量处理动态数量的突变?如果我不使用 CodeGen,批处理似乎会很容易,因为我可以动态地动态创建突变定义。然而,CodeGen 似乎强制执行相当静态的操作定义。
有没有一种很好的方法来实现我正在寻找的东西?我也可能会走错路,所以如果大多数graphql-y解决方案实际上需要重新设计架构,如果有人向我指出这一点,我会很高兴。类型
reactjs - Graphql突变抛出无效值错误
我正在尝试向我的 graphql api 发出突变请求,但我收到了无效值错误。我正在使用带有 typescript 的 graphql codegen 并在我的前端做出反应。我直接复制了我在 graphql 操场上创建的工作 graphql 突变。Codegen 生成时没有给出任何错误,typescript 没有给出任何错误,我已经检查了我的语法 10 次,但我终生无法弄清楚为什么会出错。
错误代码:GRAPHQL_VALIDATION_FAILED
错误消息:“参数“数据”的值无效 {email:$email,用户名:$username,密码:$password,confirmPassword:$confirmPassword}。
我的后端解析器看起来像这样
我的前端 graphql 突变看起来像这样
我的实现看起来像这样
typescript - 如何从 GraphQL 模式生成 GraphQL 操作
我正在寻找一种在使用 GraphQL 时使开发人员工作流程更高效的方法。
目前,graphql-code-generator
用于在前端从我的 GraphQL 服务器生成类型。
这很棒,但这只是生成类型。为了生成突变、查询和订阅的方法,我需要为我的前端项目中的每个操作创建一个 GraphQL 文档,例如:
我发现必须创建一个额外addPost.graphql
的方法来生成该方法有点多余,因为它已经在我的 GraphQL 服务器上声明了。
是否有一个插件/配置可以生成这些方法,我可以在我的项目中使用而无需手动创建额外的 GraphQL 文档?
这是我的 GraphQL 生成器 yml 文件
javascript - 如何从生成的模式中获取简单的 graphql 变异查询?
我正在使用 graphql 代码生成器来获取我生成的文件:
在这个文件中我确实有
这给了我 gql 文档。
在我的测试中(使用supertest
),我正在做:
我不想手动编写突变。我想使用我生成的模式文件。但不幸的是,定义了一个 gql,就像本文开头提到的那样。
是否可以生成要在我的 中使用的东西send()
?
代码生成.yml
graphql - 从 graphql-codegen 获取类似于 apollo codegen 生成的类型
我是阿波罗和graphql的新手。我尝试同时使用apollo- codegen和graphql-codegen,我希望在一个文件中生成所有类型,就像在 graphql-codegen 中一样,但是在 apollo 中它会创建多个文件。
我在使用 graphql-codegen 时遇到的问题是生成的类型不是我获取数据的格式。
在使用 apollo 客户端 useQuery 时,我从后端获得的数据格式为
所以 apollo -codegen 的示例查询的输出是: -
但是使用 graphql-codegent 我得到的输出是: -
是否有可能得到类似于 apollo codegen 的 graphql-codegen 输出,即格式为:-
以便在 useQuery 或 useMutation hook 中使用变得容易?通过使用 graphql-codegen
graphql - AWS Amplify CLI 生成的 GraphQL 突变中的 $condition 输入参数是什么?
我从这个模型在 AWS AppSync(使用 CLI)上生成了一个简单的 GraphQL API:
这会生成一个 CreateWalletProperty、UpdateWalletProperty 和 DeleteWalletProperty 突变,都与此类似:
条件的架构是:
鉴于我总是必须提供强制性的 $input,$condition 参数的用途是什么?
typescript - Sequelize、Typescript 和 GraphQL:解析器第一个参数类型
我在使用 Sequelize 和 Typescript 开发我的 GraphQL Api 服务器时有点卡住了。我的问题与打字和概念问题有关。我已经根据数据库表及其关系定义了我的 Sequelize 模型。我在 GraphQL 解析器中使用这些模型,如下所示:
我的疑问与字段subparts
解析器的第一个参数的类型有关。根据我通过graphQL代码生成器 parent
生成的解析器类型应该具有我在架构中定义的相同类型,但这不是真的,它具有模型类型,因为模型实例是父解析器返回的。
更新:我在这里附上我的codegen.yml
,遵循非常有价值的评论。我为该类型定义了一个映射器,Part
这就是我应该是parent
解析器参数的类型。
这是我用作Part
映射器的类型:
我认为它应该是parent
arg 的类型,但我使用的find
是 Sequelize 在查询解析器中提供的方法,所以这可能parent
也会影响类型。
我在理解什么和/或做错了什么?
非常感谢所有愿意花时间帮助我的人。
typescript - 打字稿错误:“”仅指一种类型,但在此处用作命名空间
我经历了几个类似的问题,但无法解决这个问题。我一直在关注 2019 年的教程,但我无法找到在 2020 年做同样事情的正确方法。这是我遇到错误的行:
ERROR: 'HotelsQuery' only refers to a type, but is being used as a namespace here.ts(2702)
type IHotelsProps = HotelsQuery.Props<IHotelsBaseProps> & RouteComponentProps;
我从生成的模型文件中传递 HotelsQuery,定义为:
它被传递给的类:
typescript - 从 .gql 文件中命名导出多个 graphql 操作
我在文件中定义了一些操作(查询/突变,有时在文件底部有一些片段).gql
,有时在单个文件中定义了多个操作。
我想将这些导入到我的 JS/TS 文件中,可能还会为 TypeScript 生成相应的类型。
我在这里设置了一个 3 个文件的示例:
https://gist.github.com/balazsorban44/352d5295f604fb4274bfc934937737a1
该queries.gql
文件是源。它们应该在文件中生成相应的模块类型(请参阅参考资料generated-types.d.ts
),因此我可以将它们导入到我的index.ts
文件中,并使用它通过简单的fetch
.
到目前为止,我尝试过的是这些工具/包:
据我所知,以上这些都不支持作为字符串导出的每个文件的多个操作,仅支持作为 DocumentNode 的多个操作,或者将整个文件作为字符串。
- graphql-codegen/typescript-graphql-files-modules 仅输出 DocumentNode 类型,没有将类型更改为字符串的选项
让我知道是否还有其他问题。