@foxpage/foxpage-manager
Version:
foxpage resource manager
61 lines (60 loc) • 1.97 kB
TypeScript
import { Application, Material, MaterialManager, Relations, ResourceUpdateInfo } from '@foxpage/foxpage-types';
import { ManagerBaseImpl } from '../common';
import { MaterialInstance } from './material';
/**
* material manager
*
* @export
* @class MaterialManager
* @extends {ManagerBaseImpl}
*/
export declare class MaterialManagerImpl extends ManagerBaseImpl<Material> implements MaterialManager {
/**
* content id & fileId+locale map
*
* @private
*/
private contentMap;
constructor(app: Application);
/**
* add material to manager
*
* @param {Material} material
*/
addMaterial(material: Material): MaterialInstance;
/**
* remove local material via materialKeys
*
* @param {string[]} materialKeys
*/
removeMaterials(materialKeys: string[]): void;
/**
* get material from local first, not exist will fetch from server
*
* @param {string} materialFileIds fileId
* @param {Record<string, any>} opt contain locale
* @return {*} {(Promise<Material | undefined>)}
*/
getMaterial(materialFileIds: string, opt: Record<string, any>): Promise<Material | undefined>;
/**
* get materials
*
* @param {string[]} materialFileIds fileIds
* @param {Record<string, any>} opt contain locale
* @return {*} {Promise<Material[]>}
*/
getMaterials(materialFileIds: string[], opt: Record<string, any>): Promise<Material[]>;
/**
* fetch application material
*/
freshMaterials(materialKey: string[]): Promise<Material[]>;
protected onFetch(list: string[]): Promise<MaterialInstance[]>;
protected onPull(data: ResourceUpdateInfo): Promise<void>;
protected onStash(data: Relations): void;
protected createInstance(data: Material): Promise<MaterialInstance>;
private newMaterial;
private addMaterialKeys;
private removeMaterialKeys;
private getMaterialIds;
destroy(): void;
}