judocss
Version:
The functional CSS toolkit designed for minimal effort and maximum efficiency.
50 lines (38 loc) • 1.17 kB
JavaScript
;
(function () {
var findKeyCache = {};
function _findKey(regMap, className) {
className = className.replace(/--(small|medium|large|small-only|medium-only)\*?$/, "");
var parts = className.split("-");
if (parts.length <= 1) {
return className;
}
var i = parts.length;
var key = void 0;
while (i--) {
parts.pop();
key = parts.join("-") + "-";
if (regMap[key]) {
return key;
}
}
}
function findKey(regMap, className) {
findKeyCache[className] = findKeyCache[className] || _findKey(regMap, className);
return findKeyCache[className];
}
var lookup = function lookup(className, classMap) {
var key = findKey(classMap, className);
var entries = classMap[key];
if (entries) {
var i = entries.length;
while (i--) {
var entry = entries[i];
if (entry.regex.test(className)) {
return entry;
}
}
}
};
module.exports = lookup;
})();