12345678910111213141516171819202122232425262728293031 |
- const URL = require('url').URL
- // replaces auth info in an array of arguments or in a strings
- function replaceInfo (arg) {
- const isArray = Array.isArray(arg)
- const isString = str => typeof str === 'string'
- if (!isArray && !isString(arg))
- return arg
- const testUrlAndReplace = str => {
- try {
- const url = new URL(str)
- return url.password === '' ? str : str.replace(url.password, '***')
- } catch (e) {
- return str
- }
- }
- const args = isString(arg) ? arg.split(' ') : arg
- const info = args.map(a => {
- if (isString(a) && a.indexOf(' ') > -1)
- return a.split(' ').map(testUrlAndReplace).join(' ')
- return testUrlAndReplace(a)
- })
- return isString(arg) ? info.join(' ') : info
- }
- module.exports = replaceInfo
|