Comparing version 0.4.2 to 0.4.3
@@ -60,2 +60,3 @@ ////////////////////////////////////////// | ||
proxy: options.proxy, | ||
output: options.output, | ||
encoding: options.encoding || (options.multipart ? 'binary' : 'utf8'), | ||
@@ -155,9 +156,12 @@ decode_response: options.decode === false ? false : true, | ||
var response_opts = { | ||
decode: config.decode_response, | ||
parse: config.parse_response, | ||
output: config.output, | ||
parse: config.parse_response, // parse XML or JSON | ||
content_type: mime.type, | ||
charset: mime.charset, | ||
utf8: !!mime.charset.match(/utf-?8$/i) | ||
text: mime.type.indexOf('text/') != -1, | ||
charset: mime.charset | ||
} | ||
if (response_opts.text) | ||
response_opts.decode = config.decode_response; // only allow iconv on text/* | ||
// response.setEncoding(response_opts.utf8 ? 'utf8' : 'binary'); | ||
@@ -221,11 +225,20 @@ | ||
var handle_output = function(err, data){ | ||
if (err || !opts.output) | ||
return callback(err, response, data); | ||
fs.writeFile(opts.output, data, function(err){ | ||
callback(err, response, data); | ||
}) | ||
} | ||
if (opts.parse && parsers[opts.content_type]) { | ||
parsers[opts.content_type](body.toString(), function(err, result){ | ||
callback(err, response, result); | ||
handle_output(err, result); | ||
}); | ||
} else { | ||
if (opts.decode && !opts.utf8 && opts.charset) | ||
if (opts.decode && opts.charset && !opts.charset.match(/utf-?8$/i)) // not utf-8 | ||
body = require('iconv-lite').decode(body, opts.charset); | ||
callback(null, response, body.toString()); | ||
handle_output(null, opts.text ? body.toString() : body); | ||
} | ||
@@ -232,0 +245,0 @@ |
{ | ||
"name": "needle" | ||
, "version": "0.4.2" | ||
, "version": "0.4.3" | ||
, "description": "Tiny yet feature-packed HTTP client. With multipart, charset decoding and proxy support." | ||
@@ -5,0 +5,0 @@ , "keywords": ["http", "https", "simple", "client", "multipart", "upload", "proxy", "deflate", "timeout", "charset", "iconv"] |
Non-existent author
Supply chain riskThe package was published by an npm account that no longer exists.
Found 1 instance in 1 package
43711
17
666
1
6
9