You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
649 B
33 lines
649 B
import { |
|
Agent, |
|
ClientRequest, |
|
RequestOptions, |
|
AgentCallbackCallback, |
|
AgentCallbackPromise, |
|
AgentCallbackReturn |
|
} from './index'; |
|
|
|
type LegacyCallback = ( |
|
req: ClientRequest, |
|
opts: RequestOptions, |
|
fn: AgentCallbackCallback |
|
) => void; |
|
|
|
export default function promisify(fn: LegacyCallback): AgentCallbackPromise { |
|
return function(this: Agent, req: ClientRequest, opts: RequestOptions) { |
|
return new Promise((resolve, reject) => { |
|
fn.call( |
|
this, |
|
req, |
|
opts, |
|
(err: Error | null | undefined, rtn?: AgentCallbackReturn) => { |
|
if (err) { |
|
reject(err); |
|
} else { |
|
resolve(rtn); |
|
} |
|
} |
|
); |
|
}); |
|
}; |
|
}
|
|
|