@foxpage/foxpage-manager
Version:
foxpage resource manager
49 lines (48 loc) • 1.52 kB
TypeScript
import { Application, Relations, ResourceUpdateInfo, Template, TemplateManager } from '@foxpage/foxpage-types';
import { ManagerBaseImpl } from '../common';
import { TemplateInstance } from './template';
/**
* template manager
*
* @export
* @class TemplateManager
*/
export declare class TemplateManagerImpl extends ManagerBaseImpl<Template> implements TemplateManager {
constructor(app: Application);
/**
* add template to manager
*
* @param {Template} template
*/
addTemplate(template: Template): TemplateInstance;
/**
* get template
* if not exist local, will fetch from server then cache to local
* @param {string} templateId
*/
getTemplate(templateId: string): Promise<Template | undefined>;
/**
* get templates batch
*
* @param {string[]} templateIds
* @return {*} {Promise<Template[]>}
*/
getTemplates(templateIds: string[]): Promise<Template[]>;
/**
* remove template
*
* @param {string[]} templateIds
*/
removeTemplates(templateIds: string[]): void;
/**
* fetch templates from server
*
* @return {*} Promise<Template[]>
*/
freshTemplates(templateIds?: string[]): Promise<Template[]>;
protected onFetch(templateIds?: string[]): Promise<Template[]>;
protected onPull(data: ResourceUpdateInfo): Promise<void>;
protected onStash(data: Relations): void;
protected createInstance(data: Template): Promise<TemplateInstance>;
private newTemplate;
}