mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 15:17:09 +00:00
47 lines
785 B
TypeScript
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')
|