如何在 GraphQl JS 中使用破折号实现枚举

How can I implement enums with dashes in GraphQl JS

GraphQL 枚举 can not use dashes(并且只允许下划线)。

继续,我有带破折号的枚举。它们已经存在,我不会改变它们;它会在我无法轻易检查的地方引入错误。

那么,这些如何在 GraphQL 中表示?

是否可以制作一个符合 GraphQL 标准的“假”枚举,然后将其转换为真实值?

或者我是否只需要制作自己的标量并放弃 GraphIQL 建议?

我找到了解决方案。相当容易;我很惊讶 none 的线程或我发现的其他问题:

const values: GraphQLEnumValueConfigMap = {};

["enum-1", "enum-2"].forEach((value) => {
  const gqlName = String(value).replace(/\-/g, "_");
  values[gqlName] = { value }
});

const gqlEnum = new GraphQLEnumType({"my_enum_name", values});

GraphQLEnumValueConfigMap 中的每个 GraphQLEnumValueConfig 都可以将 属性 value: any 设置为其应有的值。

根据您的枚举,您可能想要更改有关如何生成 gqlName 的逻辑。