normalize-path.js 687 B

12345678910111213141516171819202122
  1. /**
  2. * Normalize path.
  3. *
  4. * Заменяет любые повторяющиеся слеши на один.
  5. * Удаляет пробельные символы в начале и конце.
  6. * Удаляет слеш в конце строки.
  7. * Гарантирует слеш в начале строки (по умолчанию).
  8. *
  9. * @param {string} value
  10. * @param {boolean} [noStartingSlash]
  11. * @returns {string}
  12. */
  13. export function normalizePath(value, noStartingSlash = false) {
  14. if (typeof value !== 'string') {
  15. return '/';
  16. }
  17. const res = value
  18. .trim()
  19. .replace(/\/+/g, '/')
  20. .replace(/(^\/|\/$)/g, '');
  21. return noStartingSlash ? res : '/' + res;
  22. }