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

http-as-promised

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

http-as-promised - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

test/test.http.error.js

18

http.error.js

@@ -14,3 +14,3 @@ var createError = require('create-error'),

range: '4xx',
statusCode: 444,
statusCode: 444.4,
title: 'Client Error',

@@ -21,3 +21,3 @@ summary: 'the request contains bad syntax or cannot be fulfilled'

range: '5xx',
statusCode: 555,
statusCode: 555.5,
title: 'Server Error',

@@ -29,10 +29,8 @@ summary: 'the server failed to fulfill an apparently valid request'

for (var k in error) {
if (error.hasOwnProperty(k)) {
var err = error[k];
err.type = err.title.replace(' ', '');
err.message = err.range + ' ' + err.title;
var ErrorType = createError(HTTPError, 'HTTPError', err);
HTTPError[k] = HTTPError[err.range] = ErrorType;
ErrorType.prototype.toJSON = errorToJSON;
}
var err = error[k];
err.type = err.title.replace(' ', '');
err.message = err.range + ' ' + err.title;
var ErrorType = createError(HTTPError, 'HTTPError', err);
HTTPError[k] = HTTPError[err.range] = ErrorType;
ErrorType.prototype.toJSON = errorToJSON;
}

@@ -39,0 +37,0 @@

@@ -13,8 +13,12 @@ var Promise = require('bluebird'),

'patch', 'del', 'jar', 'cookie'
];
],
defaultOptions = {
error: true,
method: 'GET'
};
module.exports = (function wrapRequest(request){
module.exports = (function wrapRequest(request, defaultOpts){
reqMethods.forEach(function (method){
HTTP[method] = HTTP_METHODS.hasOwnProperty(method)
? wrapMethod(method)
? wrapMethod(HTTP_METHODS[method])
: request[method].bind(request);

@@ -54,5 +58,7 @@ });

? HTTP.error[statusCode]
: statusCode >= 500
? HTTP.error.server
: HTTP.error.client
: statusCode < 500
? HTTP.error.client
: statusCode < 600
? HTTP.error.server
: HTTP.error;
var httpErr = new HTTPErr;

@@ -62,2 +68,3 @@ httpErr.body = body;

httpErr.response = response;
httpErr.statusCode = statusCode;
reject(httpErr);

@@ -75,3 +82,4 @@ } else if (typeof opts.transform === 'function') {

return function HTTP_METHOD(options, extra){
return HTTP(setOptions(options, extra, method));
var opts = setOptions(options, extra, method);
return HTTP(opts);
}

@@ -81,10 +89,23 @@ }

function setDefaults(defaults){
return wrapRequest(request.defaults(defaults));
var current = assign({}, defaultOpts);
return wrapRequest(
request.defaults(defaults),
assign(current, defaults)
);
}
function setOptions(options, extra, method){
var opts = assign(assign({}, defaultOpts), options);
if (typeof options === 'string') {
opts = assign(opts, extra);
opts.uri = options;
}
opts.method = method || opts.method;
return opts;
}
return HTTP;
})(require('request'));
})(require('request'), defaultOptions);
function assign(target, extension){
if (!target) return extension || {};
if (typeof extension === 'object' && extension !== null)

@@ -96,14 +117,1 @@ for (var k in extension)

}
function setOptions(options, extra, method){
var opts = assign({
error: true,
method: 'GET'
}, options);
if (typeof options === 'string') {
opts.uri = options;
opts = assign(opts, extra);
}
opts.method = method || opts.method;
return opts;
}

@@ -20,3 +20,3 @@ {

],
"version": "0.0.4",
"version": "0.0.5",
"author": "James Cready <jcready@gmail.com> (http://stackoverflow.com/users/1397319/idbehold)",

@@ -52,4 +52,6 @@ "homepage": "https://github.com/jcready/http-as-promised",

"mocha-lcov-reporter": "0.0.1",
"nock": "^0.46.0"
"nock": "^0.46.0",
"sinon": "^1.10.3",
"sinon-chai": "^2.5.0"
}
}
# HTTP as Promised — Promisified HTTP client.
[![Build Status](https://travis-ci.org/jcready/http-as-promised.svg?branch=master)](https://travis-ci.org/jcready/http-as-promised) [![Coverage Status](https://coveralls.io/repos/jcready/http-as-promised/badge.png?branch=master)](https://coveralls.io/r/jcready/http-as-promised?branch=master)
[![NPM Version][https://img.shields.io/npm/v/http-as-promised.svg?style=flat]][https://npmjs.org/package/http-as-promised]
[![Build Status](https://travis-ci.org/jcready/http-as-promised.svg?branch=master)](https://travis-ci.org/jcready/http-as-promised)
[![Coverage Status](https://coveralls.io/repos/jcready/http-as-promised/badge.png?branch=master)](https://coveralls.io/r/jcready/http-as-promised?branch=master)

@@ -5,0 +7,0 @@ Using [Bluebird](https://github.com/petkaantonov/bluebird) and [Create Error](https://github.com/tgriesser/create-error) to make [Request](https://github.com/mikeal/request) easier to use. The most notible difference between this library and simply "promisifying" the request module is that this library will automatically reject the promise with an `HTTPError` if the response status code is an HTTP error status code (e.g. `response.statusCode >= 400`).

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc