pretty-lights
Version:
CSS-in-JS with a reliable API
30 lines (24 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.replaceClassNames = void 0;
function defaultClassNameReplacer(className, index) {
return "lights-".concat(index);
}
var componentSelectorClassNamePattern = /^e[a-zA-Z0-9]+[0-9]+$/; // eslint-disable-next-line import/prefer-default-export
var replaceClassNames = function replaceClassNames(classNames, styles, code, keys) {
var classNameReplacer = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : defaultClassNameReplacer;
var index = 0;
var keyPattern = new RegExp("^(".concat(keys.join('|'), ")-"));
return classNames.reduce(function (acc, className) {
if (keyPattern.test(className) || componentSelectorClassNamePattern.test(className)) {
var escapedRegex = new RegExp(className.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'g');
var returnVal = acc.replace(escapedRegex, classNameReplacer(className, index));
index += 1;
return returnVal;
}
return acc;
}, "".concat(styles).concat(styles ? '\n\n' : '').concat(code));
};
exports.replaceClassNames = replaceClassNames;