Loading lib/rp.js +62 −11 Original line number Diff line number Diff line var Promise = require('bluebird'), request = require('request'); function rp(options) { var statusCodes = { 'GET' : [200], 'HEAD' : [200], Loading @@ -9,6 +8,8 @@ function rp(options) { 'POST' : [200, 201], 'DELETE' : [200, 201] }, c = {simple: true}, i; function rp(options) { if (typeof options === 'string') { c.uri = options; c.method = 'GET'; Loading @@ -26,7 +27,7 @@ function rp(options) { if (error) { reject(error); } else if (c.simple && (statusCodes[c.method].indexOf(response.statusCode) === -1)) { reject(response.statusCode); reject(response); } else { if (c.transform && typeof c.transform === 'function') { resolve(c.transform(body)); Loading @@ -38,6 +39,56 @@ function rp(options) { }); } module.exports = function (a) { if (a) return rp(a); var wrapMethods = [ 'post', 'put', 'patch', 'head', 'del', 'get' ]; var methodNameLookup = { 'post' : 'POST', 'put' : 'PUT', 'patch' : 'PATCH', 'head' : 'HEAD', 'del' : 'DELETE', 'get' : 'GET' }; Object.keys(request).filter(function(key){ return typeof(request[key]) === "function" && !wrapMethods.indexOf(key) +1; }).forEach(function(key){ rp[key] = request[key].bind(request); }); Object.keys(request).filter(function(key){ return typeof(request[key]) === "function" && wrapMethods.indexOf(key) +1; }).forEach(function(key){ rp[key] = function(){ var args = Array.prototype.slice.call(arguments, 0); return new Promise(function (resolve, reject) { var method = methodNameLookup[key]; var params = request.initParams.apply(request, args); params.options.method = method; request(params, function (error, response, body) { if (error) { reject(error); } else if (statusCodes[method].indexOf(response.statusCode) === -1) { reject(response); } else { if (params.transform && typeof params.transform === 'function') { resolve(params.transform(body)); } else { resolve(body); } } }); }); } }); module.exports = rp; Loading
lib/rp.js +62 −11 Original line number Diff line number Diff line var Promise = require('bluebird'), request = require('request'); function rp(options) { var statusCodes = { 'GET' : [200], 'HEAD' : [200], Loading @@ -9,6 +8,8 @@ function rp(options) { 'POST' : [200, 201], 'DELETE' : [200, 201] }, c = {simple: true}, i; function rp(options) { if (typeof options === 'string') { c.uri = options; c.method = 'GET'; Loading @@ -26,7 +27,7 @@ function rp(options) { if (error) { reject(error); } else if (c.simple && (statusCodes[c.method].indexOf(response.statusCode) === -1)) { reject(response.statusCode); reject(response); } else { if (c.transform && typeof c.transform === 'function') { resolve(c.transform(body)); Loading @@ -38,6 +39,56 @@ function rp(options) { }); } module.exports = function (a) { if (a) return rp(a); var wrapMethods = [ 'post', 'put', 'patch', 'head', 'del', 'get' ]; var methodNameLookup = { 'post' : 'POST', 'put' : 'PUT', 'patch' : 'PATCH', 'head' : 'HEAD', 'del' : 'DELETE', 'get' : 'GET' }; Object.keys(request).filter(function(key){ return typeof(request[key]) === "function" && !wrapMethods.indexOf(key) +1; }).forEach(function(key){ rp[key] = request[key].bind(request); }); Object.keys(request).filter(function(key){ return typeof(request[key]) === "function" && wrapMethods.indexOf(key) +1; }).forEach(function(key){ rp[key] = function(){ var args = Array.prototype.slice.call(arguments, 0); return new Promise(function (resolve, reject) { var method = methodNameLookup[key]; var params = request.initParams.apply(request, args); params.options.method = method; request(params, function (error, response, body) { if (error) { reject(error); } else if (statusCodes[method].indexOf(response.statusCode) === -1) { reject(response); } else { if (params.transform && typeof params.transform === 'function') { resolve(params.transform(body)); } else { resolve(body); } } }); }); } }); module.exports = rp;