function promoteItems()

in experimental/generation/generator/packages/library/src/processSchemas.ts [179:199]


function promoteItems(schema: any): void {
    if (Array.isArray(schema)) {
        for (var child in schema) {
            promoteItems(child)
        }
    } else if (typeof schema === 'object' && schema !== null) {
        for (var [prop, val] of Object.entries(schema)) {
            if (prop === 'items') {
                if (val && typeof val === 'object' && !Array.isArray(val)) {
                    for (var [prop, itemVal] of Object.entries(val as object)) {
                        if (((prop.startsWith('$') && prop !== '$schema') || ContraintKeywords.includes(prop)) && !schema[prop]) {
                            schema[prop] = itemVal
                        }
                    }
                }
            } else {
                promoteItems(val)
            }
        }
    }
}