From efc53f5d474ffa49bd651b625164dbc763806f5b Mon Sep 17 00:00:00 2001 From: Jakob Warkotsch Date: Wed, 5 Mar 2025 10:36:07 +0100 Subject: [PATCH] [JavaScript] Avoid undefined headers with skipDefaultUserAgent enabled (#20792) Prior to this commit, a JS client generated with skipDefaultUserAgent enabled results in a src/ApiClient.js file that doesn't define this.defaultHeaders. This breaks because this.defaultHeaders is later directly passed to a superagent request which expects an object and not undefined. Fixes #20791. --- .../Javascript/libraries/javascript/ApiClient.mustache | 4 ++-- samples/client/petstore/javascript-es6/src/ApiClient.js | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Javascript/libraries/javascript/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Javascript/libraries/javascript/ApiClient.mustache index 6aa25b8ee9d..8aebbbb4df2 100644 --- a/modules/openapi-generator/src/main/resources/Javascript/libraries/javascript/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Javascript/libraries/javascript/ApiClient.mustache @@ -56,7 +56,6 @@ class ApiClient { } <={{ }}=> - {{^skipDefaultUserAgent}} {{#emitJSDoc}} /** * The default HTTP headers to be included for all API calls. @@ -65,10 +64,11 @@ class ApiClient { */ {{/emitJSDoc}} this.defaultHeaders = { + {{^skipDefaultUserAgent}} 'User-Agent': '{{{httpUserAgent}}}{{^httpUserAgent}}OpenAPI-Generator/{{projectVersion}}/Javascript{{/httpUserAgent}}' + {{/skipDefaultUserAgent}} }; - {{/skipDefaultUserAgent}} /** * The default HTTP timeout for all API calls. * @type {Number} diff --git a/samples/client/petstore/javascript-es6/src/ApiClient.js b/samples/client/petstore/javascript-es6/src/ApiClient.js index fb8ff7535e0..d292ff57fdc 100644 --- a/samples/client/petstore/javascript-es6/src/ApiClient.js +++ b/samples/client/petstore/javascript-es6/src/ApiClient.js @@ -52,6 +52,14 @@ class ApiClient { 'bearer_test': {type: 'bearer'}, // JWT } + /** + * The default HTTP headers to be included for all API calls. + * @type {Array.} + * @default {} + */ + this.defaultHeaders = { + }; + /** * The default HTTP timeout for all API calls. * @type {Number}