majas
Version:
Format-agnostic structure converter.
39 lines (38 loc) • 957 B
JavaScript
export function normalize(node) {
if (node.title === undefined)
delete node.title;
if (node.content === undefined)
delete node.content;
if (node.children === undefined || node.children.items.length === 0)
delete node.children;
else
node.children.items.forEach(normalize);
return node;
}
export const IRNodeSchema = {
type: 'object',
additionalProperties: false,
properties: {
title: {
type: 'string',
},
content: {
type: 'string',
},
children: {
type: 'object',
properties: {
ordered: {
type: 'boolean',
},
items: {
type: 'array',
items: {
$ref: '#',
},
},
},
required: ['ordered', 'items'],
},
},
};