mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 07:10:41 +00:00
29 lines
892 B
TypeScript
29 lines
892 B
TypeScript
import { RootNode } from '../nodes/RootNode'
|
|
import { EnumNode } from '../nodes/EnumNode'
|
|
import { ObjectNode } from '../nodes/ObjectNode'
|
|
import { StringNode } from '../nodes/StringNode'
|
|
import { DataModel } from '../model/DataModel'
|
|
import { TreeView } from '../view/TreeView'
|
|
import { SourceView } from '../view/SourceView'
|
|
|
|
const EntityCollection = ['sheep', 'pig']
|
|
|
|
const predicateTree = new RootNode('predicate', {
|
|
condition: new EnumNode(['foo', 'bar'], {
|
|
transform: (s: string) => (s === 'foo') ? {test: 'baz'} : s
|
|
}),
|
|
predicate: new ObjectNode({
|
|
type: new EnumNode(EntityCollection),
|
|
nbt: new StringNode()
|
|
})
|
|
}, {
|
|
default: () => ({ condition: 'foo', predicate: { nbt: 'hi' } })
|
|
});
|
|
|
|
const model = new DataModel(predicateTree)
|
|
|
|
new TreeView(model, document!.getElementById('view')!)
|
|
new SourceView(model, document!.getElementById('source')!)
|
|
|
|
model.invalidate()
|