File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/@trapezedev/project/dist/vfs.d.ts
/// <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