camel-to-hyphen.js 819 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "use strict";
  2. var ensureString = require("type/string/ensure")
  3. , objHasOwnProperty = Object.prototype.hasOwnProperty;
  4. var capitalLetters = {
  5. A: true,
  6. B: true,
  7. C: true,
  8. D: true,
  9. E: true,
  10. F: true,
  11. G: true,
  12. H: true,
  13. I: true,
  14. J: true,
  15. K: true,
  16. L: true,
  17. M: true,
  18. N: true,
  19. O: true,
  20. P: true,
  21. Q: true,
  22. R: true,
  23. S: true,
  24. T: true,
  25. U: true,
  26. V: true,
  27. W: true,
  28. X: true,
  29. Y: true,
  30. Z: true
  31. };
  32. module.exports = function () {
  33. var input = ensureString(this);
  34. if (!input) return input;
  35. var outputLetters = [];
  36. for (var index = 0, letter; (letter = input[index]); ++index) {
  37. if (objHasOwnProperty.call(capitalLetters, letter)) {
  38. if (index) outputLetters.push("-");
  39. outputLetters.push(letter.toLowerCase());
  40. } else {
  41. outputLetters.push(letter);
  42. }
  43. }
  44. return outputLetters.join("");
  45. };