jam-cloud/jam-ui/node_modules/jss/lib/utils/createGenerateClassName.js

57 lines
1.5 KiB
JavaScript

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _StyleSheet = require('../StyleSheet');
var _StyleSheet2 = _interopRequireDefault(_StyleSheet);
var _moduleId = require('./moduleId');
var _moduleId2 = _interopRequireDefault(_moduleId);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var maxRules = 1e10;
var env = process.env.NODE_ENV;
/**
* Returns a function which generates unique class names based on counters.
* When new generator function is created, rule counter is reseted.
* We need to reset the rule counter for SSR for each request.
*/
exports['default'] = function () {
var ruleCounter = 0;
var defaultPrefix = env === 'production' ? 'c' : '';
return function (rule, sheet) {
ruleCounter += 1;
if (ruleCounter > maxRules) {
(0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter);
}
var prefix = defaultPrefix;
var jssId = '';
if (sheet) {
prefix = sheet.options.classNamePrefix || defaultPrefix;
if (sheet.options.jss.id != null) jssId += sheet.options.jss.id;
}
if (env === 'production') {
return '' + prefix + _moduleId2['default'] + jssId + ruleCounter;
}
return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter;
};
};