forked from loafle/openapi-generator-original
add parameter 'useURLSearchParams' to use JS build-in UrlSearchParams, instead of deprecated npm lib 'querystring' (#19949)
This commit is contained in:
parent
c70b07808e
commit
ae4e2515dc
@ -43,6 +43,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|sourceFolder|source folder for generated code| |src|
|
||||
|useInheritance|use JavaScript prototype chains & delegation for inheritance| |true|
|
||||
|usePromises|use Promises as return values from the client API, instead of superagent callbacks| |false|
|
||||
|useURLSearchParams|use JS build-in UrlSearchParams, instead of deprecated npm lib 'querystring'| |false|
|
||||
|
||||
## IMPORT MAPPING
|
||||
|
||||
|
@ -57,6 +57,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
public static final String EMIT_JS_DOC = "emitJSDoc";
|
||||
public static final String USE_ES6 = "useES6";
|
||||
public static final String NPM_REPOSITORY = "npmRepository";
|
||||
public static final String USE_URL_SEARCH_PARAMS = "useURLSearchParams";
|
||||
|
||||
public static final String LIBRARY_JAVASCRIPT = "javascript";
|
||||
public static final String LIBRARY_APOLLO = "apollo";
|
||||
@ -80,6 +81,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
protected boolean useES6 = true; // default is ES6
|
||||
@Setter protected String npmRepository = null;
|
||||
@Getter private String modelPropertyNaming = "camelCase";
|
||||
@Setter protected boolean useURLSearchParams = false;
|
||||
|
||||
public JavascriptClientCodegen() {
|
||||
super();
|
||||
@ -190,6 +192,10 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
.defaultValue(Boolean.TRUE.toString()));
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
|
||||
cliOptions.add(new CliOption(NPM_REPOSITORY, "Use this property to set an url your private npmRepo in the package.json"));
|
||||
cliOptions.add(new CliOption(USE_URL_SEARCH_PARAMS,
|
||||
"use JS build-in UrlSearchParams, instead of deprecated npm lib 'querystring'")
|
||||
.defaultValue(Boolean.FALSE.toString())
|
||||
);
|
||||
|
||||
supportedLibraries.put(LIBRARY_JAVASCRIPT, "JavaScript client library");
|
||||
supportedLibraries.put(LIBRARY_APOLLO, "Apollo REST DataSource");
|
||||
@ -267,6 +273,9 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
if (additionalProperties.containsKey(NPM_REPOSITORY)) {
|
||||
setNpmRepository(((String) additionalProperties.get(NPM_REPOSITORY)));
|
||||
}
|
||||
if (additionalProperties.containsKey(USE_URL_SEARCH_PARAMS)) {
|
||||
setUseURLSearchParams(convertPropertyToBooleanAndWriteBack(USE_URL_SEARCH_PARAMS));
|
||||
}
|
||||
if (additionalProperties.containsKey(CodegenConstants.LIBRARY)) {
|
||||
setLibrary((String) additionalProperties.get(CodegenConstants.LIBRARY));
|
||||
}
|
||||
@ -334,6 +343,7 @@ public class JavascriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
additionalProperties.put(EMIT_JS_DOC, emitJSDoc);
|
||||
additionalProperties.put(USE_ES6, useES6);
|
||||
additionalProperties.put(NPM_REPOSITORY, npmRepository);
|
||||
additionalProperties.put(USE_URL_SEARCH_PARAMS, useURLSearchParams);
|
||||
|
||||
// make api and model doc path available in mustache template
|
||||
additionalProperties.put("apiDocPath", apiDocPath);
|
||||
|
@ -1,7 +1,10 @@
|
||||
{{>licenseInfo}}
|
||||
|
||||
import superagent from "superagent";
|
||||
{{^useURLSearchParams}}
|
||||
import querystring from "querystring";
|
||||
{{! see https://www.npmjs.com/package/querystring && https://github.com/Gozala/querystring }}
|
||||
{{/useURLSearchParams}}
|
||||
|
||||
{{#emitJSDoc}}/**
|
||||
* @module {{#invokerPackage}}{{.}}/{{/invokerPackage}}ApiClient
|
||||
@ -455,7 +458,15 @@ class ApiClient {
|
||||
}
|
||||
|
||||
if (contentType === 'application/x-www-form-urlencoded') {
|
||||
request.send(querystring.stringify(this.normalizeParams(formParams)));
|
||||
{{^useURLSearchParams}}
|
||||
let queryString = querystring.stringify(this.normalizeParams(formParams));
|
||||
{{/useURLSearchParams}}
|
||||
{{#useURLSearchParams}}
|
||||
let normalizedParams = this.normalizeParams(formParams)
|
||||
let urlSearchParams = new URLSearchParams(normalizedParams);
|
||||
let queryString = urlSearchParams.toString();
|
||||
{{/useURLSearchParams}}
|
||||
request.send(queryString);
|
||||
} else if (contentType == 'multipart/form-data') {
|
||||
var _formParams = this.normalizeParams(formParams);
|
||||
for (var key in _formParams) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user