nukak
Version:
flexible and efficient ORM, with declarative JSON syntax and smart type-safety
34 lines • 4.09 kB
JavaScript
export function kebabCase(val) {
let resp = val.charAt(0).toLowerCase();
for (let i = 1; i < val.length; ++i) {
resp += val[i] === val[i].toUpperCase() ? '-' + val[i].toLowerCase() : val[i];
}
return resp;
}
export function upperFirst(text) {
return text[0].toUpperCase() + text.slice(1);
}
export function lowerFirst(text) {
return text[0].toLowerCase() + text.slice(1);
}
export function snakeCase(val) {
if (val === undefined || val === null) {
return val;
}
if (!val) {
return '';
}
let resp = val.charAt(0).toLowerCase();
for (let i = 1; i < val.length; ++i) {
const char = val[i];
const charLower = char.toLowerCase();
if (char !== charLower && char === char.toUpperCase()) {
resp += '_' + charLower;
}
else {
resp += char;
}
}
return resp;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXO0lBQ25DLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN0RCxJQUFJLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksSUFBSSxJQUFJLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBrZWJhYkNhc2UodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgcmVzcCA9IHZhbC5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPCB2YWwubGVuZ3RoOyArK2kpIHtcbiAgICByZXNwICs9IHZhbFtpXSA9PT0gdmFsW2ldLnRvVXBwZXJDYXNlKCkgPyAnLScgKyB2YWxbaV0udG9Mb3dlckNhc2UoKSA6IHZhbFtpXTtcbiAgfVxuICByZXR1cm4gcmVzcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwcGVyRmlyc3QodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRbMF0udG9VcHBlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb3dlckZpcnN0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0WzBdLnRvTG93ZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc25ha2VDYXNlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gbnVsbCkge1xuICAgIHJldHVybiB2YWw7XG4gIH1cbiAgaWYgKCF2YWwpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgbGV0IHJlc3AgPSB2YWwuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgdmFsLmxlbmd0aDsgKytpKSB7XG4gICAgY29uc3QgY2hhciA9IHZhbFtpXTtcbiAgICBjb25zdCBjaGFyTG93ZXIgPSBjaGFyLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGNoYXIgIT09IGNoYXJMb3dlciAmJiBjaGFyID09PSBjaGFyLnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgIHJlc3AgKz0gJ18nICsgY2hhckxvd2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwICs9IGNoYXI7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNwO1xufVxuIl19