Skip to content

Commit 7fdd33b

Browse files
committed
- When a property has a default value it will be a non optional property
1 parent 04b23ca commit 7fdd33b

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

src/openApi/v2/parser/getModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti
2222
isDefinition,
2323
isReadOnly: definition.readOnly === true,
2424
isNullable: definition['x-nullable'] === true,
25-
isRequired: false,
25+
isRequired: definition.default !== undefined,
2626
format: definition.format,
2727
maximum: definition.maximum,
2828
exclusiveMaximum: definition.exclusiveMaximum,

src/openApi/v2/parser/getModelProperties.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
1515
for (const propertyName in definition.properties) {
1616
if (definition.properties.hasOwnProperty(propertyName)) {
1717
const property = definition.properties[propertyName];
18-
const propertyRequired = definition.required?.includes(propertyName);
18+
const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined;
1919
if (property.$ref) {
2020
const model = getType(property.$ref);
2121
models.push({
@@ -28,7 +28,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
2828
description: getComment(property.description),
2929
isDefinition: false,
3030
isReadOnly: property.readOnly === true,
31-
isRequired: propertyRequired === true,
31+
isRequired: propertyRequired,
3232
isNullable: property['x-nullable'] === true,
3333
format: property.format,
3434
maximum: property.maximum,
@@ -61,7 +61,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
6161
description: getComment(property.description),
6262
isDefinition: false,
6363
isReadOnly: property.readOnly === true,
64-
isRequired: propertyRequired === true,
64+
isRequired: propertyRequired,
6565
isNullable: property['x-nullable'] === true,
6666
format: property.format,
6767
maximum: property.maximum,

src/openApi/v3/parser/getModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti
2323
isDefinition,
2424
isReadOnly: definition.readOnly === true,
2525
isNullable: definition.nullable === true,
26-
isRequired: false,
26+
isRequired: definition.default !== undefined,
2727
format: definition.format,
2828
maximum: definition.maximum,
2929
exclusiveMaximum: definition.exclusiveMaximum,

src/openApi/v3/parser/getModelProperties.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
1515
for (const propertyName in definition.properties) {
1616
if (definition.properties.hasOwnProperty(propertyName)) {
1717
const property = definition.properties[propertyName];
18-
const propertyRequired = definition.required?.includes(propertyName);
18+
const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined;
1919
if (property.$ref) {
2020
const model = getType(property.$ref);
2121
models.push({
@@ -28,7 +28,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
2828
description: getComment(property.description),
2929
isDefinition: false,
3030
isReadOnly: property.readOnly === true,
31-
isRequired: propertyRequired === true,
31+
isRequired: propertyRequired,
3232
isNullable: property.nullable === true,
3333
format: property.format,
3434
maximum: property.maximum,
@@ -61,7 +61,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema,
6161
description: getComment(property.description),
6262
isDefinition: false,
6363
isReadOnly: property.readOnly === true,
64-
isRequired: propertyRequired === true,
64+
isRequired: propertyRequired,
6565
isNullable: property.nullable === true,
6666
format: property.format,
6767
maximum: property.maximum,

test/__snapshots__/index.spec.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4397,7 +4397,7 @@ export class ComplexService {
43974397
requestBody?: {
43984398
readonly key: string | null,
43994399
name: string | null,
4400-
enabled?: boolean,
4400+
enabled: boolean,
44014401
readonly type: 'Monkey' | 'Horse' | 'Bird',
44024402
listOfModels?: Array<ModelWithString> | null,
44034403
listOfStrings?: Array<string> | null,

0 commit comments

Comments
 (0)