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) {