UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

186 lines (185 loc) 4.51 kB
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; }