xatto
Version:
xatto is View Layer Library based on Function and Context using VirtualDOM. This is developed by forking from jorgebucaran/superfine.
22 lines (19 loc) • 635 B
text/typescript
import { FUNCTION, OBJECT, STRING } from './consts/typeNames'
import { CHILDREN, KEY, NAME, PROPS } from './consts/vNodeAttributeNames'
import { VNode } from './VNode'
const nameTypes = [STRING, FUNCTION]
export function isVNode (value): value is VNode {
return (
null != value &&
OBJECT === typeof value &&
PROPS in value &&
CHILDREN in value &&
KEY in value &&
NAME in value &&
OBJECT === typeof value[PROPS] &&
OBJECT === typeof value[CHILDREN] &&
'length' in value[CHILDREN] &&
(value[KEY] == null || STRING === typeof value[KEY]) &&
0 <= nameTypes.indexOf(typeof value[NAME])
)
}