UNPKG

@foxpage/foxpage-types

Version:

foxpage sdk types

63 lines (62 loc) 1.92 kB
import { Application } from '../application'; import { Block, Condition, ConditionItem, FPFile, FPFunction, FPFunctionItem, FPPackage, Material, Mock, MockItem, Page, Relation, Tag, Template, Variable, VariableItem } from '../manager'; import { StructureNode } from '../structure'; export interface ContentExtension { extendId?: string; mockId?: string; } export type ContentVersionType = 'page' | 'template' | 'variable' | 'condition' | 'function' | 'block' | 'mock' | 'material'; export interface ContentVersion<T> { id: string; schemas: T[]; relation?: Relation; extension?: ContentExtension; version?: string; versionNumber?: number; name?: string; fileId?: string; type: ContentVersionType; locale?: string; } export interface ContentDetail<T = StructureNode | VariableItem | ConditionItem | FPFunctionItem | MockItem> extends ContentVersion<T> { relationMap?: Map<string, string[]>; templates?: string[]; variables?: string[]; materials?: string[]; sysVariables?: string[]; functions?: string[]; conditions?: string[]; mocks?: string[]; blocks?: string[]; libraries?: string[]; plugins?: string[]; } export interface Content { id: string; tags: Tag[]; fileId: string; title: string; createTime: string; } export interface ContentInfo { pages?: Page[]; templates?: Template[]; variables?: Variable[]; materials?: Material[]; functions?: FPFunction[]; conditions?: Condition[]; files?: FPFile[]; mocks?: Mock[]; blocks?: Block[]; } export type RenderAppInfo = Pick<Application, 'appId' | 'slug' | 'configs'> & { pluginManager?: Application['pluginManager']; }; export interface Relations extends ContentInfo { libraries?: FPPackage[]; plugins?: FPPackage[]; } export interface ContentRelationInfo { content: ContentDetail; relations: Relations; }