diff --git a/index.js b/index.js index 99b8386b5..3581b83b4 100755 --- a/index.js +++ b/index.js @@ -172,5 +172,15 @@ request.forever = function (agentOptions, optionsArg) { module.exports = request request.Request = require('./request') -request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG) request.initParams = initParams + +// Backwards compatibility for request.debug +Object.defineProperty(request, 'debug', { + enumerable : true, + get : function() { + return request.Request.debug + }, + set : function(debug) { + request.Request.debug = debug + } +}) diff --git a/lib/debug.js b/lib/debug.js deleted file mode 100644 index 25e3dedc7..000000000 --- a/lib/debug.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -var util = require('util') - , request = require('../index') - - -module.exports = function debug() { - if (request.debug) { - console.error('REQUEST %s', util.format.apply(util, arguments)) - } -} diff --git a/request.js b/request.js index 6254aa016..ea887f842 100644 --- a/request.js +++ b/request.js @@ -23,7 +23,6 @@ var http = require('http') , FormData = require('form-data') , cookies = require('./lib/cookies') , copy = require('./lib/copy') - , debug = require('./lib/debug') , net = require('net') , CombinedStream = require('combined-stream') , isstream = require('isstream') @@ -240,6 +239,14 @@ function Request (options) { util.inherits(Request, stream.Stream) +// Debugging +Request.debug = process.env.NODE_DEBUG && /\brequest\b/.test(process.env.NODE_DEBUG) +function debug() { + if (Request.debug) { + console.error('REQUEST %s', util.format.apply(util, arguments)) + } +} + Request.prototype.setupTunnel = function () { // Set up the tunneling agent if necessary // Only send the proxy whitelisted header names. diff --git a/tests/test-node-debug.js b/tests/test-node-debug.js index 9d5a0f6fd..4d4e5ac0a 100644 --- a/tests/test-node-debug.js +++ b/tests/test-node-debug.js @@ -12,11 +12,12 @@ var s = http.createServer(function(req, res) { var stderr = [] , prevStderrLen = 0 -process.stderr.write = function(string, encoding, fd) { - stderr.push(string) -} - tape('setup', function(t) { + process.stderr._oldWrite = process.stderr.write + process.stderr.write = function(string, encoding, fd) { + stderr.push(string) + } + s.listen(6767, function() { t.end() }) @@ -24,6 +25,8 @@ tape('setup', function(t) { tape('a simple request should not fail with debugging enabled', function(t) { request.debug = true + t.equal(request.Request.debug, true, 'request.debug sets request.Request.debug') + t.equal(request.debug, true, 'request.debug gets request.Request.debug') stderr = [] request('http://localhost:6767', function(err, res, body) { @@ -68,6 +71,8 @@ tape('there should be no further lookups on process.env', function(t) { tape('it should be possible to disable debugging at runtime', function(t) { request.debug = false + t.equal(request.Request.debug, false, 'request.debug sets request.Request.debug') + t.equal(request.debug, false, 'request.debug gets request.Request.debug') stderr = [] request('http://localhost:6767', function(err, res, body) { @@ -79,6 +84,9 @@ tape('it should be possible to disable debugging at runtime', function(t) { }) tape('cleanup', function(t) { + process.stderr.write = process.stderr._oldWrite + delete process.stderr._oldWrite + s.close(function() { t.end() })