createTheme.js 551 B

123456789101112131415
  1. import ThemeCache from './ThemeCache';
  2. import Theme from './Theme';
  3. const cacheThemes = new ThemeCache();
  4. /**
  5. * Same as new Theme, but will always return same one if `derivative` not changed.
  6. */
  7. export default function createTheme(derivatives) {
  8. const derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];
  9. // Create new theme if not exist
  10. if (!cacheThemes.has(derivativeArr)) {
  11. cacheThemes.set(derivativeArr, new Theme(derivativeArr));
  12. }
  13. // Get theme from cache and return
  14. return cacheThemes.get(derivativeArr);
  15. }