@zenfs/core
Version:
A filesystem, anywhere
44 lines (43 loc) • 1.95 kB
TypeScript
import { Index } from './file_index.js';
import { FileSystem, type CreationOptions, type UsageInfo } from './filesystem.js';
import { Inode, type InodeLike } from './inode.js';
/**
* A file system that uses an `Index` for metadata.
* @category Internals
* @internal
*/
export declare abstract class IndexFS extends FileSystem {
readonly index: Index;
constructor(id: number, name: string, index?: Index);
usage(): UsageInfo;
/**
* Finds all the paths in the index that need to be moved for a rename
*/
private pathsForRename;
rename(oldPath: string, newPath: string): Promise<void>;
renameSync(oldPath: string, newPath: string): void;
stat(path: string): Promise<Inode>;
statSync(path: string): Inode;
touch(path: string, metadata: InodeLike): Promise<void>;
touchSync(path: string, metadata: InodeLike): void;
protected _remove(path: string, isUnlink: boolean): void;
protected abstract remove(path: string): Promise<void>;
protected abstract removeSync(path: string): void;
unlink(path: string): Promise<void>;
unlinkSync(path: string): void;
rmdir(path: string): Promise<void>;
rmdirSync(path: string): void;
protected create(path: string, options: CreationOptions): Inode;
createFile(path: string, options: CreationOptions): Promise<InodeLike>;
createFileSync(path: string, options: CreationOptions): InodeLike;
protected _mkdir?(path: string, options: CreationOptions): Promise<void>;
protected _mkdirSync?(path: string, options: CreationOptions): void;
mkdir(path: string, options: CreationOptions): Promise<InodeLike>;
mkdirSync(path: string, options: CreationOptions): InodeLike;
link(target: string, link: string): Promise<void>;
linkSync(target: string, link: string): void;
readdir(path: string): Promise<string[]>;
readdirSync(path: string): string[];
sync(): Promise<void>;
syncSync(): void;
}