allow pipe-able inputs
This commit is contained in:
parent
4f3fe38ee4
commit
5b5cd36aa5
10
index.js
10
index.js
|
@ -240,9 +240,14 @@ function setDefaults(defs) {
|
|||
if (_body) {
|
||||
// Most APIs expect (or require) Content-Length except in the case of multipart uploads
|
||||
// Transfer-Encoding: Chunked (the default) is generally only well-supported downstream
|
||||
if (
|
||||
'undefined' !== typeof _body.byteLength ||
|
||||
'undefined' !== typeof _body.length
|
||||
) {
|
||||
finalOpts.headers['Content-Length'] =
|
||||
_body.byteLength || _body.length;
|
||||
}
|
||||
}
|
||||
if (opts.auth) {
|
||||
// if opts.uri specifies auth it will be parsed by url.parse and passed directly to the http module
|
||||
if ('string' !== typeof opts.auth) {
|
||||
|
@ -359,10 +364,13 @@ function setDefaults(defs) {
|
|||
if (_body) {
|
||||
debug("\n[urequest] '" + finalOpts.method + "' (request) body");
|
||||
debug(_body);
|
||||
if ('function' === typeof _body.pipe) {
|
||||
// used for chunked encoding
|
||||
//req.write(_body);
|
||||
_body.pipe(req);
|
||||
} else {
|
||||
// used for known content-length
|
||||
req.end(_body);
|
||||
}
|
||||
} else {
|
||||
req.end();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue