@foxpage/foxpage-manager
Version:
foxpage resource manager
186 lines (185 loc) • 4.51 kB
TypeScript
import { AppConfig, AppEvents, Application, ApplicationOption, AppScheduleDataType, BlockManager, ConditionManager, ContentDetail, CSRPluginManager, FileManager, FPApplication, FunctionManager, GetContentRelationInfoOpt, LibraryManager, Logger, MaterialManager, MockManager, PackageManager, PageManager, PluginManager, RelationInfo, Router, SecurityManager, TagManager, TemplateManager, VariableManager } from '@foxpage/foxpage-types';
import { FPEventEmitterInstance } from '../common';
import { Schedule } from './schedule';
/**
* application
* same to appContext that contains all resource(content,plugins,hooks...) of this application
* @export
* @class ApplicationImpl
* @extends {AppEventsImpl}
* @implements {Application}
*/
export declare class ApplicationImpl extends FPEventEmitterInstance<AppEvents> implements Application {
/**
* application id
*
* @type {string}
*/
readonly appId: string;
/**
* application slug
*
* @type {string}
*/
readonly slug: string;
/**
* foxpage application info
*
* @type {FPApplication}
*/
readonly app: FPApplication;
/**
* file manager
*
* @type {FileManager}
*/
readonly fileManager: FileManager;
/**
* tag resource manager
*
* @type {TagManager}
*/
readonly tagManager: TagManager;
/**
* page resource manager
*
* @type {PageManager}
*/
readonly pageManager: PageManager;
/**
* package resource manager
*
* @type {PackageManager}
*/
readonly packageManager: PackageManager;
/**
* variable manager
*
* @type {VariableManager}
*/
readonly variableManager: VariableManager;
/**
* material manager
*
* @type {MaterialManager}
*/
readonly materialManager: MaterialManager;
/**
* condition manager
*
* @type {ConditionManager}
*/
readonly conditionManager: ConditionManager;
/**
* template resource manager
*
* @type {TemplateManager}
*/
readonly templateManager: TemplateManager;
/**
* function manager
*
* @type {FunctionManager}
*/
readonly functionManager: FunctionManager;
/**
* plugin manager
*
* @type {PluginManager}
*/
readonly pluginManager: PluginManager;
/**
* plugin manager
*
* @type {CSRPluginManager}
*/
readonly csrPluginManager: CSRPluginManager;
/**
* libraryManager
*/
readonly libraryManager: LibraryManager;
/**
* mock manager
*
* @type {MockManager}
*/
readonly mockManager: MockManager;
/**
* block manager
*
* @type {BlockManager}
*/
readonly blockManager: BlockManager;
/**
* router
*
* @type {Router}
*/
readonly routeManager: Router;
/**
* ticket checker
*/
readonly securityManager: SecurityManager;
/**
* logger
*
* @type {Logger}
*/
readonly logger: Logger;
/**
* source update schedule
*
* @type {Schedule<AppScheduleDataType>}
*/
readonly schedule?: Schedule<AppScheduleDataType>;
/**
* application configs
*
* @type {AppConfig}
*/
readonly configs: AppConfig;
readonly hooks: ApplicationOption['hooks'];
readonly resourceMap?: ApplicationOption['resourceMap'];
private reporter;
constructor(app: FPApplication, opt: ApplicationOption);
/**
* application prepare
* fresh templates and packages
*/
prepare(): Promise<void>;
/**
* listen schedule
*
*/
onScheduled(): void;
/**
* get schedule status
*
* @return {boolean}
*/
enableSchedule(): boolean;
/**
* refresh data
*
* @param {ResourceUpdateInfo} updateInfos
*/
refresh(updateInfos: AppScheduleDataType): Promise<void>;
/**
* get content relation data
* contain the deps of variable,condition,functions
* @template T
* @param {ContentDetail<T>} content
* @return {*} {(Promise<RelationInfo | null>)}
*/
getContentRelationInfo(content: ContentDetail, opt?: GetContentRelationInfoOpt): Promise<RelationInfo>;
private getRelations;
private ComposeSysVariable;
private relationGetter;
private relationFilter;
private checkRelationIn;
private initEvents;
/**
* destroy
*/
destroy(): void;
}