createTheme.js 549 B

1234567891011121314151617
  1. import ThemeCache from "./ThemeCache";
  2. import Theme from "./Theme";
  3. var 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. var 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. }