Files
misode.github.io/src/app/Sandbox.ts
2020-06-26 01:45:25 +02:00

47 lines
785 B
TypeScript

import {
StringNode,
BooleanNode,
EnumNode,
NumberNode,
ObjectNode,
ListNode,
MapNode,
Switch,
Case,
Reference,
JsonNode,
RangeNode,
Resource,
SCHEMAS
} from '@mcschema/core'
SCHEMAS.register('foo', ObjectNode({
foo: StringNode(),
bar: BooleanNode({ radio: true }),
nested: ObjectNode({
baz: NumberNode({ min: 1 }),
range: RangeNode()
}, { collapse: true }),
arr: ListNode(
ObjectNode({
aaa: StringNode(),
bbb: JsonNode()
})
),
map: MapNode(
EnumNode(['pig', 'sheep'], 'pig'),
Resource(StringNode())
),
recursive: ListNode(
Reference('foo')
),
[Switch]: path => path.push('foo'),
[Case]: {
'blah': {
haha: StringNode()
}
}
}))
export const SandboxSchema = SCHEMAS.get('foo')