防止 openapi-generator 在 JavaScript/TypeScript 中重命名枚举
Prevent openapi-generator renaming enums in JavaScript/TypeScript
我们正在使用 openapi 生成器来生成我们的 REST 客户端。工作得很好,直到我们开始使用 UPERCASE_UNDERSCORE
格式的枚举。它去掉了下划线。这样做的主要问题是,由于 属性 名称与定义不匹配,因此在 Typescript 中强制转换此枚举是一个真正的痛苦。
这是一个例子,在 YAML 中:
properties:
boostId:
type: string
maxLength: 50
type:
type: string
enum:
- BOOST_UNIQUE_ALERT_TYPE_COUNTER
- BOOST_UNIQUE_SOURCE_SYSTEM_COUNTER
生产:
var BoostConfiguration;
(function (BoostConfiguration) {
/**
* @export
* @enum {string}
*/
var TypeEnum;
(function (TypeEnum) {
TypeEnum["UNIQUEALERTTYPECOUNTER"] = "BOOST_UNIQUE_ALERT_TYPE_COUNTER";
TypeEnum["UNIQUESOURCESYSTEMCOUNTER"] = "BOOST_UNIQUE_SOURCE_SYSTEM_COUNTER";
})(TypeEnum = BoostConfiguration.TypeEnum || (BoostConfiguration.TypeEnum = {}));
})(BoostConfiguration = exports.BoostConfiguration || (exports.BoostConfiguration = {}));
出于某种原因,它删除了 "BOOST",并删除了下划线。我已经尝试了 enumPropertyNaming=original
和 modelPropertyNaming=original
,两者似乎都没有改变任何东西(在枚举中)。这是我们的生成器脚本:
openapi-generator generate -i api/socosApi.yaml -g typescript-axios -o generated-sources/api --additional-properties=enumPropertyNaming=original,modelPropertyNaming=original
可以通过将“removeEnumValuePrefix”设置为“false”来防止删除“BOOST”(参见https://github.com/OpenAPITools/openapi-generator/pull/5166)
我们正在使用 openapi 生成器来生成我们的 REST 客户端。工作得很好,直到我们开始使用 UPERCASE_UNDERSCORE
格式的枚举。它去掉了下划线。这样做的主要问题是,由于 属性 名称与定义不匹配,因此在 Typescript 中强制转换此枚举是一个真正的痛苦。
这是一个例子,在 YAML 中:
properties:
boostId:
type: string
maxLength: 50
type:
type: string
enum:
- BOOST_UNIQUE_ALERT_TYPE_COUNTER
- BOOST_UNIQUE_SOURCE_SYSTEM_COUNTER
生产:
var BoostConfiguration;
(function (BoostConfiguration) {
/**
* @export
* @enum {string}
*/
var TypeEnum;
(function (TypeEnum) {
TypeEnum["UNIQUEALERTTYPECOUNTER"] = "BOOST_UNIQUE_ALERT_TYPE_COUNTER";
TypeEnum["UNIQUESOURCESYSTEMCOUNTER"] = "BOOST_UNIQUE_SOURCE_SYSTEM_COUNTER";
})(TypeEnum = BoostConfiguration.TypeEnum || (BoostConfiguration.TypeEnum = {}));
})(BoostConfiguration = exports.BoostConfiguration || (exports.BoostConfiguration = {}));
出于某种原因,它删除了 "BOOST",并删除了下划线。我已经尝试了 enumPropertyNaming=original
和 modelPropertyNaming=original
,两者似乎都没有改变任何东西(在枚举中)。这是我们的生成器脚本:
openapi-generator generate -i api/socosApi.yaml -g typescript-axios -o generated-sources/api --additional-properties=enumPropertyNaming=original,modelPropertyNaming=original
可以通过将“removeEnumValuePrefix”设置为“false”来防止删除“BOOST”(参见https://github.com/OpenAPITools/openapi-generator/pull/5166)