UNPKG

marko

Version:

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

46 lines (37 loc) 971 B
"use strict"; var camelToDashLookup = Object.create(null); var dashToCamelLookup = Object.create(null); /** * Helper for converting camelCase to dash-case. */ exports.___camelToDashCase = 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.___dashToCamelCase = 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(); }