Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

57 wiersze
1.5 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _warning = require('warning');
  6. var _warning2 = _interopRequireDefault(_warning);
  7. var _StyleSheet = require('../StyleSheet');
  8. var _StyleSheet2 = _interopRequireDefault(_StyleSheet);
  9. var _moduleId = require('./moduleId');
  10. var _moduleId2 = _interopRequireDefault(_moduleId);
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  12. var maxRules = 1e10;
  13. var env = process.env.NODE_ENV;
  14. /**
  15. * Returns a function which generates unique class names based on counters.
  16. * When new generator function is created, rule counter is reseted.
  17. * We need to reset the rule counter for SSR for each request.
  18. */
  19. exports['default'] = function () {
  20. var ruleCounter = 0;
  21. var defaultPrefix = env === 'production' ? 'c' : '';
  22. return function (rule, sheet) {
  23. ruleCounter += 1;
  24. if (ruleCounter > maxRules) {
  25. (0, _warning2['default'])(false, '[JSS] You might have a memory leak. Rule counter is at %s.', ruleCounter);
  26. }
  27. var prefix = defaultPrefix;
  28. var jssId = '';
  29. if (sheet) {
  30. prefix = sheet.options.classNamePrefix || defaultPrefix;
  31. if (sheet.options.jss.id != null) jssId += sheet.options.jss.id;
  32. }
  33. if (env === 'production') {
  34. return '' + prefix + _moduleId2['default'] + jssId + ruleCounter;
  35. }
  36. return prefix + rule.key + '-' + _moduleId2['default'] + (jssId && '-' + jssId) + '-' + ruleCounter;
  37. };
  38. };