微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Graphql Codegen - 带有自定义键 => 值的枚举

如何解决Graphql Codegen - 带有自定义键 => 值的枚举

我使用 graphql-codegen 生成类型文件

例如,假设我的 schema.graphql 文件中有以下内容

enum cities {
 JOHANnesBURG
 CAIRO
 NEW_YORK
 LONDON
 BEIJING
}

我的 generated-types.ts 文件中的输出如下:

export enum cities {
 Johannesburg = 'JOHANnesBURG'
 Cairo = 'CAIRO'
 NewYork = 'NEW_YORK'
 London = 'LONDON'
 Beijing = 'BEIJING'
}

有没有办法在代码生成运行之前“覆盖”枚举的值?也许如下(我显然尝试过):

enum cities {
 JOHANnesBURG: 'JNB'
 CAIRO: 'CAI'
 NEW_YORK: 'NYC'
 LONDON: 'LON'
 BEIJING: 'BEI'
}

反过来应该产生:

export enum cities {
 Johannesburg = 'JNB'
 Cairo = 'CAI'
 NewYork = 'NYC'
 London = 'LON'
 Beijing = 'BEI'
}

解决方法

不确定我是否为时已晚,但您可能可以使用 enumValues 来自定义您的内部枚举值。这是documentation。例如:

./types.ts

export enum cities {
 Johannesburg = 'JNB'
 Cairo = 'CAI'
 NewYork = 'NYC'
 London = 'LON'
 Beijing = 'BEI'
}

./codegen.yml

generates:
  src/graphql.types.ts:
    config:
      useIndexSignature: true
      enumValues:
        cities: ./types#cities // path to your custom types
    plugins:
      - typescript
      - typescript-resolvers

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。