UNPKG

dom-renderer

Version:

A light-weight DOM Renderer supports Web components standard & TypeScript language

36 lines (35 loc) 1.92 kB
import 'scheduler-polyfill'; import { ReadableStream } from 'web-streams-polyfill'; import { DataObject, VNode } from './VDOM'; export type RenderMode = 'sync' | 'async'; export interface UpdateTask { index?: number; oldVNode?: VNode; newVNode?: VNode; } export declare class DOMRenderer { eventPattern: RegExp; ariaPattern: RegExp; document: Document; protected treeCache: WeakMap<Node, VNode>; protected signalCache: WeakMap<Node, AbortController>; protected keyOf: ({ key, text, props, selector }: VNode, index?: number) => any; protected vNodeOf: (list: VNode[], key?: VNode["key"]) => VNode; protected propsKeyOf: (key: string) => string; protected attrsNameOf: (key: string) => any; protected updateProps<N extends DataObject, P extends DataObject>(node: N, oldProps?: P, newProps?: P, onDelete?: (node: N, key: string) => any, onAdd?: (node: N, key: string, value: any) => any): void; protected deleteNode({ ref, node, children }: VNode): void; protected commitChild(root: ParentNode, node: Node, index?: number): void; protected diffVChildren(oldVNode: VNode, newVNode: VNode): Generator<UpdateTask>; protected handleCustomEvent(node: EventTarget, event: string): void; protected removeProperty: (node: Element, key: string) => void; protected setProperty: (node: Element, key: string, value: string) => void; protected patchNode(oldVNode: VNode, newVNode: VNode): VNode; generateDOM(oldVRoot: VNode, newVRoot: VNode): Generator<VNode, void, unknown>; patch(oldVRoot: VNode, newVRoot: VNode): VNode; patchAsync(oldVRoot: VNode, newVRoot: VNode): Promise<VNode>; render(vNode: VNode, node?: ParentNode, mode?: 'sync'): VNode; render(vNode: VNode, node?: ParentNode, mode?: 'async'): Promise<VNode>; renderToStaticMarkup(tree: VNode): string; renderToReadableStream(tree: VNode): ReadableStream<string>; }