@kravc/schema
Version:
Advanced JSON schema manipulation and validation library.
31 lines (21 loc) • 624 B
JavaScript
const removeRequiredAndDefault = jsonSchema => {
const { properties } = jsonSchema
if (!properties) { return }
for (const name in properties) {
const property = properties[name]
delete property.required
delete property.default
const isObject = property.type === 'object'
const isArray = property.type === 'array'
if (isObject) {
removeRequiredAndDefault(property)
}
if (isArray) {
const { items: itemsJsonSchema } = property
removeRequiredAndDefault(itemsJsonSchema)
}
}
return { properties }
}
module.exports = removeRequiredAndDefault