UNPKG

@descope/sdk-mixins

Version:
54 lines (50 loc) 2.77 kB
'use strict'; var tslib = require('tslib'); var sdkHelpers = require('@descope/sdk-helpers'); var staticResourcesMixin = require('../staticResourcesMixin/staticResourcesMixin.js'); var constants = require('./constants.js'); var resetMixin = require('../resetMixin.js'); var initLifecycleMixin = require('../initLifecycleMixin.js'); const configMixin = sdkHelpers.createSingletonMixin((superclass) => { var _ConfigMixinClass_instances, _ConfigMixinClass_configCacheClear, _ConfigMixinClass__configResource, _ConfigMixinClass_fetchConfig, _a; const BaseClass = sdkHelpers.compose(staticResourcesMixin.staticResourcesMixin, resetMixin.resetMixin, initLifecycleMixin.initLifecycleMixin)(superclass); return _a = class ConfigMixinClass extends BaseClass { constructor() { super(...arguments); _ConfigMixinClass_instances.add(this); _ConfigMixinClass__configResource.set(this, void 0); _ConfigMixinClass_fetchConfig.set(this, async () => { try { const { body, headers, } = await this.fetchStaticResource(constants.CONFIG_FILENAME, 'json'); return { projectConfig: body, executionContext: { geo: headers['x-geo'] }, }; } catch (e) { this.logger.error('Cannot fetch config file', 'make sure that your projectId & flowId are correct'); } return undefined; }); } async init() { await super.init(); this.onReset('config', tslib.__classPrivateFieldGet(this, _ConfigMixinClass_instances, "m", _ConfigMixinClass_configCacheClear).bind(this)); } get config() { if (!tslib.__classPrivateFieldGet(this, _ConfigMixinClass__configResource, "f")) { tslib.__classPrivateFieldSet(this, _ConfigMixinClass__configResource, tslib.__classPrivateFieldGet(this, _ConfigMixinClass_fetchConfig, "f").call(this), "f"); } return tslib.__classPrivateFieldGet(this, _ConfigMixinClass__configResource, "f"); } }, _ConfigMixinClass__configResource = new WeakMap(), _ConfigMixinClass_fetchConfig = new WeakMap(), _ConfigMixinClass_instances = new WeakSet(), _ConfigMixinClass_configCacheClear = function _ConfigMixinClass_configCacheClear() { tslib.__classPrivateFieldSet(this, _ConfigMixinClass__configResource, undefined, "f"); }, _a; }); exports.configMixin = configMixin; //# sourceMappingURL=configMixin.js.map