26 lines
525 B
TypeScript
26 lines
525 B
TypeScript
export type YarHTMLTagName = keyof React.JSX.IntrinsicElements | string;
|
|
|
|
export enum YarEffectTag {
|
|
Update,
|
|
Placement,
|
|
Deletion,
|
|
}
|
|
|
|
export type YarProps = {
|
|
children: YarElement[];
|
|
[key: string]: unknown;
|
|
};
|
|
|
|
export interface YarElement {
|
|
type: YarHTMLTagName;
|
|
props: YarProps;
|
|
}
|
|
|
|
export interface YarFiber extends YarElement {
|
|
parent: null | YarFiber;
|
|
dom: null | HTMLElement | Text;
|
|
child: null | YarFiber;
|
|
sibling: null | YarFiber;
|
|
alternate?: null | YarFiber;
|
|
effectTag: null | YarEffectTag;
|
|
}
|