From 3ddbee927bf254fa43e169ce1cf7b6da102624cb Mon Sep 17 00:00:00 2001 From: John Vu Date: Fri, 19 Jan 2024 14:44:24 -0800 Subject: [PATCH] Fix process is not defined for browser use cases, Fix webpack polyfill issue, deprecate usage of node.js query string, Update Swagger Codegen version to v3.0.52, update sample code --- .github/workflows/publish.yaml | 2 +- .../JavascriptClientCodegenGenerator.java | 2 +- codegen/templates/ApiClient.mustache | 28 ++++++++++++------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 1857bc1a..10a6dda7 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -18,7 +18,7 @@ jobs: java-version: "17" - name: Setup environment variables run: | - echo "generator_version=3.0.46" >> "$GITHUB_ENV" + echo "generator_version=3.0.52" >> "$GITHUB_ENV" echo "generator_name=swagger-codegen-cli.jar" >> "$GITHUB_ENV" echo "jar_asana=codegen/swagger/target/AsanaClientCodegen-swagger-codegen-1.0.0.jar" >> "$GITHUB_ENV" echo "actual_lang=com.asana.codegen.JavascriptClientCodegenGenerator" >> "$GITHUB_ENV" diff --git a/codegen/swagger/src/main/java/com/asana/codegen/JavascriptClientCodegenGenerator.java b/codegen/swagger/src/main/java/com/asana/codegen/JavascriptClientCodegenGenerator.java index 68a46cc2..cfd47e5b 100644 --- a/codegen/swagger/src/main/java/com/asana/codegen/JavascriptClientCodegenGenerator.java +++ b/codegen/swagger/src/main/java/com/asana/codegen/JavascriptClientCodegenGenerator.java @@ -96,7 +96,7 @@ public void setParameterExampleValue(CodegenParameter p) { // Update example for requests that require body if (!languageSpecificPrimitives.contains(type)) { // type is a model class, e.g. User - p.example = "{\"data\": {\"param1\": \"value1\", \"param2\": \"value2\",}}"; + p.example = "{\"data\": {\"\": \"\", \"\": \"\",}}"; p.dataType = "Object"; } } diff --git a/codegen/templates/ApiClient.mustache b/codegen/templates/ApiClient.mustache index 3821dc96..fe29f809 100644 --- a/codegen/templates/ApiClient.mustache +++ b/codegen/templates/ApiClient.mustache @@ -1,6 +1,5 @@ {{>licenseInfo}} import superagent from "superagent"; -import querystring from "querystring"; {{#emitJSDoc}}/** * @module {{#invokerPackage}}{{invokerPackage}}/{{/invokerPackage}}ApiClient @@ -420,14 +419,23 @@ export class ApiClient { request.query(this.normalizeParams(queryParams)); // set header parameters - headerParams['X-Asana-Client-Lib'] = querystring.stringify( - { - 'version': "{{projectVersion}}", - 'language': 'NodeJS', - 'language_version': process.version, - 'os': process.platform - } - ); + if (typeof(navigator) === 'undefined' || typeof(window) === 'undefined') { + headerParams['X-Asana-Client-Lib'] = new URLSearchParams( + { + 'version': "{{projectVersion}}", + 'language': 'NodeJS', + 'language_version': process.version, + 'os': process.platform + } + ).toString(); + } else { + headerParams['X-Asana-Client-Lib'] = new URLSearchParams( + { + 'version': "{{projectVersion}}", + 'language': 'BrowserJS' + } + ).toString(); + } request.set(this.defaultHeaders).set(this.normalizeParams(headerParams)); // set requestAgent if it is set by user @@ -449,7 +457,7 @@ export class ApiClient { } if (contentType === 'application/x-www-form-urlencoded') { - request.send(querystring.stringify(this.normalizeParams(formParams))); + request.send(new URLSearchParams(this.normalizeParams(formParams)).toString()); } else if (contentType == 'multipart/form-data') { var _formParams = this.normalizeParams(formParams); for (var key in _formParams) {