promisify.ts
1 import { 2 Agent, 3 ClientRequest, 4 RequestOptions, 5 AgentCallbackCallback, 6 AgentCallbackPromise, 7 AgentCallbackReturn 8 } from './index'; 9 10 type LegacyCallback = ( 11 req: ClientRequest, 12 opts: RequestOptions, 13 fn: AgentCallbackCallback 14 ) => void; 15 16 export default function promisify(fn: LegacyCallback): AgentCallbackPromise { 17 return function(this: Agent, req: ClientRequest, opts: RequestOptions) { 18 return new Promise((resolve, reject) => { 19 fn.call( 20 this, 21 req, 22 opts, 23 (err: Error | null | undefined, rtn?: AgentCallbackReturn) => { 24 if (err) { 25 reject(err); 26 } else { 27 resolve(rtn); 28 } 29 } 30 ); 31 }); 32 }; 33 }