import { Hooks } from "./hooks" ; import { AttachData } from "./helpers/attachto" ; import { VNodeStyle } from "./modules/style" ; import { On } from "./modules/eventlisteners" ; import { Attrs } from "./modules/attributes" ; import { Classes } from "./modules/class" ; import { Props } from "./modules/props" ; import { Dataset } from "./modules/dataset" ; export type Key = string | number | symbol ; export interface VNode { sel : string | undefined ; data : VNodeData | undefined ; children : Array < VNode | string > | undefined ; elm : Node | undefined ; text : string | undefined ; key : Key | undefined ; } export interface VNodeData { props ? : Props ; attrs ? : Attrs ; class ? : Classes ; style ? : VNodeStyle ; dataset ? : Dataset ; on ? : On ; attachData ? : AttachData ; hook ? : Hooks ; key ? : Key ; ns ? : string ; fn ? : ( ) => VNode ; args ? : any [ ] ; is ? : string ; [ key ] : any ; } export function vnode ( sel , data , children , text , elm ) { const key = data === undefined ? undefined : data . key ; return { sel , data , children , text , elm , key } ; }