From 1674bf144b5cc6605105a047e3bacbf248b63ce3 Mon Sep 17 00:00:00 2001 From: christophcmohr Date: Fri, 7 Feb 2025 09:22:33 +0100 Subject: [PATCH] Add flag skipDefaultUserAgent to skip setting user agent in TypeScript client --- bin/configs/typescript-axios-es6-target.yaml | 1 + docs/generators/typescript.md | 1 + .../codegen/languages/TypeScriptClientCodegen.java | 3 +++ .../src/main/resources/typescript-axios/configuration.mustache | 2 ++ 4 files changed, 7 insertions(+) diff --git a/bin/configs/typescript-axios-es6-target.yaml b/bin/configs/typescript-axios-es6-target.yaml index 06ff80e72499..659504b39593 100644 --- a/bin/configs/typescript-axios-es6-target.yaml +++ b/bin/configs/typescript-axios-es6-target.yaml @@ -8,3 +8,4 @@ additionalProperties: npmName: '@openapitools/typescript-axios-petstore' npmRepository: https://skimdb.npmjs.com/registry snapshot: false + skipDefaultUserAgent: true diff --git a/docs/generators/typescript.md b/docs/generators/typescript.md index d53ba13a6b81..d62aa3740e51 100644 --- a/docs/generators/typescript.md +++ b/docs/generators/typescript.md @@ -38,6 +38,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl |paramNaming|Naming convention for parameters: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase| |platform|Specifies the platform the code should run on. The default is 'node' for the 'request' framework and 'browser' otherwise.|
**browser**
browser
**node**
node
**deno**
deno
|browser| |prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false| +|skipDefaultUserAgent|Skip setting default user-agent in configuration.ts| |false| |snapshot|When setting this property to true, the version will be suffixed with -SNAPSHOT.yyyyMMddHHmm| |false| |sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true| |sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true| diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java index f35c40b7677e..eafb6b9f47c3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptClientCodegen.java @@ -75,6 +75,8 @@ public class TypeScriptClientCodegen extends AbstractTypeScriptClientCodegen imp private static final String USE_OBJECT_PARAMS_SWITCH = "useObjectParameters"; private static final String USE_OBJECT_PARAMS_DESC = "Use aggregate parameter objects as function arguments for api operations instead of passing each parameter as a separate function argument."; + public static final String SKIP_DEFAULT_USER_AGENT = "skipDefaultUserAgent"; + public static final String SKIP_DEFAULT_USER_AGENT_DESC = "Skip setting default user-agent in configuration.ts"; private final Map frameworkToHttpLibMap; @@ -120,6 +122,7 @@ public TypeScriptClientCodegen() { cliOptions.add(new CliOption(TypeScriptClientCodegen.USE_OBJECT_PARAMS_SWITCH, TypeScriptClientCodegen.USE_OBJECT_PARAMS_DESC).defaultValue("false")); cliOptions.add(new CliOption(TypeScriptClientCodegen.USE_INVERSIFY_SWITCH, TypeScriptClientCodegen.USE_INVERSIFY_SWITCH_DESC).defaultValue("false")); cliOptions.add(new CliOption(TypeScriptClientCodegen.IMPORT_FILE_EXTENSION_SWITCH, TypeScriptClientCodegen.IMPORT_FILE_EXTENSION_SWITCH_DESC)); + cliOptions.add(new CliOption(TypeScriptClientCodegen.SKIP_DEFAULT_USER_AGENT, TypeScriptClientCodegen.SKIP_DEFAULT_USER_AGENT_DESC).defaultValue("false")); CliOption frameworkOption = new CliOption(TypeScriptClientCodegen.FRAMEWORK_SWITCH, TypeScriptClientCodegen.FRAMEWORK_SWITCH_DESC); for (String option : TypeScriptClientCodegen.FRAMEWORKS) { diff --git a/modules/openapi-generator/src/main/resources/typescript-axios/configuration.mustache b/modules/openapi-generator/src/main/resources/typescript-axios/configuration.mustache index 400889582677..73c44ab2efaa 100644 --- a/modules/openapi-generator/src/main/resources/typescript-axios/configuration.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-axios/configuration.mustache @@ -81,9 +81,11 @@ export class Configuration { this.baseOptions = { ...param.baseOptions, headers: { + {{^skipDefaultUserAgent}} {{#httpUserAgent}} 'User-Agent': "{{httpUserAgent}}", {{/httpUserAgent}} + {{/skipDefaultUserAgent}} ...param.baseOptions?.headers, }, };