From 8b3605dd04e36afd33f464ec891f9ed71c74bfa4 Mon Sep 17 00:00:00 2001 From: Pierre Vanduynslager Date: Sat, 27 Jan 2018 18:05:16 -0500 Subject: [PATCH] fix: hide sensitive info for `Buffer` and `undefined` --- lib/hide-sensitive.js | 13 +++++-------- test/hide-sensitive.test.js | 8 ++++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/hide-sensitive.js b/lib/hide-sensitive.js index 9d6e36b4..cd5709e3 100644 --- a/lib/hide-sensitive.js +++ b/lib/hide-sensitive.js @@ -1,11 +1,8 @@ const {escapeRegExp} = require('lodash'); -const regexp = new RegExp( - Object.keys(process.env) - .filter(envVar => /token|password|credential|secret|private/i.test(envVar)) - .map(envVar => escapeRegExp(process.env[envVar])) - .join('|'), - 'g' -); +const toReplace = Object.keys(process.env).filter(envVar => /token|password|credential|secret|private/i.test(envVar)); +const regexp = new RegExp(toReplace.map(envVar => escapeRegExp(process.env[envVar])).join('|'), 'g'); -module.exports = output => output.replace(regexp, '[secure]'); +module.exports = output => { + return output && toReplace.length > 0 ? output.toString().replace(regexp, '[secure]') : output; +}; diff --git a/test/hide-sensitive.test.js b/test/hide-sensitive.test.js index 7a8fd55a..815f8670 100644 --- a/test/hide-sensitive.test.js +++ b/test/hide-sensitive.test.js @@ -32,3 +32,11 @@ test.serial('Escape regexp special characters', t => { 'https://user:[secure]@host.com' ); }); + +test.serial('Accept "undefined" input', t => { + t.is(require('../lib/hide-sensitive')(), undefined); +}); + +test.serial('Return same string if no environment variable has to be replaced', t => { + t.is(require('../lib/hide-sensitive')('test'), 'test'); +});