core/cases.js

/**
 * @module
 * @memberOf core
 */
/**
 * @static
 * @param name
 * @returns {string}
 */
function kebab(name) {
    let kb = "";
    let pres = false;
    for (let i=0;i<name.length; i++) {
        let c = name.charAt(i);
        if (c === '_') {
            kb += '-';
            pres = true;
            continue;
        }
        if (c >= 'A' && c <= 'Z') {
            if (i>0 && !pres) {
                kb+='-';
            }
        }
        kb+=c.toLowerCase();
        pres = false;
    }
    return kb;
}
/**
 * @static
 * @param name
 * @returns {string}
 */
function snake(name) {
    let snk = "";
    let pres = false;
    for (let i=0;i<name.length; i++) {
        let c = name.charAt(i);
        if (c === '-') {
            snk += '_';
            pres = true;
            continue;
        }
        if (c >= 'A' && c <= 'Z') {
            if (i>0 && !pres) {
                snk+='_';
            }
        }
        snk+=c.toLowerCase();
        pres = false;
    }
    return snk;
}
/**
 * @static
 * @param name
 * @returns {string}
 */
function camel(name) {
    let cml = "";
    let pres = false;
    for (let i=0;i<name.length; i++) {
        let c = name.charAt(i);
        if (c === '-' || c === '_') {
            pres = true;
        } else if (pres === true) {
            cml+=c.toUpperCase();
            pres = false;
        } else {
            if (i === 0) {
                cml += c.toLowerCase();
            } else {
                cml += c;
            }
        }
    }
    return cml;
}
/**
 * @static
 * @param name
 * @returns {string}
 */
function pascal(name) {
    let psc = "";
    let pres = false;
    for (let i=0;i<name.length; i++) {
        let c = name.charAt(i);
        if (c === '-' || c === '_') {
            pres = true;
        } else if (pres === true) {
            psc+=c.toUpperCase();
            pres = false;
        } else {
            if (i === 0) {
                psc += c.toUpperCase();
            } else {
                psc += c;
            }
        }
    }
    return psc;
}

module.exports = {kebab, camel, pascal, snake}