@synet/fs
Version:
Robust, battle-tested filesystem abstraction for Node.js
38 lines (37 loc) • 1.3 kB
TypeScript
import { type Event, EventEmitter } from "@synet/unit";
import type { FileStats, IFileSystem } from "./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",
STAT = "file.stat"
}
export interface FilesystemEvent extends Event {
type: FilesystemEventTypes;
data: {
filePath: string;
result?: unknown;
};
}
export declare class ObservableFileSystem implements IFileSystem {
private baseFilesystem;
private events?;
private eventEmitter;
constructor(baseFilesystem: IFileSystem, events?: FilesystemEventTypes[] | undefined);
getEventEmitter(): EventEmitter<FilesystemEvent>;
private shouldEmit;
existsSync(filename: string): boolean;
readFileSync(filename: string): string;
writeFileSync(filename: string, data: string): void;
deleteFileSync(filename: string): void;
deleteDirSync(dirPath: string): void;
ensureDirSync(dirPath: string): void;
readDirSync(dirPath: string): string[];
chmodSync(path: string, mode: number): void;
statSync(path: string): FileStats;
}