@foxpage/foxpage-node-sdk
Version:
foxpage node sdk
121 lines (120 loc) • 2.76 kB
TypeScript
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<void>;
/**
* get loaded components
*
* @return {*} {Map<string, FoxpageComponent>}
*/
getLoadedComponents(): Map<string, FoxpageComponent>;
/**
* get loaded dependencies
*
* @return {*} {Map<string, FoxpageComponent>}
*/
getLoadedDependencies(): Map<string, FoxpageComponent>;
/**
* destroy: clear all source
*
*/
destroy(): Promise<void>;
/**
* download the missed packages
*
* @private
* @return {*}
*/
private downloadMisses;
/**
* resolve the missed packages
*
* @private
* @param {(Map<string, Package | null>)} 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;
}