Skip to content

Commit 5d959ee

Browse files
authored
[typescript-fetch] Use == to check property is null or undefined (#17972)
* use `==` operator to check null or undefined * update the sample
1 parent 31cff44 commit 5d959ee

208 files changed

Lines changed: 1565 additions & 2088 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/openapi-generator/src/main/resources/typescript-fetch/apis.mustache

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export class {{classname}} extends runtime.BaseAPI {
107107
async {{nickname}}Raw({{#allParams.0}}requestParameters: {{#prefixParameterInterfaces}}{{classname}}{{/prefixParameterInterfaces}}{{operationIdCamelCase}}Request, {{/allParams.0}}initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
108108
{{#allParams}}
109109
{{#required}}
110-
if (!runtime.exists(requestParameters, '{{paramName}}')) {
110+
if (requestParameters['{{paramName}}'] == null) {
111111
throw new runtime.RequiredError(
112112
'{{paramName}}',
113113
'Required parameter "{{paramName}}" was null or undefined when calling {{nickname}}().'
@@ -120,7 +120,7 @@ export class {{classname}} extends runtime.BaseAPI {
120120
121121
{{#queryParams}}
122122
{{#isArray}}
123-
if (runtime.exists(requestParameters, '{{paramName}}')) {
123+
if (requestParameters['{{paramName}}'] != null) {
124124
{{#isCollectionFormatMulti}}
125125
queryParameters['{{baseName}}'] = requestParameters['{{paramName}}'];
126126
{{/isCollectionFormatMulti}}
@@ -131,7 +131,7 @@ export class {{classname}} extends runtime.BaseAPI {
131131
132132
{{/isArray}}
133133
{{^isArray}}
134-
if (runtime.exists(requestParameters, '{{paramName}}')) {
134+
if (requestParameters['{{paramName}}'] != null) {
135135
{{#isDateTimeType}}
136136
queryParameters['{{baseName}}'] = (requestParameters['{{paramName}}'] as any).toISOString();
137137
{{/isDateTimeType}}
@@ -161,13 +161,13 @@ export class {{classname}} extends runtime.BaseAPI {
161161
{{/bodyParam}}
162162
{{#headerParams}}
163163
{{#isArray}}
164-
if (runtime.exists(requestParameters, '{{paramName}}')) {
164+
if (requestParameters['{{paramName}}'] != null) {
165165
headerParameters['{{baseName}}'] = {{#uniqueItems}}Array.from({{/uniqueItems}}requestParameters['{{paramName}}']{{#uniqueItems}}){{/uniqueItems}}!.join(runtime.COLLECTION_FORMATS["{{collectionFormat}}"]);
166166
}
167167
168168
{{/isArray}}
169169
{{^isArray}}
170-
if (runtime.exists(requestParameters, '{{paramName}}')) {
170+
if (requestParameters['{{paramName}}'] != null) {
171171
headerParameters['{{baseName}}'] = String(requestParameters['{{paramName}}']);
172172
}
173173
@@ -238,7 +238,7 @@ export class {{classname}} extends runtime.BaseAPI {
238238
239239
{{#formParams}}
240240
{{#isArray}}
241-
if (runtime.exists(requestParameters, '{{paramName}}')) {
241+
if (requestParameters['{{paramName}}'] != null) {
242242
{{#isCollectionFormatMulti}}
243243
requestParameters['{{paramName}}'].forEach((element) => {
244244
formParams.append('{{baseName}}', element as any);
@@ -251,7 +251,7 @@ export class {{classname}} extends runtime.BaseAPI {
251251
252252
{{/isArray}}
253253
{{^isArray}}
254-
if (runtime.exists(requestParameters, '{{paramName}}')) {
254+
if (requestParameters['{{paramName}}'] != null) {
255255
{{#isPrimitiveType}}
256256
formParams.append('{{baseName}}', requestParameters['{{paramName}}'] as any);
257257
{{/isPrimitiveType}}

modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { exists, mapValues } from '../runtime{{importFileExtension}}';
1+
import { mapValues } from '../runtime{{importFileExtension}}';
22
{{#hasImports}}
33
{{#imports}}
44
import type { {{{.}}} } from './{{.}}{{importFileExtension}}';
@@ -38,7 +38,7 @@ export function {{classname}}FromJSON(json: any): {{classname}} {
3838

3939
export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boolean): {{classname}} {
4040
{{#hasVars}}
41-
if (json === undefined || json === null) {
41+
if (json == null) {
4242
return json;
4343
}
4444
{{#discriminator}}
@@ -58,36 +58,36 @@ export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boole
5858
{{#vars}}
5959
{{#isPrimitiveType}}
6060
{{#isDateType}}
61-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(json, '{{baseName}}') ? null : {{/isNullable}}{{/required}}new Date(json['{{baseName}}'])),
61+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}json['{{baseName}}'] == null ? null : {{/isNullable}}{{/required}}new Date(json['{{baseName}}'])),
6262
{{/isDateType}}
6363
{{#isDateTimeType}}
64-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(json, '{{baseName}}') ? null : {{/isNullable}}{{/required}}new Date(json['{{baseName}}'])),
64+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}json['{{baseName}}'] == null ? null : {{/isNullable}}{{/required}}new Date(json['{{baseName}}'])),
6565
{{/isDateTimeType}}
6666
{{^isDateType}}
6767
{{^isDateTimeType}}
68-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}json['{{baseName}}'],
68+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}json['{{baseName}}'],
6969
{{/isDateTimeType}}
7070
{{/isDateType}}
7171
{{/isPrimitiveType}}
7272
{{^isPrimitiveType}}
7373
{{#isArray}}
7474
{{#uniqueItems}}
75-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}{{#required}}({{#isNullable}}!exists(json, '{{baseName}}') ? null : {{/isNullable}}{{/required}}new Set((json['{{baseName}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}FromJSON))),
75+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}{{#required}}({{#isNullable}}json['{{baseName}}'] == null ? null : {{/isNullable}}{{/required}}new Set((json['{{baseName}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}FromJSON))),
7676
{{/uniqueItems}}
7777
{{^uniqueItems}}
78-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(json, '{{baseName}}') ? null : {{/isNullable}}{{/required}}(json['{{baseName}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}FromJSON)),
78+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}json['{{baseName}}'] == null ? null : {{/isNullable}}{{/required}}(json['{{baseName}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}FromJSON)),
7979
{{/uniqueItems}}
8080
{{/isArray}}
8181
{{#isMap}}
82-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(json, '{{baseName}}') ? null : {{/isNullable}}{{/required}}mapValues(json['{{baseName}}'], {{#items}}{{datatype}}{{/items}}FromJSON)),
82+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}json['{{baseName}}'] == null ? null : {{/isNullable}}{{/required}}mapValues(json['{{baseName}}'], {{#items}}{{datatype}}{{/items}}FromJSON)),
8383
{{/isMap}}
8484
{{^isArray}}
8585
{{^isMap}}
8686
{{^isFreeFormObject}}
87-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}{{datatype}}FromJSON(json['{{baseName}}']),
87+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}{{datatype}}FromJSON(json['{{baseName}}']),
8888
{{/isFreeFormObject}}
8989
{{#isFreeFormObject}}
90-
'{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}json['{{baseName}}'],
90+
'{{name}}': {{^required}}json['{{baseName}}'] == null ? undefined : {{/required}}json['{{baseName}}'],
9191
{{/isFreeFormObject}}
9292
{{/isMap}}
9393
{{/isArray}}
@@ -102,11 +102,8 @@ export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boole
102102

103103
export function {{classname}}ToJSON(value?: {{classname}} | null): any {
104104
{{#hasVars}}
105-
if (value === undefined) {
106-
return undefined;
107-
}
108-
if (value === null) {
109-
return null;
105+
if (value == null) {
106+
return value;
110107
}
111108
return {
112109
{{#parent}}...{{{.}}}ToJSON(value),{{/parent}}
@@ -117,13 +114,13 @@ export function {{classname}}ToJSON(value?: {{classname}} | null): any {
117114
{{^isReadOnly}}
118115
{{#isPrimitiveType}}
119116
{{#isDateType}}
120-
'{{baseName}}': {{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}(value['{{name}}']{{#isNullable}} as any{{/isNullable}}).toISOString().substring(0,10)),
117+
'{{baseName}}': {{^required}}value['{{name}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}(value['{{name}}']{{#isNullable}} as any{{/isNullable}}).toISOString().substring(0,10)),
121118
{{/isDateType}}
122119
{{#isDateTimeType}}
123-
'{{baseName}}': {{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}(value['{{name}}']{{#isNullable}} as any{{/isNullable}}).toISOString()),
120+
'{{baseName}}': {{^required}}value['{{name}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}(value['{{name}}']{{#isNullable}} as any{{/isNullable}}).toISOString()),
124121
{{/isDateTimeType}}
125122
{{#isArray}}
126-
'{{baseName}}': {{#uniqueItems}}{{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}{{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}Array.from(value['{{name}}'] as Set<any>){{/uniqueItems}}{{^uniqueItems}}value['{{name}}']{{/uniqueItems}},
123+
'{{baseName}}': {{#uniqueItems}}{{^required}}value['{{name}}'] == null ? undefined : {{/required}}{{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}Array.from(value['{{name}}'] as Set<any>){{/uniqueItems}}{{^uniqueItems}}value['{{name}}']{{/uniqueItems}},
127124
{{/isArray}}
128125
{{^isDateType}}
129126
{{^isDateTimeType}}
@@ -136,14 +133,14 @@ export function {{classname}}ToJSON(value?: {{classname}} | null): any {
136133
{{^isPrimitiveType}}
137134
{{#isArray}}
138135
{{#uniqueItems}}
139-
'{{baseName}}': {{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}Array.from(value['{{name}}'] as Set<any>).map({{#items}}{{datatype}}{{/items}}ToJSON)),
136+
'{{baseName}}': {{^required}}value['{{name}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}Array.from(value['{{name}}'] as Set<any>).map({{#items}}{{datatype}}{{/items}}ToJSON)),
140137
{{/uniqueItems}}
141138
{{^uniqueItems}}
142-
'{{baseName}}': {{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}(value['{{name}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}ToJSON)),
139+
'{{baseName}}': {{^required}}value['{{name}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}(value['{{name}}'] as Array<any>).map({{#items}}{{datatype}}{{/items}}ToJSON)),
143140
{{/uniqueItems}}
144141
{{/isArray}}
145142
{{#isMap}}
146-
'{{baseName}}': {{^required}}!exists(value, '{{name}}') ? undefined : {{/required}}({{#required}}{{#isNullable}}!exists(value, '{{name}}') ? null : {{/isNullable}}{{/required}}mapValues(value['{{name}}'], {{#items}}{{datatype}}{{/items}}ToJSON)),
143+
'{{baseName}}': {{^required}}value['{{name}}'] == null ? undefined : {{/required}}({{#required}}{{#isNullable}}value['{{name}}'] == null ? null : {{/isNullable}}{{/required}}mapValues(value['{{name}}'], {{#items}}{{datatype}}{{/items}}ToJSON)),
147144
{{/isMap}}
148145
{{^isArray}}
149146
{{^isMap}}

modules/openapi-generator/src/main/resources/typescript-fetch/modelOneOf.mustache

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export function {{classname}}FromJSON(json: any): {{classname}} {
1717
}
1818

1919
export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boolean): {{classname}} {
20-
if (json === undefined || json === null) {
20+
if (json == null) {
2121
return json;
2222
}
2323
{{#discriminator}}
@@ -36,11 +36,8 @@ export function {{classname}}FromJSONTyped(json: any, ignoreDiscriminator: boole
3636
}
3737

3838
export function {{classname}}ToJSON(value?: {{classname}} | null): any {
39-
if (value === undefined) {
40-
return undefined;
41-
}
42-
if (value === null) {
43-
return null;
39+
if (value == null) {
40+
return value;
4441
}
4542
{{#discriminator}}
4643
switch (value['{{discriminator.propertyName}}']) {

modules/openapi-generator/src/main/resources/typescript-fetch/runtime.mustache

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -299,13 +299,6 @@ export interface RequestOpts {
299299
body?: HTTPBody;
300300
}
301301

302-
{{^withoutRuntimeChecks}}
303-
export function exists(json: any, key: string): boolean {
304-
const value = json[key];
305-
return value !== undefined && value !== null;
306-
}
307-
{{/withoutRuntimeChecks}}
308-
309302
export function querystring(params: HTTPQuery, prefix: string = ''): string {
310303
return Object.keys(params)
311304
.map(key => querystringSingleKey(key, params[key], prefix))

samples/client/petstore/typescript-fetch/builds/allOf-nullable/apis/DefaultApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class DefaultApi extends runtime.BaseAPI {
3434
/**
3535
*/
3636
async listRaw(requestParameters: ListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Club>> {
37-
if (!runtime.exists(requestParameters, 'personId')) {
37+
if (requestParameters['personId'] == null) {
3838
throw new runtime.RequiredError(
3939
'personId',
4040
'Required parameter "personId" was null or undefined when calling list().'

samples/client/petstore/typescript-fetch/builds/allOf-nullable/models/Club.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Do not edit the class manually.
1313
*/
1414

15-
import { exists, mapValues } from '../runtime';
15+
import { mapValues } from '../runtime';
1616
import type { Owner } from './Owner';
1717
import {
1818
OwnerFromJSON,
@@ -46,21 +46,18 @@ export function ClubFromJSON(json: any): Club {
4646
}
4747

4848
export function ClubFromJSONTyped(json: any, ignoreDiscriminator: boolean): Club {
49-
if (json === undefined || json === null) {
49+
if (json == null) {
5050
return json;
5151
}
5252
return {
5353

54-
'owner': !exists(json, 'owner') ? undefined : OwnerFromJSON(json['owner']),
54+
'owner': json['owner'] == null ? undefined : OwnerFromJSON(json['owner']),
5555
};
5656
}
5757

5858
export function ClubToJSON(value?: Club | null): any {
59-
if (value === undefined) {
60-
return undefined;
61-
}
62-
if (value === null) {
63-
return null;
59+
if (value == null) {
60+
return value;
6461
}
6562
return {
6663

samples/client/petstore/typescript-fetch/builds/allOf-nullable/models/Owner.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Do not edit the class manually.
1313
*/
1414

15-
import { exists, mapValues } from '../runtime';
15+
import { mapValues } from '../runtime';
1616
/**
1717
*
1818
* @export
@@ -39,21 +39,18 @@ export function OwnerFromJSON(json: any): Owner {
3939
}
4040

4141
export function OwnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): Owner {
42-
if (json === undefined || json === null) {
42+
if (json == null) {
4343
return json;
4444
}
4545
return {
4646

47-
'name': !exists(json, 'name') ? undefined : json['name'],
47+
'name': json['name'] == null ? undefined : json['name'],
4848
};
4949
}
5050

5151
export function OwnerToJSON(value?: Owner | null): any {
52-
if (value === undefined) {
53-
return undefined;
54-
}
55-
if (value === null) {
56-
return null;
52+
if (value == null) {
53+
return value;
5754
}
5855
return {
5956

samples/client/petstore/typescript-fetch/builds/allOf-nullable/runtime.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,11 +310,6 @@ export interface RequestOpts {
310310
body?: HTTPBody;
311311
}
312312

313-
export function exists(json: any, key: string): boolean {
314-
const value = json[key];
315-
return value !== undefined && value !== null;
316-
}
317-
318313
export function querystring(params: HTTPQuery, prefix: string = ''): string {
319314
return Object.keys(params)
320315
.map(key => querystringSingleKey(key, params[key], prefix))

samples/client/petstore/typescript-fetch/builds/allOf-readonly/apis/DefaultApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class DefaultApi extends runtime.BaseAPI {
3434
/**
3535
*/
3636
async listRaw(requestParameters: ListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Club>> {
37-
if (!runtime.exists(requestParameters, 'personId')) {
37+
if (requestParameters['personId'] == null) {
3838
throw new runtime.RequiredError(
3939
'personId',
4040
'Required parameter "personId" was null or undefined when calling list().'

samples/client/petstore/typescript-fetch/builds/allOf-readonly/models/Club.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Do not edit the class manually.
1313
*/
1414

15-
import { exists, mapValues } from '../runtime';
15+
import { mapValues } from '../runtime';
1616
import type { Owner } from './Owner';
1717
import {
1818
OwnerFromJSON,
@@ -46,21 +46,18 @@ export function ClubFromJSON(json: any): Club {
4646
}
4747

4848
export function ClubFromJSONTyped(json: any, ignoreDiscriminator: boolean): Club {
49-
if (json === undefined || json === null) {
49+
if (json == null) {
5050
return json;
5151
}
5252
return {
5353

54-
'owner': !exists(json, 'owner') ? undefined : OwnerFromJSON(json['owner']),
54+
'owner': json['owner'] == null ? undefined : OwnerFromJSON(json['owner']),
5555
};
5656
}
5757

5858
export function ClubToJSON(value?: Club | null): any {
59-
if (value === undefined) {
60-
return undefined;
61-
}
62-
if (value === null) {
63-
return null;
59+
if (value == null) {
60+
return value;
6461
}
6562
return {
6663

0 commit comments

Comments
 (0)