1
0
silverbullet/common/spaces/space_primitives.ts

32 lines
934 B
TypeScript
Raw Normal View History

import { Plug } from "../../plugos/plug.ts";
import { FileMeta } from "../types.ts";
2022-04-07 13:21:30 +00:00
2023-01-13 14:41:29 +00:00
export type FileEncoding = "utf8" | "arraybuffer" | "dataurl";
2022-09-12 12:50:37 +00:00
export type FileData = ArrayBuffer | string;
2022-04-07 13:21:30 +00:00
export interface SpacePrimitives {
2023-01-13 14:41:29 +00:00
// Returns a list of file meta data as well as the timestamp of this snapshot
2022-09-12 12:50:37 +00:00
fetchFileList(): Promise<FileMeta[]>;
readFile(
2022-04-07 13:21:30 +00:00
name: string,
2022-10-12 09:47:13 +00:00
encoding: FileEncoding,
2022-09-12 12:50:37 +00:00
): Promise<{ data: FileData; meta: FileMeta }>;
getFileMeta(name: string): Promise<FileMeta>;
writeFile(
name: string,
2022-09-12 12:50:37 +00:00
encoding: FileEncoding,
data: FileData,
2023-01-13 14:41:29 +00:00
// Used to decide whether or not to emit change events
2022-10-12 09:47:13 +00:00
selfUpdate?: boolean,
2022-09-12 12:50:37 +00:00
): Promise<FileMeta>;
deleteFile(name: string): Promise<void>;
2022-04-07 13:21:30 +00:00
// Plugs
proxySyscall(plug: Plug<any>, name: string, args: any[]): Promise<any>;
invokeFunction(
plug: Plug<any>,
env: string,
name: string,
2022-10-12 09:47:13 +00:00
args: any[],
2022-04-07 13:21:30 +00:00
): Promise<any>;
}