UNPKG

@blinkk/editor

Version:

Structured content editor with live previews.

80 lines (79 loc) 3.24 kB
import { ApiProjectTypes, DeviceData, EditorFileData, EmptyData, FileData, LiveEditorApiComponent, MediaFileData, MediaOptions, PingResult, ProjectData, PublishResult, WorkspaceData } from '../editor/api'; import { RemoteMediaConstructor } from '../remoteMedia'; export interface ServerApiComponent { apiBaseUrl: string; baseUrl: string; expandParams(params: Record<string, any>): Record<string, any>; remoteMediaProviders: Array<RemoteMediaConstructor>; resolveApiUrl(path: string): string; resolveUrl(path: string): string; } /** * Example api that returns data through a 'simulated' network. */ export declare class ServerApi implements LiveEditorApiComponent, ServerApiComponent { projectTypes: ApiProjectTypes; remoteMediaProviders: Array<RemoteMediaConstructor>; constructor(); get apiBaseUrl(): string; get baseUrl(): string; /** * Verify that the authentication for services that require auth. * * @returns True if the auth check out. */ checkAuth(): boolean; /** * Specific services may need to add additional params to all of * the api request (such as authentication params.) * * @param params Params being sent to the api. * @returns Updated params to send to the api. */ expandParams(params: Record<string, any>): Record<string, any>; copyFile(originalPath: string, path: string): Promise<FileData>; createFile(path: string): Promise<FileData>; createWorkspace(base: WorkspaceData, workspace: string): Promise<WorkspaceData>; deleteFile(file: FileData): Promise<EmptyData>; getDevices(): Promise<Array<DeviceData>>; getFile(file: FileData): Promise<EditorFileData>; getFiles(): Promise<Array<FileData>>; getFileUrl(file: FileData): Promise<FileData>; getProject(): Promise<ProjectData>; getWorkspace(): Promise<WorkspaceData>; getWorkspaces(): Promise<Array<WorkspaceData>>; loadWorkspace(workspace: WorkspaceData): Promise<WorkspaceData>; publish(workspace: WorkspaceData, data?: Record<string, any>): Promise<PublishResult>; resolveApiUrl(path: string): string; resolveUrl(path: string): string; saveFile(file: EditorFileData, isRawEdit: boolean): Promise<EditorFileData>; uploadFile(file: File, options?: MediaOptions): Promise<MediaFileData>; } /** * Connects to a locally running version of the api. * * This is used when a user is running `npx @blinkk/editor-server` locally. */ export declare class LocalServerApi extends ServerApi { port: number; constructor(port: number); get apiBaseUrl(): string; get baseUrl(): string; ping(): Promise<PingResult>; } /** * Connects to the corresponding api server and maps to the right service * api for the request urls. */ export declare class ServiceServerApi extends ServerApi { branch: string; isDev: boolean; isUnstable: boolean; organization: string; project: string; service: string; constructor(service: string, organization: string, project: string, branch?: string, isUnstable?: boolean, isDev?: boolean); get apiBaseUrl(): string; get baseUrl(): string; loadWorkspace(workspace: WorkspaceData): Promise<WorkspaceData>; }