Skip to content

Commit 5085ee8

Browse files
committed
fix: update schema type parsing to ensure required fields default to true and streamline property assignment
1 parent c3b4165 commit 5085ee8

2 files changed

Lines changed: 6 additions & 7 deletions

File tree

packages/parser/src/parses/schema.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,23 +39,21 @@ export function parseSchemaType(propertie: Schema, interfaces: StatementInterfac
3939
const type = parseSchemaType(schema, interfaces)
4040
if (schema.$ref)
4141
base = type
42-
const interfaceItem = interfaces.find(v => v.name === type)
43-
if (!interfaceItem)
44-
return
45-
for (const property of interfaceItem.properties || []) {
42+
for (const property of interfaces.find(v => v.name === type)?.properties || [])
4643
fields[property.name] = property
47-
}
4844
}
4945
function assignProperties(properties?: Properties) {
5046
for (const [field, item] of Object.entries(properties || {})) {
5147
const type = parseSchemaType(item, interfaces)
48+
5249
if (item.$ref || item.items?.$ref)
5350
base = type.replace('[]', '')
51+
5452
if (!isMerge)
5553
isMerge = true
5654
fields[field] = {
5755
type,
58-
required: item.required,
56+
required: item.required ?? true,
5957
description: item.description,
6058
name: field,
6159
}
@@ -64,6 +62,7 @@ export function parseSchemaType(propertie: Schema, interfaces: StatementInterfac
6462

6563
// generate a unique interface name
6664
let name = isMerge ? `AllOf${base}` : base
65+
6766
if (isMerge) {
6867
let counter = 1
6968
while (interfaces.some(v => v.name === name)) {

packages/parser/src/traverse/paths.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function extendsRequestBody(parameters: Parameter[], requestBody?: RequestBody)
5353

5454
if (requestBody.content['application/json']) {
5555
parameters.push({
56-
...requestBody.content['application/json'],
56+
...requestBody.content['application/json'] as any,
5757
description: requestBody.description,
5858
required: requestBody.required,
5959
in: 'body',

0 commit comments

Comments
 (0)