如何在 GraphQl JS 中实现带有破折号的枚举
Posted
技术标签:
【中文标题】如何在 GraphQl JS 中实现带有破折号的枚举【英文标题】:How can I implement enums with dashes in GraphQl JS 【发布时间】:2021-10-11 17:27:24 【问题描述】:GraphQL 枚举 can not use dashes(并且只允许下划线)。
继续,我有破折号的枚举。它们已经存在,我不会改变它们;它会在我无法轻松检查的地方引入错误。
那么,这些如何在 GraphQL 中表示?
是否可以制作一个符合 GraphQL 标准的“假”枚举,然后将其转换为真实值?
还是我只需要制作自己的 Scalar 并放弃 GraphIQL 建议?
【问题讨论】:
【参考方案1】:我找到了解决方案。满容易;我很惊讶我发现的线程或其他问题都没有说:
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 生成方式的逻辑。
【讨论】:
以上是关于如何在 GraphQl JS 中实现带有破折号的枚举的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GraphQL HotChocolate 中实现订阅?
如何在express中实现resolveType函数/初始化graphQL服务器
如何使用 React-Hooks 和 Apollo Client 在 React-GraphQL 中实现搜索功能?