Skip to content

Commit 2768021

Browse files
authored
feat(typescript-axios): injectable FormData (#7455)
Signed-off-by: Peter Somogyvari <[email protected]>
1 parent 7fa02ee commit 2768021

File tree

20 files changed

+242
-8
lines changed

20 files changed

+242
-8
lines changed

modules/openapi-generator/src/main/resources/typescript-axios/apiInner.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ export const {{classname}}AxiosParamCreator = function (configuration?: Configur
5252
if (configuration) {
5353
baseOptions = configuration.baseOptions;
5454
}
55+
5556
const localVarRequestOptions = { method: '{{httpMethod}}', ...baseOptions, ...options};
5657
const localVarHeaderParameter = {} as any;
5758
const localVarQueryParameter = {} as any;{{#vendorExtensions}}{{#hasFormParams}}
58-
const localVarFormParams = new {{^multipartFormData}}URLSearchParams(){{/multipartFormData}}{{#multipartFormData}}FormData(){{/multipartFormData}};{{/hasFormParams}}{{/vendorExtensions}}
59+
const localVarFormParams = new {{^multipartFormData}}URLSearchParams(){{/multipartFormData}}{{#multipartFormData}}(configuration?.formDataCtor || FormData)(){{/multipartFormData}};{{/hasFormParams}}{{/vendorExtensions}}
5960
6061
{{#authMethods}}
6162
// authentication {{name}} required

modules/openapi-generator/src/main/resources/typescript-axios/configuration.mustache

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export interface ConfigurationParameters {
99
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
1010
basePath?: string;
1111
baseOptions?: any;
12+
formDataCtor?: new () => any;
1213
}
1314

1415
export class Configuration {
@@ -53,6 +54,14 @@ export class Configuration {
5354
* @memberof Configuration
5455
*/
5556
baseOptions?: any;
57+
/**
58+
* The FormData constructor that will be used to create multipart form data
59+
* requests. You can inject this here so that execution environments that
60+
* do not support the FormData class can still run the generated client.
61+
*
62+
* @type {new () => FormData}
63+
*/
64+
formDataCtor?: new () => any;
5665

5766
constructor(param: ConfigurationParameters = {}) {
5867
this.apiKey = param.apiKey;
@@ -61,5 +70,6 @@ export class Configuration {
6170
this.accessToken = param.accessToken;
6271
this.basePath = param.basePath;
6372
this.baseOptions = param.baseOptions;
73+
this.formDataCtor = param.formDataCtor;
6474
}
6575
}

samples/client/petstore/typescript-axios/builds/composed-schemas/api.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
201201
if (configuration) {
202202
baseOptions = configuration.baseOptions;
203203
}
204+
204205
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
205206
const localVarHeaderParameter = {} as any;
206207
const localVarQueryParameter = {} as any;
@@ -241,6 +242,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
241242
if (configuration) {
242243
baseOptions = configuration.baseOptions;
243244
}
245+
244246
const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
245247
const localVarHeaderParameter = {} as any;
246248
const localVarQueryParameter = {} as any;
@@ -281,6 +283,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
281283
if (configuration) {
282284
baseOptions = configuration.baseOptions;
283285
}
286+
284287
const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
285288
const localVarHeaderParameter = {} as any;
286289
const localVarQueryParameter = {} as any;

samples/client/petstore/typescript-axios/builds/composed-schemas/configuration.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface ConfigurationParameters {
2020
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
2121
basePath?: string;
2222
baseOptions?: any;
23+
formDataCtor?: new () => any;
2324
}
2425

2526
export class Configuration {
@@ -64,6 +65,14 @@ export class Configuration {
6465
* @memberof Configuration
6566
*/
6667
baseOptions?: any;
68+
/**
69+
* The FormData constructor that will be used to create multipart form data
70+
* requests. You can inject this here so that execution environments that
71+
* do not support the FormData class can still run the generated client.
72+
*
73+
* @type {new () => FormData}
74+
*/
75+
formDataCtor?: new () => any;
6776

6877
constructor(param: ConfigurationParameters = {}) {
6978
this.apiKey = param.apiKey;
@@ -72,5 +81,6 @@ export class Configuration {
7281
this.accessToken = param.accessToken;
7382
this.basePath = param.basePath;
7483
this.baseOptions = param.baseOptions;
84+
this.formDataCtor = param.formDataCtor;
7585
}
7686
}

samples/client/petstore/typescript-axios/builds/default/api.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
271271
if (configuration) {
272272
baseOptions = configuration.baseOptions;
273273
}
274+
274275
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
275276
const localVarHeaderParameter = {} as any;
276277
const localVarQueryParameter = {} as any;
@@ -327,6 +328,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
327328
if (configuration) {
328329
baseOptions = configuration.baseOptions;
329330
}
331+
330332
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
331333
const localVarHeaderParameter = {} as any;
332334
const localVarQueryParameter = {} as any;
@@ -381,6 +383,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
381383
if (configuration) {
382384
baseOptions = configuration.baseOptions;
383385
}
386+
384387
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
385388
const localVarHeaderParameter = {} as any;
386389
const localVarQueryParameter = {} as any;
@@ -435,6 +438,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
435438
if (configuration) {
436439
baseOptions = configuration.baseOptions;
437440
}
441+
438442
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
439443
const localVarHeaderParameter = {} as any;
440444
const localVarQueryParameter = {} as any;
@@ -490,6 +494,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
490494
if (configuration) {
491495
baseOptions = configuration.baseOptions;
492496
}
497+
493498
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
494499
const localVarHeaderParameter = {} as any;
495500
const localVarQueryParameter = {} as any;
@@ -539,6 +544,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
539544
if (configuration) {
540545
baseOptions = configuration.baseOptions;
541546
}
547+
542548
const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
543549
const localVarHeaderParameter = {} as any;
544550
const localVarQueryParameter = {} as any;
@@ -596,6 +602,7 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
596602
if (configuration) {
597603
baseOptions = configuration.baseOptions;
598604
}
605+
599606
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
600607
const localVarHeaderParameter = {} as any;
601608
const localVarQueryParameter = {} as any;
@@ -661,10 +668,11 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
661668
if (configuration) {
662669
baseOptions = configuration.baseOptions;
663670
}
671+
664672
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
665673
const localVarHeaderParameter = {} as any;
666674
const localVarQueryParameter = {} as any;
667-
const localVarFormParams = new FormData();
675+
const localVarFormParams = new (configuration?.formDataCtor || FormData)();
668676

669677
// authentication petstore_auth required
670678
// oauth required
@@ -1063,6 +1071,7 @@ export const StoreApiAxiosParamCreator = function (configuration?: Configuration
10631071
if (configuration) {
10641072
baseOptions = configuration.baseOptions;
10651073
}
1074+
10661075
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
10671076
const localVarHeaderParameter = {} as any;
10681077
const localVarQueryParameter = {} as any;
@@ -1099,6 +1108,7 @@ export const StoreApiAxiosParamCreator = function (configuration?: Configuration
10991108
if (configuration) {
11001109
baseOptions = configuration.baseOptions;
11011110
}
1111+
11021112
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
11031113
const localVarHeaderParameter = {} as any;
11041114
const localVarQueryParameter = {} as any;
@@ -1149,6 +1159,7 @@ export const StoreApiAxiosParamCreator = function (configuration?: Configuration
11491159
if (configuration) {
11501160
baseOptions = configuration.baseOptions;
11511161
}
1162+
11521163
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
11531164
const localVarHeaderParameter = {} as any;
11541165
const localVarQueryParameter = {} as any;
@@ -1190,6 +1201,7 @@ export const StoreApiAxiosParamCreator = function (configuration?: Configuration
11901201
if (configuration) {
11911202
baseOptions = configuration.baseOptions;
11921203
}
1204+
11931205
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
11941206
const localVarHeaderParameter = {} as any;
11951207
const localVarQueryParameter = {} as any;
@@ -1412,6 +1424,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
14121424
if (configuration) {
14131425
baseOptions = configuration.baseOptions;
14141426
}
1427+
14151428
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
14161429
const localVarHeaderParameter = {} as any;
14171430
const localVarQueryParameter = {} as any;
@@ -1457,6 +1470,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
14571470
if (configuration) {
14581471
baseOptions = configuration.baseOptions;
14591472
}
1473+
14601474
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
14611475
const localVarHeaderParameter = {} as any;
14621476
const localVarQueryParameter = {} as any;
@@ -1502,6 +1516,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
15021516
if (configuration) {
15031517
baseOptions = configuration.baseOptions;
15041518
}
1519+
15051520
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
15061521
const localVarHeaderParameter = {} as any;
15071522
const localVarQueryParameter = {} as any;
@@ -1548,6 +1563,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
15481563
if (configuration) {
15491564
baseOptions = configuration.baseOptions;
15501565
}
1566+
15511567
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
15521568
const localVarHeaderParameter = {} as any;
15531569
const localVarQueryParameter = {} as any;
@@ -1590,6 +1606,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
15901606
if (configuration) {
15911607
baseOptions = configuration.baseOptions;
15921608
}
1609+
15931610
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
15941611
const localVarHeaderParameter = {} as any;
15951612
const localVarQueryParameter = {} as any;
@@ -1636,6 +1653,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
16361653
if (configuration) {
16371654
baseOptions = configuration.baseOptions;
16381655
}
1656+
16391657
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
16401658
const localVarHeaderParameter = {} as any;
16411659
const localVarQueryParameter = {} as any;
@@ -1680,6 +1698,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
16801698
if (configuration) {
16811699
baseOptions = configuration.baseOptions;
16821700
}
1701+
16831702
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
16841703
const localVarHeaderParameter = {} as any;
16851704
const localVarQueryParameter = {} as any;
@@ -1727,6 +1746,7 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
17271746
if (configuration) {
17281747
baseOptions = configuration.baseOptions;
17291748
}
1749+
17301750
const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
17311751
const localVarHeaderParameter = {} as any;
17321752
const localVarQueryParameter = {} as any;

samples/client/petstore/typescript-axios/builds/default/configuration.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface ConfigurationParameters {
2020
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
2121
basePath?: string;
2222
baseOptions?: any;
23+
formDataCtor?: new () => any;
2324
}
2425

2526
export class Configuration {
@@ -64,6 +65,14 @@ export class Configuration {
6465
* @memberof Configuration
6566
*/
6667
baseOptions?: any;
68+
/**
69+
* The FormData constructor that will be used to create multipart form data
70+
* requests. You can inject this here so that execution environments that
71+
* do not support the FormData class can still run the generated client.
72+
*
73+
* @type {new () => FormData}
74+
*/
75+
formDataCtor?: new () => any;
6776

6877
constructor(param: ConfigurationParameters = {}) {
6978
this.apiKey = param.apiKey;
@@ -72,5 +81,6 @@ export class Configuration {
7281
this.accessToken = param.accessToken;
7382
this.basePath = param.basePath;
7483
this.baseOptions = param.baseOptions;
84+
this.formDataCtor = param.formDataCtor;
7585
}
7686
}

0 commit comments

Comments
 (0)