diff options
Diffstat (limited to 'scripts/schema.js')
-rw-r--r-- | scripts/schema.js | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/scripts/schema.js b/scripts/schema.js index be1a7a3f..bd0f73d3 100644 --- a/scripts/schema.js +++ b/scripts/schema.js @@ -91,9 +91,9 @@ function main() { if (!part) continue; // this is a hack. want some want to check if its a @column, instead - if (part.properties) - Object.keys(part.properties) - .filter((key) => + if (part.properties) { + for (let key in part.properties) { + if ( [ // BaseClass methods "toJSON", @@ -104,9 +104,31 @@ function main() { "recover", "reload", "assign", - ].includes(key), - ) - .forEach((key) => delete part.properties[key]); + ].includes(key) + ) { + delete part.properties[key]; + continue; + } + + if (part.properties[key].anyOf) { + const nullIndex = part.properties[key].anyOf.findIndex( + (x) => x.type == "null", + ); + if (nullIndex != -1) { + part.properties[key].nullable = true; + part.properties[key].anyOf.splice(nullIndex, 1); + + if (part.properties[key].anyOf.length == 1) { + Object.assign( + part.properties[key], + part.properties[key].anyOf[0], + ); + delete part.properties[key].anyOf; + } + } + } + } + } definitions = { ...definitions, [name]: { ...part } }; } |