import { Application, ComponentLoader, ComponentLoadOption, FoxpageComponent, StructureNode } from '@foxpage/foxpage-types'; /** * component loader * * @export * @class ComponentLoaderImpl * @implements {ComponentLoader} */ export declare class ComponentLoaderImpl implements ComponentLoader { app?: Application; opt: ComponentLoadOption; /** * the loaded components map * * @private` */ private loadedMap; /** * miss load componentMap * * @private */ private missLoadMap; /** * id -> version map * * @private */ private resolvedVersionMap; /** * all dependencies * "name":"version" list * @private * @type {string[]} */ private dependencies; /** * dependencies loaded map * * @private */ private loadedDependencyMap; /** * dependencies miss load * key: "name":"version", value: {name, version} * @private * @type {FPPackageDependency[]} */ private missLoadDependencyMap; /** * for record the missed package version that had fetched from server * "name":"version" | "name":"" -> "name":"version", * @private */ private missedVersionMap; private logger; constructor(appId: string, opt: ComponentLoadOption); /** * load components * @param {StructureNode[]} schemas */ load(schemas: StructureNode[]): Promise; /** * get loaded components * * @return {*} {Map} */ getLoadedComponents(): Map; /** * get loaded dependencies * * @return {*} {Map} */ getLoadedDependencies(): Map; /** * destroy: clear all source * */ destroy(): Promise; /** * download the missed packages * * @private * @return {*} */ private downloadMisses; /** * resolve the missed packages * * @private * @param {(Map)} loadedMap */ private resolveMisses; /** * resolve the component * for divide the available or invalid * @private * @param {StructureNode[]} schemas */ private resolveComponents; /** * resolve the dependencies * * @private */ private resolveDependencies; /** * get the missed packages * * @private * @return {PackageNamedVersion} namedVersions */ private getMissedPackages; private componentFormatter; private generateStructureNode; private setResolveVersion; private isComponent; private generateKey; private splitKey; }