ts-transform-css-modules-next
Version:
Transforms styleName to atomic CSS className using compile time CSS module resolution.
17 lines (16 loc) • 702 B
JavaScript
;
// Credits
// https://github.com/rofrischmann/fela/blob/master/packages/fela/src/generateClassName.js
Object.defineProperty(exports, "__esModule", { value: true });
var chars = 'abcdefghijklmnopqrstuvwxyz';
var charLength = chars.length;
function generateUniqueClassName(id, className) {
if (className === void 0) { className = ''; }
if (id <= charLength) {
return chars[id - 1] + className;
}
// Bitwise floor as safari performs much faster
// https://jsperf.com/math-floor-vs-math-round-vs-parseint/55
return generateUniqueClassName((id / charLength) | 0, chars[id % charLength] + className);
}
exports.default = generateUniqueClassName;