@foxpage/foxpage-manager
Version:
foxpage resource manager
73 lines (72 loc) • 2.08 kB
TypeScript
import { Application, ContentRelationInfo, Page, PageManager, Relations, ResourceUpdateInfo } from '@foxpage/foxpage-types';
import { ManagerBaseImpl } from '../common';
import { PageInstance } from './page';
/**
* page manager
*
* @export
* @class PageManager
*/
export declare class PageManagerImpl extends ManagerBaseImpl<Page> implements PageManager {
constructor(app: Application);
/**
* add page to manager
*
* @param {Page} page
*/
addPage(page: Page): PageInstance;
/**
* remove page from manager
*
* @param {string[]} pageIds
*/
removePages(pageIds: string[]): void;
/**
* get page from local first
* no exist will fetch from server
*
* @param {string} pageId
* @return {*} {(Page | undefined)}
*/
getPage(pageId: string): Promise<Page | undefined>;
/**
* get pages
*
* @param {string[]} pageIds
* @return {*} {Promise<Page[]>}
*/
getPages(pageIds: string[]): Promise<Page[]>;
/**
* fetch draft pages
*
* @param {string[]} pageIds
* @param {string} [locale]
* @return {*} {Promise<ContentRelationInfo[]>}
*/
getDraftPages(pageIds: string[], locale?: string): Promise<ContentRelationInfo[]>;
/**
* fetch preview version pages
* @param pageIds
* @param version
* @param locale
* @return {*} {Promise<ContentRelationInfo>}
*/
getPreviewPages(pageId: string, version: number, locale?: string): Promise<ContentRelationInfo>;
/**
* fetch pages from server
*
* @return {*} {Promise<Page[]>}
*/
freshPages(pageIds?: string[]): Promise<Page[]>;
/**
* first request page will return the all relations
*
* @protected
* @param {string[]} pageIds
*/
protected onFetch(pageIds: string[]): Promise<PageInstance[]>;
protected onPull(data: ResourceUpdateInfo): Promise<void>;
protected onStash(data: Relations): void;
protected createInstance(data: Page): Promise<PageInstance>;
private newPage;
}