UNPKG

@looker/embed-services

Version:
92 lines 4.05 kB
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import { all_themes, default_theme, delete_theme, theme, update_theme } from '@looker/sdk'; import { ItemList } from './ItemList'; import { getFactory } from './ServiceFactory'; class ThemeService extends ItemList { constructor() { super(...arguments); _defineProperty(this, "defaultTheme", void 0); } get(id, options) { var _this = this; return _asyncToGenerator(function* () { var cache = _this.getCacheDefault(options); _this.clearIfExpired(); var item = _this.indexedItems[id]; if (cache && item) { return item; } item = yield _this.sdk.ok(theme(_this.sdk, id, options === null || options === void 0 ? void 0 : options.fields)); if (item) { _this.items = [..._this.items, item]; _this.index(); _this.setExpiration(); } return item; })(); } getAll(options) { var _this2 = this; return _asyncToGenerator(function* () { if (_this2.getCacheDefault(options) && !_this2.expired()) { return _this2; } yield _this2.load(options); return _this2; })(); } set(id, item) { var _this3 = this; return _asyncToGenerator(function* () { _this3.clearIfExpired(); var theme = yield _this3.sdk.ok(update_theme(_this3.sdk, id, item)); if (theme) { _this3.items = [..._this3.items, theme]; _this3.index(); _this3.setExpiration(); } return theme; })(); } getDefaultTheme(ts) { var _this4 = this; return _asyncToGenerator(function* () { if (_this4.expired()) { _this4.defaultTheme = yield _this4.sdk.ok(default_theme(_this4.sdk, ts)); } return _this4.defaultTheme; })(); } delete(id) { var _this5 = this; return _asyncToGenerator(function* () { _this5.clearIfExpired(); yield _this5.sdk.ok(delete_theme(_this5.sdk, id)); _this5.items = _this5.items.filter(item => item.id !== id); _this5.index(); })(); } load(options) { var _this6 = this; return _asyncToGenerator(function* () { yield _this6.getDefaultTheme(); _this6.items = yield _this6.sdk.ok(all_themes(_this6.sdk, options === null || options === void 0 ? void 0 : options.fields)); _this6.index(); _this6.setExpiration(); return _this6; })(); } } export var THEME_SERVICE_NAME = 'ThemeService'; export var themeServiceCreator = (sdk, timeToLive) => { return new ThemeService(sdk, timeToLive); }; export var registerThemeService = timeToLive => { getFactory().register(THEME_SERVICE_NAME, themeServiceCreator, timeToLive); }; export var getThemeService = () => getFactory().get(THEME_SERVICE_NAME); //# sourceMappingURL=ThemeService.js.map