forked from olcxjas-softworks/LarpixClient
49 lines
No EOL
1.6 KiB
TypeScript
49 lines
No EOL
1.6 KiB
TypeScript
/// <reference types="node" />
|
|
/// <reference types="node" />
|
|
import { MobileProject } from './project';
|
|
export interface VFSDiff {
|
|
file?: VFSFile;
|
|
old?: string;
|
|
new?: string;
|
|
patch?: string;
|
|
}
|
|
export declare class VFSStorable {
|
|
}
|
|
/**
|
|
* Reference to a file and its data (which can be of any type) in the VFS
|
|
*/
|
|
export declare class VFSRef<T extends VFSStorable> {
|
|
private filename;
|
|
private data;
|
|
private commitFn;
|
|
private diffFn?;
|
|
buffer: Buffer | null;
|
|
modified: boolean;
|
|
constructor(filename: string, data: T | null, commitFn: (file: VFSFile) => Promise<void>, diffFn?: ((file: VFSFile) => Promise<VFSDiff>) | undefined);
|
|
getFilename(): string;
|
|
getData(): T | null;
|
|
isModified(): boolean;
|
|
setData(data: T): void;
|
|
commit(): Promise<void>;
|
|
diff(): Promise<VFSDiff>;
|
|
}
|
|
export type VFSFile = VFSRef<string | VFSStorable>;
|
|
/**
|
|
* Simple virtual filesystem to share files across operations and
|
|
* keep track of modifications over time
|
|
*/
|
|
export declare class VFS {
|
|
private openFiles;
|
|
constructor();
|
|
open<T extends VFSStorable>(filename: string, data: T, commitFn: (file: VFSFile) => Promise<void>, diffFn?: (file: VFSFile) => Promise<VFSDiff>): VFSRef<T>;
|
|
get<T extends VFSStorable>(filename: string): VFSRef<T> | null;
|
|
isOpen(filename: string): boolean;
|
|
all(): {
|
|
[key: string]: VFSFile;
|
|
};
|
|
commitAll(project: MobileProject): Promise<void>;
|
|
diffAll(): Promise<VFSDiff[]>;
|
|
set(filename: string, data: string | VFSStorable): void;
|
|
close(ref: VFSFile): void;
|
|
}
|
|
//# sourceMappingURL=vfs.d.ts.map
|