diff --git a/src/node/types/callback.ts b/src/node/types/callback.ts index ccde4b7d9..cca55e99e 100644 --- a/src/node/types/callback.ts +++ b/src/node/types/callback.ts @@ -1,10 +1,9 @@ -import type { PathLike, symlink } from 'fs'; import type * as misc from './misc'; import type * as opts from './options'; export interface FsCallbackApi { - open(path: PathLike, flags: misc.TFlags, /* ... */ callback: misc.TCallback); - open(path: PathLike, flags: misc.TFlags, mode: misc.TMode, callback: misc.TCallback); + open(path: misc.PathLike, flags: misc.TFlags, callback: misc.TCallback); + open(path: misc.PathLike, flags: misc.TFlags, mode: misc.TMode, callback: misc.TCallback); close(fd: number, callback: misc.TCallback): void; read( fd: number, @@ -43,24 +42,24 @@ export interface FsCallbackApi { options: opts.IWriteFileOptions | string, callback: misc.TCallback, ); - copyFile(src: PathLike, dest: PathLike, callback: misc.TCallback); - copyFile(src: PathLike, dest: PathLike, flags: misc.TFlagsCopy, callback: misc.TCallback); - link(existingPath: PathLike, newPath: PathLike, callback: misc.TCallback): void; - unlink(path: PathLike, callback: misc.TCallback): void; - symlink(target: PathLike, path: PathLike, callback: misc.TCallback); - symlink(target: PathLike, path: PathLike, type: symlink.Type, callback: misc.TCallback); - realpath(path: PathLike, callback: misc.TCallback); - realpath(path: PathLike, options: opts.IRealpathOptions | string, callback: misc.TCallback); - lstat(path: PathLike, callback: misc.TCallback): void; - lstat(path: PathLike, options: opts.IStatOptions, callback: misc.TCallback): void; - stat(path: PathLike, callback: misc.TCallback): void; - stat(path: PathLike, options: opts.IStatOptions, callback: misc.TCallback): void; + copyFile(src: misc.PathLike, dest: misc.PathLike, callback: misc.TCallback); + copyFile(src: misc.PathLike, dest: misc.PathLike, flags: misc.TFlagsCopy, callback: misc.TCallback); + link(existingPath: misc.PathLike, newPath: misc.PathLike, callback: misc.TCallback): void; + unlink(path: misc.PathLike, callback: misc.TCallback): void; + symlink(target: misc.PathLike, path: misc.PathLike, callback: misc.TCallback); + symlink(target: misc.PathLike, path: misc.PathLike, type: misc.symlink.Type, callback: misc.TCallback); + realpath(path: misc.PathLike, callback: misc.TCallback); + realpath(path: misc.PathLike, options: opts.IRealpathOptions | string, callback: misc.TCallback); + lstat(path: misc.PathLike, callback: misc.TCallback): void; + lstat(path: misc.PathLike, options: opts.IStatOptions, callback: misc.TCallback): void; + stat(path: misc.PathLike, callback: misc.TCallback): void; + stat(path: misc.PathLike, options: opts.IStatOptions, callback: misc.TCallback): void; fstat(fd: number, callback: misc.TCallback): void; fstat(fd: number, options: opts.IFStatOptions, callback: misc.TCallback): void; - rename(oldPath: PathLike, newPath: PathLike, callback: misc.TCallback): void; - exists(path: PathLike, callback: (exists: boolean) => void): void; - access(path: PathLike, callback: misc.TCallback); - access(path: PathLike, mode: number, callback: misc.TCallback); + rename(oldPath: misc.PathLike, newPath: misc.PathLike, callback: misc.TCallback): void; + exists(path: misc.PathLike, callback: (exists: boolean) => void): void; + access(path: misc.PathLike, callback: misc.TCallback); + access(path: misc.PathLike, mode: number, callback: misc.TCallback); appendFile(id: misc.TFileId, data: misc.TData, callback: misc.TCallback); appendFile( id: misc.TFileId, @@ -68,14 +67,14 @@ export interface FsCallbackApi { options: opts.IAppendFileOptions | string, callback: misc.TCallback, ); - readdir(path: PathLike, callback: misc.TCallback); + readdir(path: misc.PathLike, callback: misc.TCallback); readdir( - path: PathLike, + path: misc.PathLike, options: opts.IReaddirOptions | string, callback: misc.TCallback, ); - readlink(path: PathLike, callback: misc.TCallback); - readlink(path: PathLike, options: opts.IOptions, callback: misc.TCallback); + readlink(path: misc.PathLike, callback: misc.TCallback); + readlink(path: misc.PathLike, options: opts.IOptions, callback: misc.TCallback); fsyncSync(fd: number): void; fsync(fd: number, callback: misc.TCallback): void; fdatasync(fd: number, callback: misc.TCallback): void; @@ -84,40 +83,40 @@ export interface FsCallbackApi { truncate(id: misc.TFileId, callback: misc.TCallback); truncate(id: misc.TFileId, len: number, callback: misc.TCallback); futimes(fd: number, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback): void; - utimes(path: PathLike, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback): void; - mkdir(path: PathLike, callback: misc.TCallback); + utimes(path: misc.PathLike, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback): void; + mkdir(path: misc.PathLike, callback: misc.TCallback); mkdir( - path: PathLike, + path: misc.PathLike, mode: misc.TMode | (opts.IMkdirOptions & { recursive?: false }), callback: misc.TCallback, ); - mkdir(path: PathLike, mode: opts.IMkdirOptions & { recursive: true }, callback: misc.TCallback); - mkdir(path: PathLike, mode: misc.TMode | opts.IMkdirOptions, callback: misc.TCallback); - mkdirp(path: PathLike, callback: misc.TCallback); - mkdirp(path: PathLike, mode: misc.TMode, callback: misc.TCallback); + mkdir(path: misc.PathLike, mode: opts.IMkdirOptions & { recursive: true }, callback: misc.TCallback); + mkdir(path: misc.PathLike, mode: misc.TMode | opts.IMkdirOptions, callback: misc.TCallback); + mkdirp(path: misc.PathLike, callback: misc.TCallback); + mkdirp(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback); mkdtemp(prefix: string, callback: misc.TCallback): void; mkdtemp(prefix: string, options: opts.IOptions, callback: misc.TCallback); - rmdir(path: PathLike, callback: misc.TCallback); - rmdir(path: PathLike, options: opts.IRmdirOptions, callback: misc.TCallback); - rm(path: PathLike, callback: misc.TCallback): void; - rm(path: PathLike, options: opts.IRmOptions, callback: misc.TCallback): void; + rmdir(path: misc.PathLike, callback: misc.TCallback); + rmdir(path: misc.PathLike, options: opts.IRmdirOptions, callback: misc.TCallback); + rm(path: misc.PathLike, callback: misc.TCallback): void; + rm(path: misc.PathLike, options: opts.IRmOptions, callback: misc.TCallback): void; fchmod(fd: number, mode: misc.TMode, callback: misc.TCallback): void; - chmod(path: PathLike, mode: misc.TMode, callback: misc.TCallback): void; - lchmod(path: PathLike, mode: misc.TMode, callback: misc.TCallback): void; + chmod(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback): void; + lchmod(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback): void; fchown(fd: number, uid: number, gid: number, callback: misc.TCallback): void; - chown(path: PathLike, uid: number, gid: number, callback: misc.TCallback): void; - lchown(path: PathLike, uid: number, gid: number, callback: misc.TCallback): void; - watchFile(path: PathLike, listener: (curr: misc.IStats, prev: misc.IStats) => void): misc.IStatWatcher; + chown(path: misc.PathLike, uid: number, gid: number, callback: misc.TCallback): void; + lchown(path: misc.PathLike, uid: number, gid: number, callback: misc.TCallback): void; + watchFile(path: misc.PathLike, listener: (curr: misc.IStats, prev: misc.IStats) => void): misc.IStatWatcher; watchFile( - path: PathLike, + path: misc.PathLike, options: opts.IWatchFileOptions, listener: (curr: misc.IStats, prev: misc.IStats) => void, ): misc.IStatWatcher; - unwatchFile(path: PathLike, listener?: (curr: misc.IStats, prev: misc.IStats) => void): void; - createReadStream(path: PathLike, options?: opts.IReadStreamOptions | string): misc.IReadStream; - createWriteStream(path: PathLike, options?: opts.IWriteStreamOptions | string): misc.IWriteStream; + unwatchFile(path: misc.PathLike, listener?: (curr: misc.IStats, prev: misc.IStats) => void): void; + createReadStream(path: misc.PathLike, options?: opts.IReadStreamOptions | string): misc.IReadStream; + createWriteStream(path: misc.PathLike, options?: opts.IWriteStreamOptions | string): misc.IWriteStream; watch( - path: PathLike, + path: misc.PathLike, options?: opts.IWatchOptions | string, listener?: (eventType: string, filename: string) => void, ): misc.IFSWatcher; diff --git a/src/node/types/misc.ts b/src/node/types/misc.ts index facf4c9a0..4049172c5 100644 --- a/src/node/types/misc.ts +++ b/src/node/types/misc.ts @@ -136,3 +136,5 @@ export interface TFileHandleWriteResult { bytesWritten: number; buffer: Buffer | Uint8Array; } + +export type AssertCallback = T extends () => void ? T : never; diff --git a/src/node/types/sync.ts b/src/node/types/sync.ts index 0e7a1eb3d..04772af81 100644 --- a/src/node/types/sync.ts +++ b/src/node/types/sync.ts @@ -1,9 +1,8 @@ -import type { PathLike, symlink } from 'fs'; import type * as misc from './misc'; import type * as opts from './options'; export interface FsSynchronousApi { - openSync(path: PathLike, flags: misc.TFlags, mode?: misc.TMode): number; + openSync(path: misc.PathLike, flags: misc.TFlags, mode?: misc.TMode): number; closeSync(fd: number): void; readSync( fd: number, @@ -22,50 +21,50 @@ export interface FsSynchronousApi { ): number; writeSync(fd: number, str: string, position?: number, encoding?: BufferEncoding): number; writeFileSync(id: misc.TFileId, data: misc.TData, options?: opts.IWriteFileOptions): void; - copyFileSync(src: PathLike, dest: PathLike, flags?: misc.TFlagsCopy): void; - linkSync(existingPath: PathLike, newPath: PathLike): void; - unlinkSync(path: PathLike): void; - symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type): void; - realpathSync(path: PathLike, options?: opts.IRealpathOptions | string): misc.TDataOut; - lstatSync(path: PathLike): misc.IStats; - lstatSync(path: PathLike, options: { throwIfNoEntry?: true | undefined }): misc.IStats; - lstatSync(path: PathLike, options: { bigint: false; throwIfNoEntry?: true | undefined }): misc.IStats; - lstatSync(path: PathLike, options: { bigint: true; throwIfNoEntry?: true | undefined }): misc.IStats; - lstatSync(path: PathLike, options: { throwIfNoEntry: false }): misc.IStats | undefined; - lstatSync(path: PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats | undefined; - lstatSync(path: PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats | undefined; - statSync(path: PathLike): misc.IStats; - statSync(path: PathLike, options: { throwIfNoEntry?: true }): misc.IStats; - statSync(path: PathLike, options: { throwIfNoEntry: false }): misc.IStats | undefined; - statSync(path: PathLike, options: { bigint: false; throwIfNoEntry?: true }): misc.IStats; - statSync(path: PathLike, options: { bigint: true; throwIfNoEntry?: true }): misc.IStats; - statSync(path: PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats | undefined; - statSync(path: PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats | undefined; + copyFileSync(src: misc.PathLike, dest: misc.PathLike, flags?: misc.TFlagsCopy): void; + linkSync(existingPath: misc.PathLike, newPath: misc.PathLike): void; + unlinkSync(path: misc.PathLike): void; + symlinkSync(target: misc.PathLike, path: misc.PathLike, type?: misc.symlink.Type): void; + realpathSync(path: misc.PathLike, options?: opts.IRealpathOptions | string): misc.TDataOut; + lstatSync(path: misc.PathLike): misc.IStats; + lstatSync(path: misc.PathLike, options: { throwIfNoEntry?: true | undefined }): misc.IStats; + lstatSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry?: true | undefined }): misc.IStats; + lstatSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry?: true | undefined }): misc.IStats; + lstatSync(path: misc.PathLike, options: { throwIfNoEntry: false }): misc.IStats | undefined; + lstatSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats | undefined; + lstatSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats | undefined; + statSync(path: misc.PathLike): misc.IStats; + statSync(path: misc.PathLike, options: { throwIfNoEntry?: true }): misc.IStats; + statSync(path: misc.PathLike, options: { throwIfNoEntry: false }): misc.IStats | undefined; + statSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry?: true }): misc.IStats; + statSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry?: true }): misc.IStats; + statSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats | undefined; + statSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats | undefined; fstatSync(fd: number): misc.IStats; fstatSync(fd: number, options: { bigint: false }): misc.IStats; fstatSync(fd: number, options: { bigint: true }): misc.IStats; - renameSync(oldPath: PathLike, newPath: PathLike): void; - existsSync(path: PathLike): boolean; - accessSync(path: PathLike, mode?: number): void; + renameSync(oldPath: misc.PathLike, newPath: misc.PathLike): void; + existsSync(path: misc.PathLike): boolean; + accessSync(path: misc.PathLike, mode?: number): void; appendFileSync(id: misc.TFileId, data: misc.TData, options?: opts.IAppendFileOptions | string): void; - readdirSync(path: PathLike, options?: opts.IReaddirOptions | string): misc.TDataOut[] | misc.IDirent[]; - readlinkSync(path: PathLike, options?: opts.IOptions): misc.TDataOut; + readdirSync(path: misc.PathLike, options?: opts.IReaddirOptions | string): misc.TDataOut[] | misc.IDirent[]; + readlinkSync(path: misc.PathLike, options?: opts.IOptions): misc.TDataOut; fdatasyncSync(fd: number): void; ftruncateSync(fd: number, len?: number): void; truncateSync(id: misc.TFileId, len?: number): void; futimesSync(fd: number, atime: misc.TTime, mtime: misc.TTime): void; - utimesSync(path: PathLike, atime: misc.TTime, mtime: misc.TTime): void; - mkdirSync(path: PathLike, options: opts.IMkdirOptions & { recursive: true }): string | undefined; - mkdirSync(path: PathLike, options?: misc.TMode | (opts.IMkdirOptions & { recursive?: false })): void; - mkdirSync(path: PathLike, options?: misc.TMode | opts.IMkdirOptions): string | undefined; - mkdirpSync(path: PathLike, mode?: misc.TMode): void; + utimesSync(path: misc.PathLike, atime: misc.TTime, mtime: misc.TTime): void; + mkdirSync(path: misc.PathLike, options: opts.IMkdirOptions & { recursive: true }): string | undefined; + mkdirSync(path: misc.PathLike, options?: misc.TMode | (opts.IMkdirOptions & { recursive?: false })): void; + mkdirSync(path: misc.PathLike, options?: misc.TMode | opts.IMkdirOptions): string | undefined; + mkdirpSync(path: misc.PathLike, mode?: misc.TMode): void; mkdtempSync(prefix: string, options?: opts.IOptions): misc.TDataOut; - rmdirSync(path: PathLike, options?: opts.IRmdirOptions): void; - rmSync(path: PathLike, options?: opts.IRmOptions): void; + rmdirSync(path: misc.PathLike, options?: opts.IRmdirOptions): void; + rmSync(path: misc.PathLike, options?: opts.IRmOptions): void; fchmodSync(fd: number, mode: misc.TMode): void; - chmodSync(path: PathLike, mode: misc.TMode): void; - lchmodSync(path: PathLike, mode: misc.TMode): void; + chmodSync(path: misc.PathLike, mode: misc.TMode): void; + lchmodSync(path: misc.PathLike, mode: misc.TMode): void; fchownSync(fd: number, uid: number, gid: number): void; - chownSync(path: PathLike, uid: number, gid: number): void; - lchownSync(path: PathLike, uid: number, gid: number): void; + chownSync(path: misc.PathLike, uid: number, gid: number): void; + lchownSync(path: misc.PathLike, uid: number, gid: number): void; }