react-starter-kit-cli-cars
Version:
cli companion to react-starter-kit
86 lines (67 loc) • 1.57 kB
JavaScript
const DELIMITERS = ['-', '_', ' ']
function isUpperCase(c) {
return c === c.toUpperCase()
}
function isLowerCase(c) {
return c === c.toLowerCase()
}
export default {
commandsFromTemplate(input, match) {
let str = match.replace('%', '')
str = str.replace('[', '')
str = str.replace(']', '')
let commands = str.split('|')
commands = commands.slice(1, commands.length)
commands.forEach(command => {
if (!this[command]) return
input = this[command](input)
})
return input
},
capitalize(str) {
return str[0].toUpperCase() + str.slice(1, str.length)
},
camelCase(str) {
let newStr = ''
for (let i = 0; i < str.length; i++) {
const char = str[i]
if (~DELIMITERS.indexOf(char)) {
newStr += str[++i].toUpperCase()
continue
}
newStr += char
}
return newStr
},
snakeCase(str) {
let newStr = ''
const delimiter = '-'
for (let i = 0; i < str.length; i++) {
const char = str[i]
if (char === delimiter) {
newStr += char
continue
}
if (isUpperCase(char)) {
newStr += delimiter
}
newStr += char.toLowerCase()
}
return newStr
},
camelCaseTo(str, seperator) {
let newStr = ''
for (let i = 0; i < str.length; i++) {
const char = str[i]
if (char === seperator) {
newStr += char
continue
}
if (isUpperCase(char)) {
newStr += seperator
}
newStr += char
}
return newStr.toLowerCase()
},
}