Urara-Blog/node_modules/.pnpm-store/v3/files/f9/9f2c394a2642daa0ffa6b29f39791b07de76d943241024e8a70d7f22f5655db5d5f006d678431ce04dc66c3f64b76edcf07555c084763b452a31fe82d1e212
2022-08-14 01:14:53 +08:00

33 lines
649 B
Text

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);
}
}
);
});
};
}