mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-07-01 07:40:10 +00:00
node: add the definition for util.callbackify (#19114)
* fix(node): add the definition for util.callbackify * test(node): add an unit test for util.callbackify
This commit is contained in:
committed by
Ryan Cavanaugh
parent
dffd06e0ab
commit
1aefe0126e
16
types/node/index.d.ts
vendored
16
types/node/index.d.ts
vendored
@@ -14,6 +14,7 @@
|
||||
// Daniel Imms <https://github.com/Tyriar>
|
||||
// Deividas Bakanas <https://github.com/DeividasBakanas>
|
||||
// Kelvin Jin <https://github.com/kjin>
|
||||
// Alvis HT Tang <https://github.com/alvis>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.2
|
||||
|
||||
@@ -5272,6 +5273,21 @@ declare module "util" {
|
||||
__promisify__: TCustom;
|
||||
}
|
||||
|
||||
export function callbackify(fn: () => Promise<void>): (callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<TResult>(fn: () => Promise<TResult>): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1>(fn: (arg1: T1) => Promise<void>): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, TResult>(fn: (arg1: T1) => Promise<TResult>): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1, T2>(fn: (arg1: T1, arg2: T2) => Promise<void>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, T2, TResult>(fn: (arg1: T1, arg2: T2) => Promise<TResult>): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1, T2, T3>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, T2, T3, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4, T5>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4, T5, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4, T5, T6>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<void>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void;
|
||||
export function callbackify<T1, T2, T3, T4, T5, T6, TResult>(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise<TResult>): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void;
|
||||
|
||||
export function promisify<TCustom extends Function>(fn: CustomPromisify<TCustom>): TCustom;
|
||||
export function promisify<T1, TResult>(fn: (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void): (arg1: T1) => Promise<TResult>;
|
||||
export function promisify<T1>(fn: (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void): (arg1: T1) => Promise<void>;
|
||||
|
||||
@@ -642,6 +642,79 @@ namespace util_tests {
|
||||
breakLength: Infinity
|
||||
});
|
||||
assert(typeof util.inspect.custom === 'symbol');
|
||||
|
||||
// util.callbackify
|
||||
class callbackifyTest {
|
||||
static fn(): Promise<void> {
|
||||
assert(arguments.length === 0);
|
||||
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
static fnE(): Promise<void> {
|
||||
assert(arguments.length === 0);
|
||||
|
||||
return Promise.reject(new Error('fail'));
|
||||
}
|
||||
|
||||
static fnT1(arg1: string): Promise<void> {
|
||||
assert(arguments.length === 1 && arg1 === 'parameter');
|
||||
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
static fnT1E(arg1: string): Promise<void> {
|
||||
assert(arguments.length === 1 && arg1 === 'parameter');
|
||||
|
||||
return Promise.reject(new Error('fail'));
|
||||
}
|
||||
|
||||
static fnTResult(): Promise<string> {
|
||||
assert(arguments.length === 0);
|
||||
|
||||
return Promise.resolve('result');
|
||||
}
|
||||
|
||||
static fnTResultE(): Promise<string> {
|
||||
assert(arguments.length === 0);
|
||||
|
||||
return Promise.reject(new Error('fail'));
|
||||
}
|
||||
|
||||
static fnT1TResult(arg1: string): Promise<string> {
|
||||
assert(arguments.length === 1 && arg1 === 'parameter');
|
||||
|
||||
return Promise.resolve('result');
|
||||
}
|
||||
|
||||
static fnT1TResultE(arg1: string): Promise<string> {
|
||||
assert(arguments.length === 1 && arg1 === 'parameter');
|
||||
|
||||
return Promise.reject(new Error('fail'));
|
||||
}
|
||||
|
||||
static test(): void {
|
||||
var cfn = util.callbackify(this.fn);
|
||||
var cfnE = util.callbackify(this.fnE);
|
||||
var cfnT1 = util.callbackify(this.fnT1);
|
||||
var cfnT1E = util.callbackify(this.fnT1E);
|
||||
var cfnTResult = util.callbackify(this.fnTResult);
|
||||
var cfnTResultE = util.callbackify(this.fnTResultE);
|
||||
var cfnT1TResult = util.callbackify(this.fnT1TResult);
|
||||
var cfnT1TResultE = util.callbackify(this.fnT1TResultE);
|
||||
|
||||
cfn((err: NodeJS.ErrnoException, ...args: string[]) => assert(err === null && args.length === 1 && args[0] === undefined));
|
||||
cfnE((err: NodeJS.ErrnoException, ...args: string[]) => assert(err.message === 'fail' && args.length === 0));
|
||||
cfnT1('parameter', (err: NodeJS.ErrnoException, ...args: string[]) => assert(err === null && args.length === 1 && args[0] === undefined));
|
||||
cfnT1E('parameter', (err: NodeJS.ErrnoException, ...args: string[]) => assert(err.message === 'fail' && args.length === 0));
|
||||
cfnTResult((err: NodeJS.ErrnoException, ...args: string[]) => assert(err === null && args.length === 1 && args[0] === 'result'));
|
||||
cfnTResultE((err: NodeJS.ErrnoException, ...args: string[]) => assert(err.message === 'fail' && args.length === 0));
|
||||
cfnT1TResult('parameter', (err: NodeJS.ErrnoException, ...args: string[]) => assert(err === null && args.length === 1 && args[0] === 'result'));
|
||||
cfnT1TResultE('parameter', (err: NodeJS.ErrnoException, ...args: string[]) => assert(err.message === 'fail' && args.length === 0));
|
||||
}
|
||||
}
|
||||
callbackifyTest.test();
|
||||
|
||||
// util.promisify
|
||||
var readPromised = util.promisify(fs.readFile);
|
||||
var sampleRead: Promise<any> = readPromised(__filename).then((data: Buffer): void => { }).catch((error: Error): void => { });
|
||||
|
||||
Reference in New Issue
Block a user