diff --git a/src/openApi/v2/parser/getModel.ts b/src/openApi/v2/parser/getModel.ts index 5c3c5ac8..48798383 100644 --- a/src/openApi/v2/parser/getModel.ts +++ b/src/openApi/v2/parser/getModel.ts @@ -22,7 +22,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti isDefinition, isReadOnly: definition.readOnly === true, isNullable: definition['x-nullable'] === true, - isRequired: false, + isRequired: definition.default !== undefined, format: definition.format, maximum: definition.maximum, exclusiveMaximum: definition.exclusiveMaximum, diff --git a/src/openApi/v2/parser/getModelProperties.ts b/src/openApi/v2/parser/getModelProperties.ts index 2e577c91..8d17386d 100644 --- a/src/openApi/v2/parser/getModelProperties.ts +++ b/src/openApi/v2/parser/getModelProperties.ts @@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, for (const propertyName in definition.properties) { if (definition.properties.hasOwnProperty(propertyName)) { const property = definition.properties[propertyName]; - const propertyRequired = definition.required?.includes(propertyName); + const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined; if (property.$ref) { const model = getType(property.$ref); models.push({ @@ -28,7 +28,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, description: getComment(property.description), isDefinition: false, isReadOnly: property.readOnly === true, - isRequired: propertyRequired === true, + isRequired: propertyRequired, isNullable: property['x-nullable'] === true, format: property.format, maximum: property.maximum, @@ -61,7 +61,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, description: getComment(property.description), isDefinition: false, isReadOnly: property.readOnly === true, - isRequired: propertyRequired === true, + isRequired: propertyRequired, isNullable: property['x-nullable'] === true, format: property.format, maximum: property.maximum, diff --git a/src/openApi/v3/parser/getModel.ts b/src/openApi/v3/parser/getModel.ts index c5d415bb..ecd46cd2 100644 --- a/src/openApi/v3/parser/getModel.ts +++ b/src/openApi/v3/parser/getModel.ts @@ -23,7 +23,7 @@ export function getModel(openApi: OpenApi, definition: OpenApiSchema, isDefiniti isDefinition, isReadOnly: definition.readOnly === true, isNullable: definition.nullable === true, - isRequired: false, + isRequired: definition.default !== undefined, format: definition.format, maximum: definition.maximum, exclusiveMaximum: definition.exclusiveMaximum, diff --git a/src/openApi/v3/parser/getModelProperties.ts b/src/openApi/v3/parser/getModelProperties.ts index 17caa16a..ff22fe5a 100644 --- a/src/openApi/v3/parser/getModelProperties.ts +++ b/src/openApi/v3/parser/getModelProperties.ts @@ -15,7 +15,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, for (const propertyName in definition.properties) { if (definition.properties.hasOwnProperty(propertyName)) { const property = definition.properties[propertyName]; - const propertyRequired = definition.required?.includes(propertyName); + const propertyRequired = definition.required?.includes(propertyName) || property.default !== undefined; if (property.$ref) { const model = getType(property.$ref); models.push({ @@ -28,7 +28,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, description: getComment(property.description), isDefinition: false, isReadOnly: property.readOnly === true, - isRequired: propertyRequired === true, + isRequired: propertyRequired, isNullable: property.nullable === true, format: property.format, maximum: property.maximum, @@ -61,7 +61,7 @@ export function getModelProperties(openApi: OpenApi, definition: OpenApiSchema, description: getComment(property.description), isDefinition: false, isReadOnly: property.readOnly === true, - isRequired: propertyRequired === true, + isRequired: propertyRequired, isNullable: property.nullable === true, format: property.format, maximum: property.maximum, diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 1b284fd7..ca5248f8 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -4397,7 +4397,7 @@ export class ComplexService { requestBody?: { readonly key: string | null, name: string | null, - enabled?: boolean, + enabled: boolean, readonly type: 'Monkey' | 'Horse' | 'Bird', listOfModels?: Array | null, listOfStrings?: Array | null,