UNPKG

1.01 kBTypeScriptView Raw
1import { SimpleElement, SimpleNode } from '@simple-dom/interface';
2import { Bounds } from '../dom/bounds';
3import { Arguments, CapturedArguments } from './arguments';
4
5export type RenderNodeType = 'outlet' | 'engine' | 'route-template' | 'component';
6
7export interface RenderNode {
8 type: RenderNodeType;
9 name: string;
10 args: CapturedArguments;
11 instance: unknown;
12 template?: string;
13}
14
15export interface CapturedRenderNode {
16 id: string;
17 type: RenderNodeType;
18 name: string;
19 args: Arguments;
20 instance: unknown;
21 template: string | null;
22 bounds: null | {
23 parentElement: SimpleElement;
24 firstNode: SimpleNode;
25 lastNode: SimpleNode;
26 };
27 children: CapturedRenderNode[];
28}
29
30export interface DebugRenderTree<Bucket extends object = object> {
31 begin(): void;
32
33 create(state: Bucket, node: RenderNode): void;
34
35 update(state: Bucket): void;
36
37 didRender(state: Bucket, bounds: Bounds): void;
38
39 willDestroy(state: Bucket): void;
40
41 commit(): void;
42
43 capture(): CapturedRenderNode[];
44}