UNPKG

@synet/fs

Version:

Robust, battle-tested filesystem abstraction for Node.js

37 lines (36 loc) 1.33 kB
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>; }