xatto
Version:
xatto is View Layer Library based on Function and Context using VirtualDOM. This is developed by forking from jorgebucaran/superfine.
32 lines (28 loc) • 766 B
text/typescript
import { Component } from './Component'
import { createVNode } from './createVNode'
import { isVNode } from './isVNode'
import { VNode } from './VNode'
/**
* x
*
* @param name {string | Component}
* @param props {object}
* @param ... {object}
* @return {VNode}
*/
export function x (
name: string | Component | ((name, props, ...rest) => VNode),
props: any,
...rest: any[]
): VNode {
const children: VNode[] = []
while (rest.length) {
const node = rest.pop()
if (node && Array.isArray(node)) {
rest = rest.concat(node)
} else if (node != null && node !== true && node !== false) {
children.unshift((isVNode(node) && node) || createVNode(true, node))
}
}
return createVNode(false, name, props || {}, children)
}