reactron
Version:
Reactron - Transactional Reactive Front-End Development Framework
47 lines (46 loc) • 2.13 kB
TypeScript
export declare type Render<E = unknown, O = void> = (element: E, options: O) => void | Promise<void>;
export declare type SuperRender<E = unknown, O = void> = ((render: (options: O) => void, element: E) => void);
export declare type AsyncSuperRender<O = unknown, E = void> = ((render: (options: O) => Promise<void>, element: E) => Promise<void>);
export declare type Customize<E = unknown, O = void> = (element: E, options: O) => void;
export declare type AsyncCustomize<E = unknown, O = void> = (element: E, options: O) => Promise<void>;
export interface RxNodeType<E = unknown, O = void> {
readonly name: string;
readonly sequential: boolean;
initialize?(node: RxNode<E, O>): void;
mount?(node: RxNode<E, O>): void;
render?(node: RxNode<E, O>, args: unknown): void;
finalize?(node: RxNode<E, O>, initiator: RxNode): void;
}
export interface RxNodeInstance<E = unknown, O = void> {
readonly uuid: number;
readonly level: number;
revision: number;
native?: E;
model?: unknown;
children: ReadonlyArray<RxNode>;
buffer: Array<RxNode> | undefined;
guests: ReadonlyArray<RxNode>;
resizeObserver?: ResizeObserver;
rerender(node: RxNode<E, O>): void;
}
export declare class RxNode<E = any, O = any> {
readonly id: string;
readonly args: unknown;
readonly render: Render<E, O>;
readonly superRender: SuperRender<E, O> | undefined;
priority: number;
childrenShuffling: boolean;
readonly type: RxNodeType<E, O>;
readonly inline: boolean;
readonly creator: RxNode;
readonly host: RxNode;
instance?: RxNodeInstance<E, O> | undefined;
old?: RxNode<E, O>;
prevSibling?: RxNode;
get parent(): RxNode;
get revision(): number;
get native(): E | undefined;
set native(e: E | undefined);
get resizeObserver(): ResizeObserver | undefined;
constructor(id: string, args: unknown, render: Render<E, O>, superRender: SuperRender<E, O> | undefined, priority: number, childrenShuffling: boolean, type: RxNodeType<E, O>, inline: boolean, creator: RxNode, host: RxNode, instance?: RxNodeInstance<E, O> | undefined);
}