Typescript 如何在使用Hasura graphql模式时自定义graphql代码生成器生成字段的类型

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

我想在Hasura生成的graphql模式中为特定字段重写jsonb类型,并运行graphql代码生成器

我有一个jsonb类型的
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类型(根据上面的示例)