|
@ -76,7 +76,8 @@ function requestAsEventEmitter(opts) { |
|
|
return ee; |
|
|
return ee; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function asCallback(opts, cb) { |
|
|
function asPromise(opts) { |
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
const ee = requestAsEventEmitter(opts); |
|
|
const ee = requestAsEventEmitter(opts); |
|
|
|
|
|
|
|
|
ee.on('request', req => { |
|
|
ee.on('request', req => { |
|
@ -97,42 +98,37 @@ function asCallback(opts, cb) { |
|
|
let err; |
|
|
let err; |
|
|
const statusCode = res.statusCode; |
|
|
const statusCode = res.statusCode; |
|
|
|
|
|
|
|
|
|
|
|
res.body = data; |
|
|
|
|
|
|
|
|
if (statusCode < 200 || statusCode > 299) { |
|
|
if (statusCode < 200 || statusCode > 299) { |
|
|
err = new got.HTTPError(statusCode, opts); |
|
|
err = new got.HTTPError(statusCode, opts); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (opts.json && statusCode !== 204) { |
|
|
if (opts.json && statusCode !== 204) { |
|
|
try { |
|
|
try { |
|
|
data = JSON.parse(data); |
|
|
res.body = JSON.parse(res.body); |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
err = new got.ParseError(e, opts, data); |
|
|
err = new got.ParseError(e, opts, data); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
cb(err, data, res); |
|
|
|
|
|
}) |
|
|
|
|
|
.catch(err => cb(new got.ReadError(err, opts), null, res)); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
ee.on('error', cb); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function asPromise(opts) { |
|
|
|
|
|
return new Promise((resolve, reject) => |
|
|
|
|
|
asCallback(opts, (err, data, response) => { |
|
|
|
|
|
if (response) { |
|
|
|
|
|
response.body = data; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (err) { |
|
|
if (err) { |
|
|
Object.defineProperty(err, 'response', {value: response}); |
|
|
Object.defineProperty(err, 'response', {value: res}); |
|
|
reject(err); |
|
|
reject(err); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
resolve(response); |
|
|
resolve(res); |
|
|
}) |
|
|
}) |
|
|
); |
|
|
.catch(err => { |
|
|
|
|
|
err = new got.ReadError(err, opts); |
|
|
|
|
|
Object.defineProperty(err, 'response', {value: res}); |
|
|
|
|
|
reject(err); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
ee.on('error', reject); |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function asStream(opts) { |
|
|
function asStream(opts) { |
|
|