singularize.js 389 B

12345678910111213141516171819202122
  1. /**
  2. * Singularize.
  3. *
  4. * @param {string} noun
  5. * @returns {string}
  6. */
  7. export function singularize(noun) {
  8. if (!noun || typeof noun !== 'string') return noun;
  9. const endings = {
  10. ves: 'fe',
  11. ies: 'y',
  12. i: 'us',
  13. zes: 'ze',
  14. ses: 's',
  15. es: 'e',
  16. s: '',
  17. };
  18. return noun.replace(
  19. new RegExp(`(${Object.keys(endings).join('|')})$`),
  20. r => endings[r],
  21. );
  22. }