Commit 225f0278 authored by Nicolai Kamenzky's avatar Nicolai Kamenzky
Browse files

Merge pull request #54 from luanmuniz/master

Require just used functions & use natives
parents d2bb057c 34a39957
Loading
Loading
Loading
Loading
+15 −12
Original line number Original line Diff line number Diff line
@@ -2,7 +2,10 @@


var Bluebird = require('./bluebird-fresh.js'),
var Bluebird = require('./bluebird-fresh.js'),
    CapturedTrace = require('./bluebird-captured-trace-fresh.js'),
    CapturedTrace = require('./bluebird-captured-trace-fresh.js'),
    _ = require('lodash'),
    assign = require('lodash/object/assign'),
    isFunction = require('lodash/lang/isFunction'),
    isPlainObject = require('lodash/lang/isPlainObject'),
    isString = require('lodash/lang/isString'),
    chalk = require('chalk'),
    chalk = require('chalk'),
    errors = require('./errors.js');
    errors = require('./errors.js');


@@ -11,18 +14,18 @@ var Bluebird = require('./bluebird-fresh.js'),
var request = (function () {
var request = (function () {


    function clearCache() {
    function clearCache() {
        _.forEach(_.keys(require.cache), function (key) {
        Object.keys(require.cache).forEach(function (key) {
            delete require.cache[key];
            delete require.cache[key];
        });
        });
    }
    }


    var temp = _.assign({}, require.cache);
    var temp = assign({}, require.cache);
    clearCache();
    clearCache();


    var freshRequest = require('request');
    var freshRequest = require('request');


    clearCache();
    clearCache();
    _.assign(require.cache, temp);
    assign(require.cache, temp);


    return freshRequest;
    return freshRequest;


@@ -36,7 +39,7 @@ function RP$callback(err, response, body) {


    var origCallbackThrewException = false, thrownException;
    var origCallbackThrewException = false, thrownException;


    if (_.isFunction(self._rp_callbackOrig)) {
    if (isFunction(self._rp_callbackOrig)) {
        try {
        try {
            self._rp_callbackOrig.apply(self, arguments);
            self._rp_callbackOrig.apply(self, arguments);
        } catch (e) {
        } catch (e) {
@@ -47,7 +50,7 @@ function RP$callback(err, response, body) {


    if (err) {
    if (err) {


        self._rp_reject(_.assign(new errors.RequestError(err), {
        self._rp_reject(assign(new errors.RequestError(err), {
            error: err,
            error: err,
            options: self._rp_options,
            options: self._rp_options,
            response: response
            response: response
@@ -55,14 +58,14 @@ function RP$callback(err, response, body) {


    } else if (self._rp_options.simple && !(/^2/.test('' + response.statusCode))) {
    } else if (self._rp_options.simple && !(/^2/.test('' + response.statusCode))) {


        self._rp_reject(_.assign(new errors.StatusCodeError(response.statusCode, body), {
        self._rp_reject(assign(new errors.StatusCodeError(response.statusCode, body), {
            error: body,
            error: body,
            options: self._rp_options,
            options: self._rp_options,
            response: response
            response: response
        }));
        }));


    } else {
    } else {
        if (_.isFunction(self._rp_options.transform)) {
        if (isFunction(self._rp_options.transform)) {
            try {
            try {
                self._rp_resolve(self._rp_options.transform(body, response));
                self._rp_resolve(self._rp_options.transform(body, response));
            } catch (e) {
            } catch (e) {
@@ -80,7 +83,7 @@ function RP$callback(err, response, body) {
    }
    }


    // Mimic original behavior of errors emitted by request with no error listener registered
    // Mimic original behavior of errors emitted by request with no error listener registered
    if (err && _.isFunction(self._rp_callbackOrig) === false && self._rp_promise_in_use !== true && self.listeners('error').length === 1) {
    if (err && isFunction(self._rp_callbackOrig) === false && self._rp_promise_in_use !== true && self.listeners('error').length === 1) {
        throw err;
        throw err;
    }
    }


@@ -93,7 +96,7 @@ request.Request.prototype.init = function RP$initInterceptor(options) {
    var self = this;
    var self = this;


    // Init may be called again - currently in case of redirects
    // Init may be called again - currently in case of redirects
    if (_.isPlainObject(options) && self._callback === undefined && self._rp_promise === undefined) {
    if (isPlainObject(options) && self._callback === undefined && self._rp_promise === undefined) {


        self._rp_promise = new Bluebird(function (resolve, reject) {
        self._rp_promise = new Bluebird(function (resolve, reject) {
            self._rp_resolve = resolve;
            self._rp_resolve = resolve;
@@ -104,7 +107,7 @@ request.Request.prototype.init = function RP$initInterceptor(options) {
        self._rp_callbackOrig = self.callback;
        self._rp_callbackOrig = self.callback;
        self.callback = RP$callback;
        self.callback = RP$callback;


        if (_.isString(options.method)) {
        if (isString(options.method)) {
            options.method = options.method.toUpperCase();
            options.method = options.method.toUpperCase();
        }
        }


@@ -128,7 +131,7 @@ function expose(methodToExpose, exposeAs) {
    exposeAs = exposeAs || methodToExpose;
    exposeAs = exposeAs || methodToExpose;


    /* istanbul ignore if */
    /* istanbul ignore if */
    if (!_.isUndefined(request.Request.prototype[exposeAs])) {
    if (request.Request.prototype[exposeAs] !== undefined) {
        console.error(chalk.bold.bgRed('[Request-Promise] Unable to expose method "' + exposeAs + '". It is already implemented by Request. Please visit https://github.com/request/request-promise/wiki/Troubleshooting'));
        console.error(chalk.bold.bgRed('[Request-Promise] Unable to expose method "' + exposeAs + '". It is already implemented by Request. Please visit https://github.com/request/request-promise/wiki/Troubleshooting'));
        return;
        return;
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -31,7 +31,7 @@
  "dependencies": {
  "dependencies": {
    "bluebird": "^2.3",
    "bluebird": "^2.3",
    "chalk": "1.0.x",
    "chalk": "1.0.x",
    "lodash": "3.6.x",
    "lodash": "^3.6.0",
    "request": "^2.34"
    "request": "^2.34"
  },
  },
  "devDependencies": {
  "devDependencies": {