Typescript 如何在使用Hasura graphql模式时自定义graphql代码生成器生成字段的类型
我想在Hasura生成的graphql模式中为特定字段重写jsonb类型,并运行graphql代码生成器 我有一个jsonb类型的Typescript 如何在使用Hasura graphql模式时自定义graphql代码生成器生成字段的类型,typescript,graphql,hasura,graphql-codegen,Typescript,Graphql,Hasura,Graphql Codegen,我想在Hasura生成的graphql模式中为特定字段重写jsonb类型,并运行graphql代码生成器 我有一个jsonb类型的customList字段。Ths用于包含json对象数组。将graphql代码生成器与TypeScript插件一起使用时,生成的类型解析为any。我正试图找出如何仅用该特定字段的自定义类型来覆盖此字段 下面的代码片段显示了graphql模式的相关部分,以及目标graphql类型重写。到目前为止,我所尝试的一切都会导致codegen错误 GraphQl模式 //sc
customList
字段。Ths用于包含json对象数组。将graphql代码生成器与TypeScript插件一起使用时,生成的类型解析为any
。我正试图找出如何仅用该特定字段的自定义类型来覆盖此字段
下面的代码片段显示了graphql模式的相关部分,以及目标graphql类型重写。到目前为止,我所尝试的一切都会导致codegen错误
GraphQl模式
//schema.json
...
{
"kind": "OBJECT",
"name": “MyEntity”,
"description": "columns and relationships of MyEntity",
"fields": [
...
{
"name": "customList",
"description": "",
"args": [
{
"name": "path",
"description": "JSON select path",
"type": {
"kind": "SCALAR",
"name": "String",
"ofType": null
},
"defaultValue": null
}
],
"type": {
"kind": "SCALAR",
"name": "jsonb",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
}
}
目标覆盖类型
//clientTypes.graphql
type ListItem {
itemId: string!
}
extend type MyEntity {
ccards: [ListItem!]
}
谢谢你的帮助 您可以将codegen指向一个新文件,比如说
my schema.js
,然后按照您希望的方式操作模式。您可以使用任何您喜欢的工具(graphql toolkit/graphql compose/direct GraphQLSchema manipulation)我的目标是维护远程模式的生成,但调整它转换为的类型。在本例中,将JSONB字段类型转换为ListItem类型(根据上面的示例)