New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

nipple

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nipple - npm Package Compare versions

Comparing version

to
2.4.0

32

lib/index.js

@@ -214,3 +214,25 @@

return callback(err, buffer);
if (err ||
!options.json) {
return callback(err, buffer);
}
// Parse JSON
var contentType = (res.headers && res.headers['content-type']) || '';
var mime = contentType.split(';')[0].trim().toLowerCase();
if (mime !== 'application/json') {
return callback(null, buffer);
}
try {
var json = JSON.parse(buffer.toString());
}
catch (err) {
return callback(err, null);
}
return callback(null, json);
};

@@ -368,5 +390,9 @@

exports.read(res, function (err, payload) {
exports.read(res, options, function (err, payload) {
return callback(err, res, payload.toString());
if (payload instanceof Buffer) {
payload = payload.toString();
}
return callback(err, res, payload);
});

@@ -373,0 +399,0 @@ });

2

package.json
{
"name": "nipple",
"description": "HTTP Client Utilities",
"version": "2.3.0",
"version": "2.4.0",
"repository": "git://github.com/spumko/nipple",

@@ -6,0 +6,0 @@ "main": "index",

@@ -820,2 +820,118 @@ // Load modules

});
describe('json', function () {
it('json requested and received', function (done) {
var server = Http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
foo: 'bar'
}));
});
server.listen(0, function () {
var port = server.address().port;
var options = {
json: true
};
Nipple.get('http://localhost:' + port, options, function (err, res, payload) {
expect(err).to.not.exist;
expect(res.statusCode).to.equal(200);
expect(payload).to.not.equal(null);
expect(payload.foo).to.exist;
server.close();
done();
});
});
});
it('json requested but not received - flag is ignored', function (done) {
var server = Http.createServer(function (req, res) {
res.writeHead(200);
res.end('ok');
});
server.listen(0, function () {
var port = server.address().port;
var options = {
json: true
};
Nipple.get('http://localhost:' + port, options, function (err, res, payload) {
expect(err).to.not.exist;
expect(res.statusCode).to.equal(200);
expect(payload).to.not.equal(null);
server.close();
done();
});
});
});
it('invalid json received', function (done) {
var server = Http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end('ok');
});
server.listen(0, function () {
var port = server.address().port;
var options = {
json: true
};
Nipple.get('http://localhost:' + port, options, function (err, res, payload) {
expect(err).to.exist;
server.close();
done();
});
});
});
it('json not requested but received as string', function (done) {
var server = Http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
foo: 'bar'
}));
});
server.listen(0, function () {
var port = server.address().port;
var options = {
json: false
};
Nipple.get('http://localhost:' + port, options, function (err, res, payload) {
expect(err).to.not.exist;
expect(res.statusCode).to.equal(200);
expect(payload).to.not.equal(null);
server.close();
done();
});
});
});
});
});