防止JavaScript / TypeScript中的openapi-generator重命名枚举

时间:2019-12-02 08:57:04

标签: typescript openapi-generator

我们正在使用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=originalmodelPropertyNaming=original,但似乎都没有改变任何东西(在枚举中)。这是我们的生成器脚本:

openapi-generator generate -i api/socosApi.yaml -g typescript-axios -o generated-sources/api --additional-properties=enumPropertyNaming=original,modelPropertyNaming=original

1 个答案:

答案 0 :(得分:0)

可以通过将“ removeEnumValuePrefix”设置为“ false”来防止剥离“ BOOST”(请参见https://github.com/OpenAPITools/openapi-generator/pull/5166