UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

135 lines (134 loc) 3.38 kB
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>;