@foxpage/foxpage-manager
Version:
foxpage resource manager
135 lines (134 loc) • 3.38 kB
TypeScript
import { Messages } from '@foxpage/foxpage-shared';
import { Application, AppResource, FoxRoute, FPApplication, Logger, Manager, ManagerOption } from '@foxpage/foxpage-types';
/**
* manager
*
* @export
* @class Manager
*/
export declare class ManagerImpl implements Manager {
/**
* managed application
*
* @type {Map<string, Application>}
*/
private applicationMap;
/**
* application slug map
* for get app by name fast
* @private
* @type {Map<string, string>}
*/
private applicationSlugMap;
/**
* application route & slug maps
* for get app slug by routes
* @private
* @type {Map<string, RouteSlugData[]>}
*/
private appRouteSlugMap;
/**
* message
*
* @type {Messages}
*/
messages: Messages;
/**
* logger
*
* @type {Logger}
*/
logger?: Logger;
settings: ManagerOption['settings'];
options?: ManagerOption;
private pluginDir;
private pluginManager;
constructor(opt: ManagerOption);
get hooks(): import("@foxpage/foxpage-types").FoxpageHooks | undefined;
/**
* prepare
* load plugins
*
* @memberof ManagerImpl
*/
prepare(opt?: ManagerOption): Promise<void>;
/**
* new applications
*
* @param {ManagerOption['apps']} appMates
*/
registerApplications(appMates: ManagerOption['apps']): Promise<void>;
/**
* un register apps
*
* @param {string[]} appIds
*/
unRegisterApplications(appIds: string[]): void;
/**
* remove applications from manager
*
* @param {string[]} [appIds=[]]
*/
removeApplications(appIds?: string[]): void;
/**
* if exist application
*
* @param {string} appId
* @return {*} {boolean}
*/
existApplication(appId: string): boolean;
/**
* if exist application via app slug
*
* @param {string} slug
* @return {*} {boolean}
*/
/** */
existApplicationBySlug(slug: string): boolean;
/**
* find application via appId
*
* @param {string} appId
* @return {(Application | undefined)}
*/
getApplication(appId: string): Application | undefined;
/**
* get application via app slug
*
* @param {string} slug
* @return {*} {(Application | undefined)}
*/
getApplicationBySlug(slug: string): Application | undefined;
/**
* get application via path
* @param {string} pathname
* @return {*} {(Application | undefined)}
*/
getApplicationByPath(pathname: string): {
app: Application;
matchedRoute?: FoxRoute;
} | undefined;
/**
* find application list
*
* @param {string[]} [appIds=[]]
* @return {Application[]}
*/
getApplications(appIds?: string[]): Application[];
/**
* clear all data
*/
clear(): void;
private registerApplication;
private initAppSourceScheduleStatus;
private generateAppConfig;
private cache;
}
/**
* merge resource
*
* @param {FPApplication['resources']} remoteRes
* @param {AppResource[]} localRes
* @return {*} {Map<string, AppResource>}
*/
export declare const mergeResource: (remoteRes: FPApplication['resources'], localRes: AppResource[]) => Map<string, import("@foxpage/foxpage-types").ApplicationResource>;