christophehurpeau/html-document

View on GitHub
src/utils/escapeAttributeName.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Function converts attribute name "data-some-value" to "someValue".
 *
 * @param {string} name
 * @returns {string}
 */
export function attributeNameToProperty(name) {
    let result = name.replace(/^data-/i, '');
    return result.replace(/-(\w)/g, (match, letter) => letter.toUpperCase());
}

/**
 * Function converts dataset property name "someValue" to "data-some-value".
 *
 * @param {string} name
 * @returns {string}
 */
export function propertyNameToAttribute(name) {
    let result = name.replace(/([A-Z])/g, (match, letter) => '-' + letter.toLowerCase());
    return 'data-' + result;
}