问题描述
例如,假设我的 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