@zenfs/core
Version:
A filesystem, anywhere
32 lines (31 loc) • 1.4 kB
TypeScript
import type { FileSystem } from '../internal/filesystem.js';
import type { InodeLike } from '../internal/inode.js';
import type { Mixin } from './shared.js';
/**
* @internal
*/
export interface ReadonlyMixin {
rename(oldPath: string, newPath: string): Promise<never>;
renameSync(oldPath: string, newPath: string): never;
createFile(path: string, flag: string, mode: number): Promise<never>;
createFileSync(path: string, flag: string, mode: number): never;
unlink(path: string): Promise<never>;
unlinkSync(path: string): never;
rmdir(path: string): Promise<never>;
rmdirSync(path: string): never;
mkdir(path: string, mode: number): Promise<never>;
mkdirSync(path: string, mode: number): never;
link(srcpath: string, dstpath: string): Promise<never>;
linkSync(srcpath: string, dstpath: string): never;
touch(path: string, metadata: Readonly<InodeLike>): Promise<never>;
touchSync(path: string, metadata: Readonly<InodeLike>): never;
sync(): Promise<never>;
syncSync(): never;
write(path: string, buffer: Uint8Array, offset: number): Promise<never>;
writeSync(path: string, buffer: Uint8Array, offset: number): never;
}
/**
* Implements the non-readonly methods to throw `EROFS`
* @category Internals
*/
export declare function Readonly<T extends abstract new (...args: any[]) => FileSystem>(FS: T): Mixin<T, ReadonlyMixin>;