123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437 |
- /// <reference types="node" />
- import { PathLike, symlink } from 'fs';
- import { Node, Link, File } from './node';
- import Stats from './Stats';
- import Dirent from './Dirent';
- import { TSetTimeout } from './setTimeoutUnref';
- import { Readable, Writable } from 'stream';
- import { constants } from './constants';
- import { EventEmitter } from 'events';
- import { TEncodingExtended, TDataOut } from './encoding';
- export interface IError extends Error {
- code?: string;
- }
- export declare type TFileId = PathLike | number;
- export declare type TData = TDataOut | Uint8Array;
- export declare type TFlags = string | number;
- export declare type TMode = string | number;
- export declare type TTime = number | string | Date;
- export declare type TCallback<TData> = (error?: IError | null, data?: TData) => void;
- export declare enum FLAGS {
- r,
- 'r+',
- rs,
- sr,
- 'rs+',
- 'sr+',
- w,
- wx,
- xw,
- 'w+',
- 'wx+',
- 'xw+',
- a,
- ax,
- xa,
- 'a+',
- 'ax+',
- 'xa+'
- }
- export declare type TFlagsCopy = typeof constants.COPYFILE_EXCL | typeof constants.COPYFILE_FICLONE | typeof constants.COPYFILE_FICLONE_FORCE;
- export declare function flagsToNumber(flags: TFlags | undefined): number;
- export interface IOptions {
- encoding?: BufferEncoding | TEncodingExtended;
- }
- export interface IFileOptions extends IOptions {
- mode?: TMode;
- flag?: TFlags;
- }
- export interface IReadFileOptions extends IOptions {
- flag?: string;
- }
- export interface IWriteFileOptions extends IFileOptions {
- }
- export interface IAppendFileOptions extends IFileOptions {
- }
- export interface IRealpathOptions {
- encoding?: TEncodingExtended;
- }
- export interface IWatchFileOptions {
- persistent?: boolean;
- interval?: number;
- }
- export interface IReadStreamOptions {
- flags?: TFlags;
- encoding?: BufferEncoding;
- fd?: number;
- mode?: TMode;
- autoClose?: boolean;
- start?: number;
- end?: number;
- }
- export interface IWriteStreamOptions {
- flags?: TFlags;
- defaultEncoding?: BufferEncoding;
- fd?: number;
- mode?: TMode;
- autoClose?: boolean;
- start?: number;
- }
- export interface IWatchOptions extends IOptions {
- persistent?: boolean;
- recursive?: boolean;
- }
- export interface IMkdirOptions {
- mode?: TMode;
- recursive?: boolean;
- }
- export interface IRmdirOptions {
- recursive?: boolean;
- }
- export interface IRmOptions {
- force?: boolean;
- maxRetries?: number;
- recursive?: boolean;
- retryDelay?: number;
- }
- export interface IReaddirOptions extends IOptions {
- withFileTypes?: boolean;
- }
- export interface IStatOptions {
- bigint?: boolean;
- throwIfNoEntry?: boolean;
- }
- export interface IFStatOptions {
- bigint?: boolean;
- }
- export declare function pathToFilename(path: PathLike): string;
- export declare function filenameToSteps(filename: string, base?: string): string[];
- export declare function pathToSteps(path: PathLike): string[];
- export declare function dataToStr(data: TData, encoding?: string): string;
- export declare function dataToBuffer(data: TData, encoding?: string): Buffer;
- export declare function bufferToEncoding(buffer: Buffer, encoding?: TEncodingExtended): TDataOut;
- export declare function toUnixTimestamp(time: any): any;
- declare type DirectoryContent = string | null;
- export interface DirectoryJSON {
- [key: string]: DirectoryContent;
- }
- export interface NestedDirectoryJSON {
- [key: string]: DirectoryContent | NestedDirectoryJSON;
- }
- /**
- * `Volume` represents a file system.
- */
- export declare class Volume {
- static fromJSON(json: DirectoryJSON, cwd?: string): Volume;
- static fromNestedJSON(json: NestedDirectoryJSON, cwd?: string): Volume;
- /**
- * Global file descriptor counter. UNIX file descriptors start from 0 and go sequentially
- * up, so here, in order not to conflict with them, we choose some big number and descrease
- * the file descriptor of every new opened file.
- * @type {number}
- * @todo This should not be static, right?
- */
- static fd: number;
- root: Link;
- ino: number;
- inodes: {
- [ino: number]: Node;
- };
- releasedInos: number[];
- fds: {
- [fd: number]: File;
- };
- releasedFds: number[];
- maxFiles: number;
- openFiles: number;
- StatWatcher: new () => StatWatcher;
- ReadStream: new (...args: any[]) => IReadStream;
- WriteStream: new (...args: any[]) => IWriteStream;
- FSWatcher: new () => FSWatcher;
- props: {
- Node: new (...args: any[]) => Node;
- Link: new (...args: any[]) => Link;
- File: new (...args: any[]) => File;
- };
- private promisesApi;
- get promises(): import("./promises").IPromisesAPI;
- constructor(props?: {});
- createLink(): Link;
- createLink(parent: Link, name: string, isDirectory?: boolean, perm?: number): Link;
- deleteLink(link: Link): boolean;
- private newInoNumber;
- private newFdNumber;
- createNode(isDirectory?: boolean, perm?: number): Node;
- private getNode;
- private deleteNode;
- genRndStr(): any;
- getLink(steps: string[]): Link | null;
- getLinkOrThrow(filename: string, funcName?: string): Link;
- getResolvedLink(filenameOrSteps: string | string[]): Link | null;
- getResolvedLinkOrThrow(filename: string, funcName?: string): Link;
- resolveSymlinks(link: Link): Link | null;
- private getLinkAsDirOrThrow;
- private getLinkParent;
- private getLinkParentAsDirOrThrow;
- private getFileByFd;
- private getFileByFdOrThrow;
- /**
- * @todo This is not used anymore. Remove.
- */
- private wrapAsync;
- private _toJSON;
- toJSON(paths?: PathLike | PathLike[], json?: {}, isRelative?: boolean): DirectoryJSON;
- fromJSON(json: DirectoryJSON, cwd?: string): void;
- fromNestedJSON(json: NestedDirectoryJSON, cwd?: string): void;
- reset(): void;
- mountSync(mountpoint: string, json: DirectoryJSON): void;
- private openLink;
- private openFile;
- private openBase;
- openSync(path: PathLike, flags: TFlags, mode?: TMode): number;
- open(path: PathLike, flags: TFlags, /* ... */ callback: TCallback<number>): any;
- open(path: PathLike, flags: TFlags, mode: TMode, callback: TCallback<number>): any;
- private closeFile;
- closeSync(fd: number): void;
- close(fd: number, callback: TCallback<void>): void;
- private openFileOrGetById;
- private readBase;
- readSync(fd: number, buffer: Buffer | Uint8Array, offset: number, length: number, position: number): number;
- read(fd: number, buffer: Buffer | Uint8Array, offset: number, length: number, position: number, callback: (err?: Error | null, bytesRead?: number, buffer?: Buffer | Uint8Array) => void): void;
- private readFileBase;
- readFileSync(file: TFileId, options?: IReadFileOptions | string): TDataOut;
- readFile(id: TFileId, callback: TCallback<TDataOut>): any;
- readFile(id: TFileId, options: IReadFileOptions | string, callback: TCallback<TDataOut>): any;
- private writeBase;
- writeSync(fd: number, buffer: Buffer | Uint8Array, offset?: number, length?: number, position?: number): number;
- writeSync(fd: number, str: string, position?: number, encoding?: BufferEncoding): number;
- write(fd: number, buffer: Buffer | Uint8Array, callback: (...args: any[]) => void): any;
- write(fd: number, buffer: Buffer | Uint8Array, offset: number, callback: (...args: any[]) => void): any;
- write(fd: number, buffer: Buffer | Uint8Array, offset: number, length: number, callback: (...args: any[]) => void): any;
- write(fd: number, buffer: Buffer | Uint8Array, offset: number, length: number, position: number, callback: (...args: any[]) => void): any;
- write(fd: number, str: string, callback: (...args: any[]) => void): any;
- write(fd: number, str: string, position: number, callback: (...args: any[]) => void): any;
- write(fd: number, str: string, position: number, encoding: BufferEncoding, callback: (...args: any[]) => void): any;
- private writeFileBase;
- writeFileSync(id: TFileId, data: TData, options?: IWriteFileOptions): void;
- writeFile(id: TFileId, data: TData, callback: TCallback<void>): any;
- writeFile(id: TFileId, data: TData, options: IWriteFileOptions | string, callback: TCallback<void>): any;
- private linkBase;
- private copyFileBase;
- copyFileSync(src: PathLike, dest: PathLike, flags?: TFlagsCopy): void;
- copyFile(src: PathLike, dest: PathLike, callback: TCallback<void>): any;
- copyFile(src: PathLike, dest: PathLike, flags: TFlagsCopy, callback: TCallback<void>): any;
- linkSync(existingPath: PathLike, newPath: PathLike): void;
- link(existingPath: PathLike, newPath: PathLike, callback: TCallback<void>): void;
- private unlinkBase;
- unlinkSync(path: PathLike): void;
- unlink(path: PathLike, callback: TCallback<void>): void;
- private symlinkBase;
- symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type): void;
- symlink(target: PathLike, path: PathLike, callback: TCallback<void>): any;
- symlink(target: PathLike, path: PathLike, type: symlink.Type, callback: TCallback<void>): any;
- private realpathBase;
- realpathSync(path: PathLike, options?: IRealpathOptions | string): TDataOut;
- realpath(path: PathLike, callback: TCallback<TDataOut>): any;
- realpath(path: PathLike, options: IRealpathOptions | string, callback: TCallback<TDataOut>): any;
- private lstatBase;
- lstatSync(path: PathLike): Stats<number>;
- lstatSync(path: PathLike, options: {
- throwIfNoEntry?: true | undefined;
- }): Stats<number>;
- lstatSync(path: PathLike, options: {
- bigint: false;
- throwIfNoEntry?: true | undefined;
- }): Stats<number>;
- lstatSync(path: PathLike, options: {
- bigint: true;
- throwIfNoEntry?: true | undefined;
- }): Stats<bigint>;
- lstatSync(path: PathLike, options: {
- throwIfNoEntry: false;
- }): Stats<number> | undefined;
- lstatSync(path: PathLike, options: {
- bigint: false;
- throwIfNoEntry: false;
- }): Stats<number> | undefined;
- lstatSync(path: PathLike, options: {
- bigint: true;
- throwIfNoEntry: false;
- }): Stats<bigint> | undefined;
- lstat(path: PathLike, callback: TCallback<Stats>): void;
- lstat(path: PathLike, options: IStatOptions, callback: TCallback<Stats>): void;
- private statBase;
- statSync(path: PathLike): Stats<number>;
- statSync(path: PathLike, options: {
- throwIfNoEntry?: true;
- }): Stats<number>;
- statSync(path: PathLike, options: {
- throwIfNoEntry: false;
- }): Stats<number> | undefined;
- statSync(path: PathLike, options: {
- bigint: false;
- throwIfNoEntry?: true;
- }): Stats<number>;
- statSync(path: PathLike, options: {
- bigint: true;
- throwIfNoEntry?: true;
- }): Stats<bigint>;
- statSync(path: PathLike, options: {
- bigint: false;
- throwIfNoEntry: false;
- }): Stats<number> | undefined;
- statSync(path: PathLike, options: {
- bigint: true;
- throwIfNoEntry: false;
- }): Stats<bigint> | undefined;
- stat(path: PathLike, callback: TCallback<Stats>): void;
- stat(path: PathLike, options: IStatOptions, callback: TCallback<Stats>): void;
- private fstatBase;
- fstatSync(fd: number): Stats<number>;
- fstatSync(fd: number, options: {
- bigint: false;
- }): Stats<number>;
- fstatSync(fd: number, options: {
- bigint: true;
- }): Stats<bigint>;
- fstat(fd: number, callback: TCallback<Stats>): void;
- fstat(fd: number, options: IFStatOptions, callback: TCallback<Stats>): void;
- private renameBase;
- renameSync(oldPath: PathLike, newPath: PathLike): void;
- rename(oldPath: PathLike, newPath: PathLike, callback: TCallback<void>): void;
- private existsBase;
- existsSync(path: PathLike): boolean;
- exists(path: PathLike, callback: (exists: boolean) => void): void;
- private accessBase;
- accessSync(path: PathLike, mode?: number): void;
- access(path: PathLike, callback: TCallback<void>): any;
- access(path: PathLike, mode: number, callback: TCallback<void>): any;
- appendFileSync(id: TFileId, data: TData, options?: IAppendFileOptions | string): void;
- appendFile(id: TFileId, data: TData, callback: TCallback<void>): any;
- appendFile(id: TFileId, data: TData, options: IAppendFileOptions | string, callback: TCallback<void>): any;
- private readdirBase;
- readdirSync(path: PathLike, options?: IReaddirOptions | string): TDataOut[] | Dirent[];
- readdir(path: PathLike, callback: TCallback<TDataOut[] | Dirent[]>): any;
- readdir(path: PathLike, options: IReaddirOptions | string, callback: TCallback<TDataOut[] | Dirent[]>): any;
- private readlinkBase;
- readlinkSync(path: PathLike, options?: IOptions): TDataOut;
- readlink(path: PathLike, callback: TCallback<TDataOut>): any;
- readlink(path: PathLike, options: IOptions, callback: TCallback<TDataOut>): any;
- private fsyncBase;
- fsyncSync(fd: number): void;
- fsync(fd: number, callback: TCallback<void>): void;
- private fdatasyncBase;
- fdatasyncSync(fd: number): void;
- fdatasync(fd: number, callback: TCallback<void>): void;
- private ftruncateBase;
- ftruncateSync(fd: number, len?: number): void;
- ftruncate(fd: number, callback: TCallback<void>): any;
- ftruncate(fd: number, len: number, callback: TCallback<void>): any;
- private truncateBase;
- truncateSync(id: TFileId, len?: number): void;
- truncate(id: TFileId, callback: TCallback<void>): any;
- truncate(id: TFileId, len: number, callback: TCallback<void>): any;
- private futimesBase;
- futimesSync(fd: number, atime: TTime, mtime: TTime): void;
- futimes(fd: number, atime: TTime, mtime: TTime, callback: TCallback<void>): void;
- private utimesBase;
- utimesSync(path: PathLike, atime: TTime, mtime: TTime): void;
- utimes(path: PathLike, atime: TTime, mtime: TTime, callback: TCallback<void>): void;
- private mkdirBase;
- /**
- * Creates directory tree recursively.
- * @param filename
- * @param modeNum
- */
- private mkdirpBase;
- mkdirSync(path: PathLike, options?: TMode | IMkdirOptions): void;
- mkdir(path: PathLike, callback: TCallback<void>): any;
- mkdir(path: PathLike, mode: TMode | IMkdirOptions, callback: TCallback<void>): any;
- mkdirpSync(path: PathLike, mode?: TMode): void;
- mkdirp(path: PathLike, callback: TCallback<void>): any;
- mkdirp(path: PathLike, mode: TMode, callback: TCallback<void>): any;
- private mkdtempBase;
- mkdtempSync(prefix: string, options?: IOptions): TDataOut;
- mkdtemp(prefix: string, callback: TCallback<void>): any;
- mkdtemp(prefix: string, options: IOptions, callback: TCallback<void>): any;
- private rmdirBase;
- rmdirSync(path: PathLike, options?: IRmdirOptions): void;
- rmdir(path: PathLike, callback: TCallback<void>): any;
- rmdir(path: PathLike, options: IRmdirOptions, callback: TCallback<void>): any;
- private rmBase;
- rmSync(path: PathLike, options?: IRmOptions): void;
- rm(path: PathLike, callback: TCallback<void>): void;
- rm(path: PathLike, options: IRmOptions, callback: TCallback<void>): void;
- private fchmodBase;
- fchmodSync(fd: number, mode: TMode): void;
- fchmod(fd: number, mode: TMode, callback: TCallback<void>): void;
- private chmodBase;
- chmodSync(path: PathLike, mode: TMode): void;
- chmod(path: PathLike, mode: TMode, callback: TCallback<void>): void;
- private lchmodBase;
- lchmodSync(path: PathLike, mode: TMode): void;
- lchmod(path: PathLike, mode: TMode, callback: TCallback<void>): void;
- private fchownBase;
- fchownSync(fd: number, uid: number, gid: number): void;
- fchown(fd: number, uid: number, gid: number, callback: TCallback<void>): void;
- private chownBase;
- chownSync(path: PathLike, uid: number, gid: number): void;
- chown(path: PathLike, uid: number, gid: number, callback: TCallback<void>): void;
- private lchownBase;
- lchownSync(path: PathLike, uid: number, gid: number): void;
- lchown(path: PathLike, uid: number, gid: number, callback: TCallback<void>): void;
- private statWatchers;
- watchFile(path: PathLike, listener: (curr: Stats, prev: Stats) => void): StatWatcher;
- watchFile(path: PathLike, options: IWatchFileOptions, listener: (curr: Stats, prev: Stats) => void): StatWatcher;
- unwatchFile(path: PathLike, listener?: (curr: Stats, prev: Stats) => void): void;
- createReadStream(path: PathLike, options?: IReadStreamOptions | string): IReadStream;
- createWriteStream(path: PathLike, options?: IWriteStreamOptions | string): IWriteStream;
- watch(path: PathLike, options?: IWatchOptions | string, listener?: (eventType: string, filename: string) => void): FSWatcher;
- }
- export declare class StatWatcher extends EventEmitter {
- vol: Volume;
- filename: string;
- interval: number;
- timeoutRef?: any;
- setTimeout: TSetTimeout;
- prev: Stats;
- constructor(vol: Volume);
- private loop;
- private hasChanged;
- private onInterval;
- start(path: string, persistent?: boolean, interval?: number): void;
- stop(): void;
- }
- export interface IReadStream extends Readable {
- new (path: PathLike, options: IReadStreamOptions): any;
- open(): any;
- close(callback: TCallback<void>): any;
- bytesRead: number;
- path: string;
- }
- export interface IWriteStream extends Writable {
- bytesWritten: number;
- path: string;
- new (path: PathLike, options: IWriteStreamOptions): any;
- open(): any;
- close(): any;
- }
- export declare class FSWatcher extends EventEmitter {
- _vol: Volume;
- _filename: string;
- _steps: string[];
- _filenameEncoded: TDataOut;
- _recursive: boolean;
- _encoding: BufferEncoding;
- _link: Link;
- _timer: any;
- constructor(vol: Volume);
- private _getName;
- private _onNodeChange;
- private _onParentChild;
- private _emit;
- private _persist;
- start(path: PathLike, persistent?: boolean, recursive?: boolean, encoding?: BufferEncoding): void;
- close(): void;
- }
- export {};
|