UNPKG

marko

Version:

UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.

45 lines (37 loc) 935 B
"use strict"; var camelToDashLookup = Object.create(null); var dashToCamelLookup = Object.create(null); /** * Helper for converting camelCase to dash-case. */ exports.bk_ = function camelToDashCase(name) { var nameDashed = camelToDashLookup[name]; if (!nameDashed) { nameDashed = camelToDashLookup[name] = name. replace(/([A-Z])/g, "-$1"). toLowerCase(); if (nameDashed !== name) { dashToCamelLookup[nameDashed] = name; } } return nameDashed; }; /** * Helper for converting dash-case to camelCase. */ exports.bl_ = function dashToCamelCase(name) { var nameCamel = dashToCamelLookup[name]; if (!nameCamel) { nameCamel = dashToCamelLookup[name] = name.replace( /-([a-z])/g, matchToUpperCase ); if (nameCamel !== name) { camelToDashLookup[nameCamel] = name; } } return nameCamel; }; function matchToUpperCase(_, char) { return char.toUpperCase(); }