/** * ComponentClass 解析器 * * 从根 ComponentClass 递归搜索和解析所有 ComponentClass, * 形成**单个** SanSourceFile 实例,包含所有的 ComponentInfo 列表。 */ import { Component, ComponentClazz, DefinedComponentClass } from 'san'; import { DynamicSanSourceFile } from '../models/san-source-file'; import { ComponentType, DynamicComponentInfo } from '../models/component-info'; import { DynamicComponentReference } from '../models/component-reference'; export declare class ComponentClassParser { private readonly root; private readonly filePath; private id; private cids; constructor(root: Component<{}> | DefinedComponentClass<{}>, filePath: string); parse(): DynamicSanSourceFile; /** * 从组件 class 得到组件 component info */ createComponentInfoFromComponentClass(componentClass: Component<{}> | DefinedComponentClass<{}>, id: string): DynamicComponentInfo; getComponentType(component: ComponentClazz): ComponentType; /** * 从组件 class 得到子组件 class */ getChildComponentClasses(parentComponentClass: Component<{}> | DefinedComponentClass<{}>, selfId: string): Map; /** * 由于拿到的是类,并不知道每个递归到的 Class 是从哪个文件来的, * 因此生成一个递增的 id 来标识它。 */ private getOrSetID; }