UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

331 lines (330 loc) 10.2 kB
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 };