@synet/fs
Version:
Robust, battle-tested filesystem abstraction for Node.js
37 lines (36 loc) • 1.33 kB
TypeScript
import { type Event, EventEmitter } from "@synet/unit";
import type { IAsyncFileSystem } from "./async-filesystem.interface";
export declare enum FilesystemEventTypes {
EXISTS = "file.exists",
READ = "file.read",
WRITE = "file.write",
DELETE = "file.delete",
CHMOD = "file.chmod",
ENSURE_DIR = "file.ensureDir",
DELETE_DIR = "file.deleteDir",
READ_DIR = "file.readDir"
}
export interface FilesystemEvent extends Event {
type: FilesystemEventTypes;
data: {
filePath: string;
result?: unknown;
};
}
export declare class ObservableFileSystem implements IAsyncFileSystem {
private baseFilesystem;
private events?;
private eventEmitter;
constructor(baseFilesystem: IAsyncFileSystem, events?: FilesystemEventTypes[] | undefined);
getEventEmitter(): EventEmitter<FilesystemEvent>;
private shouldEmit;
exists(filename: string): Promise<boolean>;
readFile(filename: string): Promise<string>;
writeFile(filename: string, data: string): Promise<void>;
deleteFile(filename: string): Promise<void>;
deleteDir(dirPath: string): Promise<void>;
ensureDir(dirPath: string): Promise<void>;
readDir(dirPath: string): Promise<string[]>;
chmod(path: string, mode: number): Promise<void>;
clear?(dirPath: string): Promise<void>;
}