17 lines
549 B
JavaScript
17 lines
549 B
JavaScript
import ThemeCache from "./ThemeCache";
|
|
import Theme from "./Theme";
|
|
var cacheThemes = new ThemeCache();
|
|
|
|
/**
|
|
* Same as new Theme, but will always return same one if `derivative` not changed.
|
|
*/
|
|
export default function createTheme(derivatives) {
|
|
var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];
|
|
// Create new theme if not exist
|
|
if (!cacheThemes.has(derivativeArr)) {
|
|
cacheThemes.set(derivativeArr, new Theme(derivativeArr));
|
|
}
|
|
|
|
// Get theme from cache and return
|
|
return cacheThemes.get(derivativeArr);
|
|
} |