fix: exclude empty env var value from replacement
This commit is contained in:
parent
857d4180e9
commit
20246c02b1
@ -1,6 +1,9 @@
|
|||||||
const {escapeRegExp} = require('lodash');
|
const {escapeRegExp} = require('lodash');
|
||||||
|
|
||||||
const toReplace = Object.keys(process.env).filter(envVar => /token|password|credential|secret|private/i.test(envVar));
|
const toReplace = Object.keys(process.env).filter(
|
||||||
|
envVar => /token|password|credential|secret|private/i.test(envVar) && process.env[envVar].trim()
|
||||||
|
);
|
||||||
|
|
||||||
const regexp = new RegExp(toReplace.map(envVar => escapeRegExp(process.env[envVar])).join('|'), 'g');
|
const regexp = new RegExp(toReplace.map(envVar => escapeRegExp(process.env[envVar])).join('|'), 'g');
|
||||||
|
|
||||||
module.exports = output => {
|
module.exports = output => {
|
||||||
|
@ -40,3 +40,18 @@ test.serial('Accept "undefined" input', t => {
|
|||||||
test.serial('Return same string if no environment variable has to be replaced', t => {
|
test.serial('Return same string if no environment variable has to be replaced', t => {
|
||||||
t.is(require('../lib/hide-sensitive')('test'), 'test');
|
t.is(require('../lib/hide-sensitive')('test'), 'test');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.serial('Exclude empty environment variables from the regexp', t => {
|
||||||
|
process.env.SOME_PASSWORD = 'password';
|
||||||
|
process.env.SOME_TOKEN = '';
|
||||||
|
t.is(
|
||||||
|
require('../lib/hide-sensitive')(`https://user:${process.env.SOME_PASSWORD}@host.com?token=`),
|
||||||
|
'https://user:[secure]@host.com?token='
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test.serial('Exclude empty environment variables from the regexp if there is only empty ones', t => {
|
||||||
|
process.env.SOME_PASSWORD = '';
|
||||||
|
process.env.SOME_TOKEN = ' \n ';
|
||||||
|
t.is(require('../lib/hide-sensitive')(`https://host.com?token=`), 'https://host.com?token=');
|
||||||
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user