createTheme.js 805 B

123456789101112131415161718192021222324
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = createTheme;
  7. var _ThemeCache = _interopRequireDefault(require("./ThemeCache"));
  8. var _Theme = _interopRequireDefault(require("./Theme"));
  9. var cacheThemes = new _ThemeCache.default();
  10. /**
  11. * Same as new Theme, but will always return same one if `derivative` not changed.
  12. */
  13. function createTheme(derivatives) {
  14. var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];
  15. // Create new theme if not exist
  16. if (!cacheThemes.has(derivativeArr)) {
  17. cacheThemes.set(derivativeArr, new _Theme.default(derivativeArr));
  18. }
  19. // Get theme from cache and return
  20. return cacheThemes.get(derivativeArr);
  21. }