clean-url.js 564 B

123456789101112131415161718192021222324252627
  1. const { URL } = require('url')
  2. const replace = '***'
  3. const tokenRegex = /\bnpm_[a-zA-Z0-9]{36}\b/g
  4. const guidRegex = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/g
  5. const cleanUrl = (str) => {
  6. if (typeof str !== 'string' || !str) {
  7. return str
  8. }
  9. try {
  10. const url = new URL(str)
  11. if (url.password) {
  12. url.password = replace
  13. str = url.toString()
  14. }
  15. } catch {
  16. // ignore errors
  17. }
  18. return str
  19. .replace(tokenRegex, `npm_${replace}`)
  20. .replace(guidRegex, `npm_${replace}`)
  21. }
  22. module.exports = cleanUrl