@foxpage/foxpage-manager
Version:
foxpage resource manager
331 lines (330 loc) • 10.2 kB
TypeScript
import { Block, Condition, Content, ContentRelationInfo, FPApplication, FPFile, FPFunction, FPPackage, FPPackageResponse, ManagerOption, Material, PackageFreshOption, PackageNamedVersion, Page, Relations, ResourceUpdateInfo, Tag, Template, TicketCheckData, Variable } from '@foxpage/foxpage-types';
import { FoxpageRequest } from './request';
declare let foxpageDataService: FoxpageDataService;
type RequestApiOption = ManagerOption['dataService'];
/**
* foxpage data service
*
* @export
* @class FoxpageDataService
*/
export declare class FoxpageDataService {
/**
* foxpage webApi request
*
* @protected
* @type {FoxpageRequest}
*/
protected request: FoxpageRequest;
/**
* request option
*/
private option;
constructor(opt: RequestApiOption);
/**
* update request instance
* @param opt
* @param cache if cache the option
*/
update(data?: Partial<RequestApiOption>, cache?: boolean): void;
/**
* fetch app details via appIds
*
* @param {string[]} appIds
* @return {*}
*/
fetchApps(appIds: string[]): Promise<FPApplication[]>;
/**
* fetch changes
*
* @param {string} appId
* @param {number} timestamp
* @return {*} {Promise<{
contents: ResourceUpdateInfo;
timestamp: number;
}>}
*/
fetchContentChanges(appId: string, timestamp: number): Promise<{
contents: ResourceUpdateInfo;
timestamp: number;
}>;
private fetchPackageLives;
private fetchPackageInfos;
/**
* fetch application live package
*
* @param {string} appId
* @param {{ packageIds: string[] }} packageIds
*/
fetchPackages(appId: string, opt: {
packageIds?: string[];
} & Pick<PackageFreshOption, 'strategy' | 'semver'>): Promise<FPPackage[]>;
/**
* fetch packages by name and version
*
* @param {string} appId application id
* @param {{ nameVersions: PackageNamedVersion[] }} { nameVersions }
* @return {Promise<FPPackageResponse[]>}
*/
fetchPackagesByNamedVersions(appId: string, opt: {
nameVersions: PackageNamedVersion[];
isCanary?: boolean;
} & Pick<PackageFreshOption, 'semver'>): Promise<FPPackageResponse[]>;
/**
* fetch application live plugin
*
* @param {string} appId
* @param {{ packageIds: string[] }} packageIds
* @return {Promise<FPPackage[]>}
*/
fetchPlugins(appId: string, opt: {
packageIds?: string[];
} & Pick<PackageFreshOption, 'strategy' | 'semver'>): Promise<FPPackage[]>;
/**
* fetch plugins by name and version
*
* @param {string} appId application id
* @param {{ nameVersions: PackageNamedVersion[] }} { nameVersions }
* @return {Promise<FPPackageResponse[]>}
*/
fetchPluginsByNamedVersions(appId: string, opt: {
nameVersions: PackageNamedVersion[];
isCanary?: boolean;
} & Pick<PackageFreshOption, 'semver'>): Promise<FPPackageResponse[]>;
/**
* fetch application live library
*
* @param {string} appId
* @param {{ packageIds: string[] }} libraryIds
* @return {Promise<FPPackage[]>}
*/
fetchLibraries(appId: string, opt: {
packageIds?: string[];
} & Pick<PackageFreshOption, 'strategy' | 'semver'>): Promise<FPPackage[]>;
/**
* fetch libraries by name and version
*
* @param {string} appId application id
* @param {{ nameVersions: PackageNamedVersion[] }} { nameVersions }
* @return {Promise<FPPackageResponse[]>}
*/
fetchLibrariesByNamedVersions(appId: string, opt: {
nameVersions: PackageNamedVersion[];
isCanary?: boolean;
} & Pick<PackageFreshOption, 'semver'>): Promise<FPPackageResponse[]>;
/**
* fetch application pages
*
* @param {string} appId
* @param {{ pageIds: string[] }} { page content ids }
* @return {Promise<Page[]>}
*/
fetchPages(appId: string, { pageIds }: {
pageIds?: string[];
}): Promise<Page[]>;
/**
* fetch application templates
*
* @param {string} appId
* @param {{ templateIds: string[] }} { template content ids }
* @return {Promise<Template[]>}
*/
fetchTemplates(appId: string, { templateIds }: {
templateIds?: string[];
}): Promise<Template[]>;
/**
* fetch application blocks
*
* @param {string} appId
* @param {{ blockIds: string[] }} { template content ids }
* @return {Promise<Block[]>}
*/
fetchBlocks(appId: string, { blockIds }: {
blockIds?: string[];
}): Promise<Block[]>;
/**
* fetch application content via tags
*
* @param {string} appId
* @param {Tag[]} tags tags
* @return {*} {(Promise<{
content: Content;
contentInfo: Relations;
}>)}
*/
fetchContentInfoByTags(appId: string, fileId: string, pathname: string, tags: Tag[]): Promise<{
content: Content;
contentInfo?: Relations;
}>;
/**
* fetch content by tag
*
* @param {string} appId
* @param {string} pathname
* @param {Tag[]} tags
* @return {*} {Promise<Content>}
*/
fetchContentByTags(appId: string, fileId: string, pathname: string, tags: Tag[]): Promise<Content>;
/**
* fetch application content
* contain contentId and tags
* @param {string} appId
* @param {string[]} contentIds
* @return {*} {Promise<Content[]>}
*/
fetchContents(appId: string, { contentIds }: {
contentIds: string[];
}): Promise<Content[]>;
/**
* fetch application functions
*
* @param {string} appId
* @param {{ functionIds: string[] }} { function content ids }
* @return {*} {Promise<FPFunction[]>}
*/
fetchFunctions(appId: string, { functionIds }: {
functionIds: string[];
}): Promise<FPFunction[]>;
/**
* fetch application conditions
*
* @param {string} appId
* @param {{ conditionIds: string[] }} { condition content ids }
* @return {*} {Promise<Condition[]>}
*/
fetchConditions(appId: string, { conditionIds }: {
conditionIds: string[];
}): Promise<Condition[]>;
/**
* fetch application variables
*
* @param {string} appId
* @param {{ variableIds: string[] }} { variable content ids }
* @return {*} {(Promise<Variable[]>)}
*/
fetchVariables(appId: string, { variableIds }: {
variableIds: string[];
}): Promise<Variable[]>;
/**
* fetch application materials
*
* @param {string} appId
* @param {{ materialIds: string[] }} { material content ids }
* @return {*} {(Promise<Variable[]>)}
*/
fetchMaterials(appId: string, { items, materialIds }: {
items?: Record<string, string>[];
materialIds?: string[];
}): Promise<Material[]>;
/**
* fetch application mocks
*
* @param {string} appId
* @param {{ mockIds: string[] }} { mock content ids }
* @return {*} {(Promise<ContentRelationInfo[]>)}
*/
fetchMocks(appId: string, { mockIds }: {
mockIds: string[];
}): Promise<ContentRelationInfo[]>;
/**
* fetch application draft mocks
* @param appId
* @param params
* @returns
*/
fetchDraftMocks(appId: string, { mockIds }: {
mockIds: string[];
}): Promise<ContentRelationInfo[]>;
/**
* fetch content & relations info
*
* @param {string} appId
* @param {{ contentIds: string[] }} { contentIds }
* @return {*}
*/
fetchPageInfos(appId: string, { contentIds }: {
contentIds: string[];
}): Promise<ContentRelationInfo[]>;
/**
* fetch content & relations info
*
* @param {string} appId
* @param {{ contentIds: string[] }} { contentIds }
* @return {*}
*/
fetchBlockRelationInfos(appId: string, { contentIds }: {
contentIds: string[];
}): Promise<ContentRelationInfo[]>;
/**
* fetch content & relation info in draft status
*
* @param {string} appId
* @param {{ contentIds: string[] }} { contentIds }
* @return {*}
*/
fetchDraftPageInfos(appId: string, { contentIds, locale }: {
contentIds: string[];
locale?: string;
}): Promise<ContentRelationInfo[]>;
/**
* fetch preview version content & relation infos
* @param appId
* @param param
* @returns
*/
fetchPreviewPageInfos(appId: string, { contentId, version, locale }: {
contentId: string;
version: number;
locale?: string;
}): Promise<ContentRelationInfo>;
/**
* fetch block content & relation info in draft status
*
* @param {string} appId
* @param {{ contentIds: string[] }} { contentIds }
* @return {*}
*/
fetchDraftBlockRelationInfos(appId: string, { contentIds }: {
contentIds: string[];
}): Promise<ContentRelationInfo[]>;
/**
* fetch preview version block content & relation infos
* @param appId
* @param param
* @returns
*/
fetchPreviewBlockRelationInfos(appId: string, { contentId, version }: {
contentId: string;
version: number;
}): Promise<ContentRelationInfo>;
/**
* fetch files
*
* @param {string} appId
* @param {{ fileIds: string[] }} { fileIds }
* @return {*}
*/
fetchFiles(appId: string, { fileIds }: {
fileIds: string[];
}): Promise<FPFile[]>;
/**
* ticket check
* @param appId
* @param ticket
* @returns boolean
*/
ticketCheck(ticket: string, data: TicketCheckData): Promise<{
status: boolean;
}>;
}
/**
* create data service
* @param opt data service options
*/
export declare const createFoxpageDataService: (opt: RequestApiOption) => FoxpageDataService;
/**
* get foxpage dataService instance
* @returns {FoxpageDataService}
*/
export declare const getFoxpageDataService: () => FoxpageDataService;
export { foxpageDataService };