summary refs log tree commit diff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/schema.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/schema.js b/scripts/schema.js

index fd5b09f5..b39948e7 100644 --- a/scripts/schema.js +++ b/scripts/schema.js
@@ -112,7 +112,29 @@ function main() { definitions = { ...definitions, [name]: { ...part } }; } + deleteOneOfKindUndefinedRecursive(definitions, "$"); + fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4)); } +function deleteOneOfKindUndefinedRecursive(obj, path) { + if ( + obj?.type === "object" && + obj?.properties?.oneofKind?.type === "undefined" + ) + return true; + + for (const key in obj) { + if ( + typeof obj[key] === "object" && + deleteOneOfKindUndefinedRecursive(obj[key], path + "." + key) + ) { + console.log("Deleting", path, key); + delete obj[key]; + } + } + + return false; +} + main();