From e71fb9ab24c70c65341b8a9448e22108c0bdf106 Mon Sep 17 00:00:00 2001 From: Peter Jaszkowiak Date: Thu, 1 Jun 2017 14:04:23 -0600 Subject: [PATCH] Fix `node --inspect` --- src/meta/debugParams.js | 15 +++++++++++++++ src/meta/minifier.js | 27 +++------------------------ src/password.js | 9 +++------ 3 files changed, 21 insertions(+), 30 deletions(-) create mode 100644 src/meta/debugParams.js diff --git a/src/meta/debugParams.js b/src/meta/debugParams.js new file mode 100644 index 0000000000..952dc8dd04 --- /dev/null +++ b/src/meta/debugParams.js @@ -0,0 +1,15 @@ +'use strict'; + +module.exports = function () { + var debugArg = process.execArgv.find(function (arg) { + return /^--(debug|inspect)/.test(arg); + }); + if (global.v8debug || debugArg) { + debugArg = debugArg ? debugArg.split('=') : ['--debug', 5859]; + var num = parseInt(debugArg[1], 10) + 1; + + return { execArgv: [debugArg[0] + '=' + num, '--nolazy'] }; + } + + return { execArgv: [] }; +}; diff --git a/src/meta/minifier.js b/src/meta/minifier.js index e9b6243d2f..4b64420701 100644 --- a/src/meta/minifier.js +++ b/src/meta/minifier.js @@ -11,30 +11,9 @@ var postcss = require('postcss'); var autoprefixer = require('autoprefixer'); var clean = require('postcss-clean'); -var Minifier = module.exports; - -function setupDebugging() { - /** - * Check if the parent process is running with the debug option --debug (or --debug-brk) - */ - var forkProcessParams = {}; - if (global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { - /** - * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but - * you'll have to setup your debugger and connect to the forked process) - */ - // forkProcessParams = { execArgv: ['--debug=' + (global.process.debugPort + 1), '--nolazy'] }; - - /** - * otherwise, just clean up --debug/--debug-brk options which are set up by default from the parent one - */ - forkProcessParams = { - execArgv: [], - }; - } +var debugParams = require('./debugParams'); - return forkProcessParams; -} +var Minifier = module.exports; var pool = []; var free = []; @@ -68,7 +47,7 @@ function getChild() { return free.shift(); } - var forkProcessParams = setupDebugging(); + var forkProcessParams = debugParams(); var proc = childProcess.fork(__filename, [], Object.assign({}, forkProcessParams, { cwd: __dirname, env: { diff --git a/src/password.js b/src/password.js index 76123ed974..137382c993 100644 --- a/src/password.js +++ b/src/password.js @@ -1,9 +1,10 @@ 'use strict'; - var fork = require('child_process').fork; var path = require('path'); +var debugParams = require('./meta/debugParams'); + exports.hash = function (rounds, password, callback) { forkChild({ type: 'hash', rounds: rounds, password: password }, callback); }; @@ -16,11 +17,7 @@ exports.compare = function (password, hash, callback) { }; function forkChild(message, callback) { - var forkProcessParams = {}; - if (global.v8debug || parseInt(process.execArgv.indexOf('--debug'), 10) !== -1) { - forkProcessParams = { execArgv: ['--debug=' + (5859), '--nolazy'] }; - } - var child = fork(path.join(__dirname, 'bcrypt'), [], forkProcessParams); + var child = fork(path.join(__dirname, 'bcrypt'), [], debugParams()); child.on('message', function (msg) { if (msg.err) {