Skip to content

Commit

Permalink
refactor: 💡 update types
Browse files Browse the repository at this point in the history
  • Loading branch information
streamich committed Jun 20, 2023
1 parent 50d2a1e commit ed11dff
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 81 deletions.
87 changes: 43 additions & 44 deletions src/node/types/callback.ts
Original file line number Diff line number Diff line change
@@ -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<number>);
open(path: PathLike, flags: misc.TFlags, mode: misc.TMode, callback: misc.TCallback<number>);
open(path: misc.PathLike, flags: misc.TFlags, callback: misc.TCallback<number>);
open(path: misc.PathLike, flags: misc.TFlags, mode: misc.TMode, callback: misc.TCallback<number>);
close(fd: number, callback: misc.TCallback<void>): void;
read(
fd: number,
Expand Down Expand Up @@ -43,39 +42,39 @@ export interface FsCallbackApi {
options: opts.IWriteFileOptions | string,
callback: misc.TCallback<void>,
);
copyFile(src: PathLike, dest: PathLike, callback: misc.TCallback<void>);
copyFile(src: PathLike, dest: PathLike, flags: misc.TFlagsCopy, callback: misc.TCallback<void>);
link(existingPath: PathLike, newPath: PathLike, callback: misc.TCallback<void>): void;
unlink(path: PathLike, callback: misc.TCallback<void>): void;
symlink(target: PathLike, path: PathLike, callback: misc.TCallback<void>);
symlink(target: PathLike, path: PathLike, type: symlink.Type, callback: misc.TCallback<void>);
realpath(path: PathLike, callback: misc.TCallback<misc.TDataOut>);
realpath(path: PathLike, options: opts.IRealpathOptions | string, callback: misc.TCallback<misc.TDataOut>);
lstat(path: PathLike, callback: misc.TCallback<misc.IStats>): void;
lstat(path: PathLike, options: opts.IStatOptions, callback: misc.TCallback<misc.IStats>): void;
stat(path: PathLike, callback: misc.TCallback<misc.IStats>): void;
stat(path: PathLike, options: opts.IStatOptions, callback: misc.TCallback<misc.IStats>): void;
copyFile(src: misc.PathLike, dest: misc.PathLike, callback: misc.TCallback<void>);
copyFile(src: misc.PathLike, dest: misc.PathLike, flags: misc.TFlagsCopy, callback: misc.TCallback<void>);
link(existingPath: misc.PathLike, newPath: misc.PathLike, callback: misc.TCallback<void>): void;
unlink(path: misc.PathLike, callback: misc.TCallback<void>): void;
symlink(target: misc.PathLike, path: misc.PathLike, callback: misc.TCallback<void>);
symlink(target: misc.PathLike, path: misc.PathLike, type: misc.symlink.Type, callback: misc.TCallback<void>);
realpath(path: misc.PathLike, callback: misc.TCallback<misc.TDataOut>);
realpath(path: misc.PathLike, options: opts.IRealpathOptions | string, callback: misc.TCallback<misc.TDataOut>);
lstat(path: misc.PathLike, callback: misc.TCallback<misc.IStats>): void;
lstat(path: misc.PathLike, options: opts.IStatOptions, callback: misc.TCallback<misc.IStats>): void;
stat(path: misc.PathLike, callback: misc.TCallback<misc.IStats>): void;
stat(path: misc.PathLike, options: opts.IStatOptions, callback: misc.TCallback<misc.IStats>): void;
fstat(fd: number, callback: misc.TCallback<misc.IStats>): void;
fstat(fd: number, options: opts.IFStatOptions, callback: misc.TCallback<misc.IStats>): void;
rename(oldPath: PathLike, newPath: PathLike, callback: misc.TCallback<void>): void;
exists(path: PathLike, callback: (exists: boolean) => void): void;
access(path: PathLike, callback: misc.TCallback<void>);
access(path: PathLike, mode: number, callback: misc.TCallback<void>);
rename(oldPath: misc.PathLike, newPath: misc.PathLike, callback: misc.TCallback<void>): void;
exists(path: misc.PathLike, callback: (exists: boolean) => void): void;
access(path: misc.PathLike, callback: misc.TCallback<void>);
access(path: misc.PathLike, mode: number, callback: misc.TCallback<void>);
appendFile(id: misc.TFileId, data: misc.TData, callback: misc.TCallback<void>);
appendFile(
id: misc.TFileId,
data: misc.TData,
options: opts.IAppendFileOptions | string,
callback: misc.TCallback<void>,
);
readdir(path: PathLike, callback: misc.TCallback<misc.TDataOut[] | misc.IDirent[]>);
readdir(path: misc.PathLike, callback: misc.TCallback<misc.TDataOut[] | misc.IDirent[]>);
readdir(
path: PathLike,
path: misc.PathLike,
options: opts.IReaddirOptions | string,
callback: misc.TCallback<misc.TDataOut[] | misc.IDirent[]>,
);
readlink(path: PathLike, callback: misc.TCallback<misc.TDataOut>);
readlink(path: PathLike, options: opts.IOptions, callback: misc.TCallback<misc.TDataOut>);
readlink(path: misc.PathLike, callback: misc.TCallback<misc.TDataOut>);
readlink(path: misc.PathLike, options: opts.IOptions, callback: misc.TCallback<misc.TDataOut>);
fsyncSync(fd: number): void;
fsync(fd: number, callback: misc.TCallback<void>): void;
fdatasync(fd: number, callback: misc.TCallback<void>): void;
Expand All @@ -84,40 +83,40 @@ export interface FsCallbackApi {
truncate(id: misc.TFileId, callback: misc.TCallback<void>);
truncate(id: misc.TFileId, len: number, callback: misc.TCallback<void>);
futimes(fd: number, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback<void>): void;
utimes(path: PathLike, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback<void>): void;
mkdir(path: PathLike, callback: misc.TCallback<void>);
utimes(path: misc.PathLike, atime: misc.TTime, mtime: misc.TTime, callback: misc.TCallback<void>): void;
mkdir(path: misc.PathLike, callback: misc.TCallback<void>);
mkdir(
path: PathLike,
path: misc.PathLike,
mode: misc.TMode | (opts.IMkdirOptions & { recursive?: false }),
callback: misc.TCallback<void>,
);
mkdir(path: PathLike, mode: opts.IMkdirOptions & { recursive: true }, callback: misc.TCallback<string>);
mkdir(path: PathLike, mode: misc.TMode | opts.IMkdirOptions, callback: misc.TCallback<string>);
mkdirp(path: PathLike, callback: misc.TCallback<string>);
mkdirp(path: PathLike, mode: misc.TMode, callback: misc.TCallback<string>);
mkdir(path: misc.PathLike, mode: opts.IMkdirOptions & { recursive: true }, callback: misc.TCallback<string>);
mkdir(path: misc.PathLike, mode: misc.TMode | opts.IMkdirOptions, callback: misc.TCallback<string>);
mkdirp(path: misc.PathLike, callback: misc.TCallback<string>);
mkdirp(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback<string>);
mkdtemp(prefix: string, callback: misc.TCallback<void>): void;
mkdtemp(prefix: string, options: opts.IOptions, callback: misc.TCallback<void>);
rmdir(path: PathLike, callback: misc.TCallback<void>);
rmdir(path: PathLike, options: opts.IRmdirOptions, callback: misc.TCallback<void>);
rm(path: PathLike, callback: misc.TCallback<void>): void;
rm(path: PathLike, options: opts.IRmOptions, callback: misc.TCallback<void>): void;
rmdir(path: misc.PathLike, callback: misc.TCallback<void>);
rmdir(path: misc.PathLike, options: opts.IRmdirOptions, callback: misc.TCallback<void>);
rm(path: misc.PathLike, callback: misc.TCallback<void>): void;
rm(path: misc.PathLike, options: opts.IRmOptions, callback: misc.TCallback<void>): void;
fchmod(fd: number, mode: misc.TMode, callback: misc.TCallback<void>): void;
chmod(path: PathLike, mode: misc.TMode, callback: misc.TCallback<void>): void;
lchmod(path: PathLike, mode: misc.TMode, callback: misc.TCallback<void>): void;
chmod(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback<void>): void;
lchmod(path: misc.PathLike, mode: misc.TMode, callback: misc.TCallback<void>): void;
fchown(fd: number, uid: number, gid: number, callback: misc.TCallback<void>): void;
chown(path: PathLike, uid: number, gid: number, callback: misc.TCallback<void>): void;
lchown(path: PathLike, uid: number, gid: number, callback: misc.TCallback<void>): 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>): void;
lchown(path: misc.PathLike, uid: number, gid: number, callback: misc.TCallback<void>): 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;
Expand Down
2 changes: 2 additions & 0 deletions src/node/types/misc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,5 @@ export interface TFileHandleWriteResult {
bytesWritten: number;
buffer: Buffer | Uint8Array;
}

export type AssertCallback<T> = T extends () => void ? T : never;
73 changes: 36 additions & 37 deletions src/node/types/sync.ts
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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<number>;
lstatSync(path: PathLike, options: { throwIfNoEntry?: true | undefined }): misc.IStats<number>;
lstatSync(path: PathLike, options: { bigint: false; throwIfNoEntry?: true | undefined }): misc.IStats<number>;
lstatSync(path: PathLike, options: { bigint: true; throwIfNoEntry?: true | undefined }): misc.IStats<bigint>;
lstatSync(path: PathLike, options: { throwIfNoEntry: false }): misc.IStats<number> | undefined;
lstatSync(path: PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats<number> | undefined;
lstatSync(path: PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats<bigint> | undefined;
statSync(path: PathLike): misc.IStats<number>;
statSync(path: PathLike, options: { throwIfNoEntry?: true }): misc.IStats<number>;
statSync(path: PathLike, options: { throwIfNoEntry: false }): misc.IStats<number> | undefined;
statSync(path: PathLike, options: { bigint: false; throwIfNoEntry?: true }): misc.IStats<number>;
statSync(path: PathLike, options: { bigint: true; throwIfNoEntry?: true }): misc.IStats<bigint>;
statSync(path: PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats<number> | undefined;
statSync(path: PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats<bigint> | 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<number>;
lstatSync(path: misc.PathLike, options: { throwIfNoEntry?: true | undefined }): misc.IStats<number>;
lstatSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry?: true | undefined }): misc.IStats<number>;
lstatSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry?: true | undefined }): misc.IStats<bigint>;
lstatSync(path: misc.PathLike, options: { throwIfNoEntry: false }): misc.IStats<number> | undefined;
lstatSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats<number> | undefined;
lstatSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats<bigint> | undefined;
statSync(path: misc.PathLike): misc.IStats<number>;
statSync(path: misc.PathLike, options: { throwIfNoEntry?: true }): misc.IStats<number>;
statSync(path: misc.PathLike, options: { throwIfNoEntry: false }): misc.IStats<number> | undefined;
statSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry?: true }): misc.IStats<number>;
statSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry?: true }): misc.IStats<bigint>;
statSync(path: misc.PathLike, options: { bigint: false; throwIfNoEntry: false }): misc.IStats<number> | undefined;
statSync(path: misc.PathLike, options: { bigint: true; throwIfNoEntry: false }): misc.IStats<bigint> | undefined;
fstatSync(fd: number): misc.IStats<number>;
fstatSync(fd: number, options: { bigint: false }): misc.IStats<number>;
fstatSync(fd: number, options: { bigint: true }): misc.IStats<bigint>;
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;
}

0 comments on commit ed11dff

Please sign in to comment.