57 lines
1.5 KiB
JavaScript
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;
|
|
};
|
|
}; |