Node-Red configuration
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * Export.
  3. */
  4. module.exports = toNoCase
  5. /**
  6. * Test whether a string is camel-case.
  7. */
  8. var hasSpace = /\s/
  9. var hasSeparator = /(_|-|\.|:)/
  10. var hasCamel = /([a-z][A-Z]|[A-Z][a-z])/
  11. /**
  12. * Remove any starting case from a `string`, like camel or snake, but keep
  13. * spaces and punctuation that may be important otherwise.
  14. *
  15. * @param {String} string
  16. * @return {String}
  17. */
  18. function toNoCase(string) {
  19. if (hasSpace.test(string)) return string.toLowerCase()
  20. if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()
  21. if (hasCamel.test(string)) return uncamelize(string).toLowerCase()
  22. return string.toLowerCase()
  23. }
  24. /**
  25. * Separator splitter.
  26. */
  27. var separatorSplitter = /[\W_]+(.|$)/g
  28. /**
  29. * Un-separate a `string`.
  30. *
  31. * @param {String} string
  32. * @return {String}
  33. */
  34. function unseparate(string) {
  35. return string.replace(separatorSplitter, function (m, next) {
  36. return next ? ' ' + next : ''
  37. })
  38. }
  39. /**
  40. * Camelcase splitter.
  41. */
  42. var camelSplitter = /(.)([A-Z]+)/g
  43. /**
  44. * Un-camelcase a `string`.
  45. *
  46. * @param {String} string
  47. * @return {String}
  48. */
  49. function uncamelize(string) {
  50. return string.replace(camelSplitter, function (m, previous, uppers) {
  51. return previous + ' ' + uppers.toLowerCase().split('').join(' ')
  52. })
  53. }