@blinkk/editor
Version:
Structured content editor with live previews.
80 lines (79 loc) • 3.24 kB
TypeScript
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>;
}