24 lines
805 B
JavaScript
24 lines
805 B
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = createTheme;
|
||
|
var _ThemeCache = _interopRequireDefault(require("./ThemeCache"));
|
||
|
var _Theme = _interopRequireDefault(require("./Theme"));
|
||
|
var cacheThemes = new _ThemeCache.default();
|
||
|
|
||
|
/**
|
||
|
* Same as new Theme, but will always return same one if `derivative` not changed.
|
||
|
*/
|
||
|
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.default(derivativeArr));
|
||
|
}
|
||
|
|
||
|
// Get theme from cache and return
|
||
|
return cacheThemes.get(derivativeArr);
|
||
|
}
|