@flopflip/http-adapter 13.0.0 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,15 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
5
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
7
6
  var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
8
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
9
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
10
- var _createClass = require('@babel/runtime/helpers/createClass');
11
7
  var _classPrivateFieldLooseBase = require('@babel/runtime/helpers/classPrivateFieldLooseBase');
12
8
  var _classPrivateFieldLooseKey = require('@babel/runtime/helpers/classPrivateFieldLooseKey');
13
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
14
9
  var adapterUtilities = require('@flopflip/adapter-utilities');
15
10
  var types = require('@flopflip/types');
16
11
  var isEqual = require('lodash/isEqual');
@@ -37,13 +32,12 @@ function _interopNamespace(e) {
37
32
  return Object.freeze(n);
38
33
  }
39
34
 
40
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefault(_regeneratorRuntime);
41
35
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
42
36
  var mitt__default = /*#__PURE__*/_interopDefault(mitt);
43
37
  var warning__default = /*#__PURE__*/_interopDefault(warning);
44
38
 
45
- var STORAGE_SLICE = '@flopflip';
46
- var intialAdapterState = {
39
+ const STORAGE_SLICE = '@flopflip';
40
+ const intialAdapterState = {
47
41
  subscriptionStatus: types.AdapterSubscriptionStatus.Subscribed,
48
42
  configurationStatus: types.AdapterConfigurationStatus.Unconfigured,
49
43
  flags: {},
@@ -60,10 +54,8 @@ var _getCache = /*#__PURE__*/_classPrivateFieldLooseKey("getCache");
60
54
  var _didFlagsChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagsChange");
61
55
  var _fetchFlags = /*#__PURE__*/_classPrivateFieldLooseKey("fetchFlags");
62
56
  var _subscribeToFlagsChanges = /*#__PURE__*/_classPrivateFieldLooseKey("subscribeToFlagsChanges");
63
- var HttpAdapter = /*#__PURE__*/function () {
64
- function HttpAdapter() {
65
- var _this = this;
66
- _classCallCheck(this, HttpAdapter);
57
+ class HttpAdapter {
58
+ constructor() {
67
59
  this.id = void 0;
68
60
  Object.defineProperty(this, _internalConfiguredStatusChange__, {
69
61
  writable: true,
@@ -79,362 +71,200 @@ var HttpAdapter = /*#__PURE__*/function () {
79
71
  });
80
72
  Object.defineProperty(this, _getIsAdapterUnsubscribed, {
81
73
  writable: true,
82
- value: function value() {
83
- return _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus === types.AdapterSubscriptionStatus.Unsubscribed;
84
- }
74
+ value: () => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].subscriptionStatus === types.AdapterSubscriptionStatus.Unsubscribed
85
75
  });
86
76
  Object.defineProperty(this, _getIsFlagLocked, {
87
77
  writable: true,
88
- value: function value(flagName) {
89
- return _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].lockedFlags.has(flagName);
90
- }
78
+ value: flagName => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].lockedFlags.has(flagName)
91
79
  });
92
80
  Object.defineProperty(this, _getCache, {
93
81
  writable: true,
94
- value: function () {
95
- var _value = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(cacheIdentifier) {
96
- var cacheModule, createCache, cache;
97
- return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
98
- while (1) switch (_context.prev = _context.next) {
99
- case 0:
100
- _context.t0 = cacheIdentifier;
101
- _context.next = _context.t0 === types.cacheIdentifiers.local ? 3 : _context.t0 === types.cacheIdentifiers.session ? 7 : 11;
102
- break;
103
- case 3:
104
- _context.next = 5;
105
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
106
- case 5:
107
- cacheModule = _context.sent;
108
- return _context.abrupt("break", 12);
109
- case 7:
110
- _context.next = 9;
111
- return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
112
- case 9:
113
- cacheModule = _context.sent;
114
- return _context.abrupt("break", 12);
115
- case 11:
116
- return _context.abrupt("break", 12);
117
- case 12:
118
- createCache = cacheModule.default;
119
- cache = createCache({
120
- prefix: STORAGE_SLICE
121
- });
122
- return _context.abrupt("return", {
123
- set: function set(flags) {
124
- return cache.set('flags', flags);
125
- },
126
- get: function get() {
127
- return cache.get('flags');
128
- },
129
- unset: function unset() {
130
- return cache.unset('flags');
131
- }
132
- });
133
- case 15:
134
- case "end":
135
- return _context.stop();
82
+ value: async cacheIdentifier => {
83
+ let cacheModule;
84
+ switch (cacheIdentifier) {
85
+ case types.cacheIdentifiers.local:
86
+ {
87
+ cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
88
+ break;
89
+ }
90
+ case types.cacheIdentifiers.session:
91
+ {
92
+ cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
93
+ break;
136
94
  }
137
- }, _callee);
138
- }));
139
- function value(_x) {
140
- return _value.apply(this, arguments);
141
95
  }
142
- return value;
143
- }()
96
+ const createCache = cacheModule.default;
97
+ const cache = createCache({
98
+ prefix: STORAGE_SLICE
99
+ });
100
+ return {
101
+ set(flags) {
102
+ return cache.set('flags', flags);
103
+ },
104
+ get() {
105
+ return cache.get('flags');
106
+ },
107
+ unset() {
108
+ return cache.unset('flags');
109
+ }
110
+ };
111
+ }
144
112
  });
145
113
  Object.defineProperty(this, _didFlagsChange, {
146
114
  writable: true,
147
- value: function value(nextFlags) {
148
- var previousFlags = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags;
115
+ value: nextFlags => {
116
+ const previousFlags = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags;
149
117
  if (previousFlags === undefined) return true;
150
118
  return !isEqual__default["default"](nextFlags, previousFlags);
151
119
  }
152
120
  });
153
121
  Object.defineProperty(this, _fetchFlags, {
154
122
  writable: true,
155
- value: function () {
156
- var _value2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(adapterArgs) {
157
- var flags;
158
- return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
159
- while (1) switch (_context2.prev = _context2.next) {
160
- case 0:
161
- _context2.next = 2;
162
- return adapterArgs.execute();
163
- case 2:
164
- flags = _context2.sent;
165
- return _context2.abrupt("return", flags);
166
- case 4:
167
- case "end":
168
- return _context2.stop();
169
- }
170
- }, _callee2);
171
- }));
172
- function value(_x2) {
173
- return _value2.apply(this, arguments);
174
- }
175
- return value;
176
- }()
123
+ value: async adapterArgs => {
124
+ const flags = await adapterArgs.execute();
125
+ return flags;
126
+ }
177
127
  });
178
128
  Object.defineProperty(this, _subscribeToFlagsChanges, {
179
129
  writable: true,
180
- value: function value(adapterArgs) {
130
+ value: adapterArgs => {
181
131
  var _adapterArgs$pollingI;
182
- var pollingInteralMs = (_adapterArgs$pollingI = adapterArgs.pollingInteralMs) !== null && _adapterArgs$pollingI !== void 0 ? _adapterArgs$pollingI : _classPrivateFieldLooseBase(_this, _defaultPollingInteralMs)[_defaultPollingInteralMs];
183
- setInterval( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
184
- var nextFlags, cache;
185
- return _regeneratorRuntime__default["default"].wrap(function _callee3$(_context3) {
186
- while (1) switch (_context3.prev = _context3.next) {
187
- case 0:
188
- if (_classPrivateFieldLooseBase(_this, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) {
189
- _context3.next = 14;
190
- break;
191
- }
192
- _context3.t0 = adapterUtilities.normalizeFlags;
193
- _context3.next = 4;
194
- return _classPrivateFieldLooseBase(_this, _fetchFlags)[_fetchFlags](adapterArgs);
195
- case 4:
196
- _context3.t1 = _context3.sent;
197
- nextFlags = (0, _context3.t0)(_context3.t1);
198
- if (!_classPrivateFieldLooseBase(_this, _didFlagsChange)[_didFlagsChange](nextFlags)) {
199
- _context3.next = 14;
200
- break;
201
- }
202
- if (!adapterArgs.cacheIdentifier) {
203
- _context3.next = 12;
204
- break;
205
- }
206
- _context3.next = 10;
207
- return _classPrivateFieldLooseBase(_this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
208
- case 10:
209
- cache = _context3.sent;
132
+ const pollingInteralMs = (_adapterArgs$pollingI = adapterArgs.pollingInteralMs) !== null && _adapterArgs$pollingI !== void 0 ? _adapterArgs$pollingI : _classPrivateFieldLooseBase(this, _defaultPollingInteralMs)[_defaultPollingInteralMs];
133
+ setInterval(async () => {
134
+ if (!_classPrivateFieldLooseBase(this, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) {
135
+ const nextFlags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
136
+ if (_classPrivateFieldLooseBase(this, _didFlagsChange)[_didFlagsChange](nextFlags)) {
137
+ if (adapterArgs.cacheIdentifier) {
138
+ const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
210
139
  cache.set(nextFlags);
211
- case 12:
212
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags = nextFlags;
213
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
214
- case 14:
215
- case "end":
216
- return _context3.stop();
140
+ }
141
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = nextFlags;
142
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
217
143
  }
218
- }, _callee3);
219
- })), pollingInteralMs);
144
+ }
145
+ }, pollingInteralMs);
220
146
  }
221
147
  });
222
- this.getUser = function () {
223
- return _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].user;
224
- };
225
- this.updateFlags = function (flags, options) {
226
- var isAdapterConfigured = _this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured);
148
+ this.getUser = () => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user;
149
+ this.updateFlags = (flags, options) => {
150
+ const isAdapterConfigured = this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured);
227
151
  warning__default["default"](isAdapterConfigured, '@flopflip/http-adapter: adapter not configured. Flags can not be updated before.');
228
152
  if (!isAdapterConfigured) return;
229
- var previousFlags = _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags;
230
- var updatedFlags = Object.entries(flags).reduce(function (updatedFlags, _ref2) {
231
- var _ref3 = _slicedToArray(_ref2, 2),
232
- flagName = _ref3[0],
233
- flagValue = _ref3[1];
234
- var _normalizeFlag = adapterUtilities.normalizeFlag(flagName, flagValue),
153
+ const previousFlags = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags;
154
+ const updatedFlags = Object.entries(flags).reduce((updatedFlags, _ref) => {
155
+ let _ref2 = _slicedToArray(_ref, 2),
156
+ flagName = _ref2[0],
157
+ flagValue = _ref2[1];
158
+ const _normalizeFlag = adapterUtilities.normalizeFlag(flagName, flagValue),
235
159
  _normalizeFlag2 = _slicedToArray(_normalizeFlag, 2),
236
160
  normalizedFlagName = _normalizeFlag2[0],
237
161
  normalizedFlagValue = _normalizeFlag2[1];
238
- if (_classPrivateFieldLooseBase(_this, _getIsFlagLocked)[_getIsFlagLocked](normalizedFlagName)) return updatedFlags;
162
+ if (_classPrivateFieldLooseBase(this, _getIsFlagLocked)[_getIsFlagLocked](normalizedFlagName)) return updatedFlags;
239
163
  if (options !== null && options !== void 0 && options.lockFlags) {
240
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].lockedFlags.add(normalizedFlagName);
164
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].lockedFlags.add(normalizedFlagName);
241
165
  }
242
- updatedFlags = _objectSpread(_objectSpread({}, updatedFlags), {}, _defineProperty({}, normalizedFlagName, normalizedFlagValue));
166
+ updatedFlags = _objectSpread(_objectSpread({}, updatedFlags), {}, {
167
+ [normalizedFlagName]: normalizedFlagValue
168
+ });
243
169
  return updatedFlags;
244
170
  }, {});
245
- var nextFlags = _objectSpread(_objectSpread({}, previousFlags), updatedFlags);
246
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].flags = nextFlags;
247
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
171
+ const nextFlags = _objectSpread(_objectSpread({}, previousFlags), updatedFlags);
172
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = nextFlags;
173
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
248
174
  };
249
- this.reset = function () {
250
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState] = _objectSpread({}, intialAdapterState);
175
+ this.reset = () => {
176
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState] = _objectSpread({}, intialAdapterState);
251
177
  };
252
- this.unsubscribe = function () {
253
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Unsubscribed;
178
+ this.unsubscribe = () => {
179
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Unsubscribed;
254
180
  };
255
- this.subscribe = function () {
256
- _classPrivateFieldLooseBase(_this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Subscribed;
181
+ this.subscribe = () => {
182
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].subscriptionStatus = types.AdapterSubscriptionStatus.Subscribed;
257
183
  };
258
184
  this.id = types.adapterIdentifiers.http;
259
185
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState] = _objectSpread({}, intialAdapterState);
260
186
  }
261
- _createClass(HttpAdapter, [{
262
- key: "configure",
263
- value: function () {
264
- var _configure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(adapterArgs, adapterEventHandlers) {
265
- var _this2 = this;
266
- var handleFlagsChange, handleStatusChange;
267
- return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
268
- while (1) switch (_context5.prev = _context5.next) {
269
- case 0:
270
- handleFlagsChange = function handleFlagsChange(nextFlags) {
271
- if (_classPrivateFieldLooseBase(_this2, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
272
- adapterEventHandlers.onFlagsStateChange({
273
- flags: nextFlags,
274
- id: _this2.id
275
- });
276
- };
277
- handleStatusChange = function handleStatusChange(nextStatus) {
278
- if (_classPrivateFieldLooseBase(_this2, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
279
- adapterEventHandlers.onStatusStateChange({
280
- status: nextStatus,
281
- id: _this2.id
282
- });
283
- };
284
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('flagsStateChange', handleFlagsChange);
285
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('statusStateChange', handleStatusChange);
286
- this.setConfigurationStatus(types.AdapterConfigurationStatus.Configuring);
287
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = adapterArgs.user;
288
- return _context5.abrupt("return", Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4() {
289
- var cachedFlags, cache, flags, _cache;
290
- return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
291
- while (1) switch (_context4.prev = _context4.next) {
292
- case 0:
293
- if (!adapterArgs.cacheIdentifier) {
294
- _context4.next = 6;
295
- break;
296
- }
297
- _context4.next = 3;
298
- return _classPrivateFieldLooseBase(_this2, _getCache)[_getCache](adapterArgs.cacheIdentifier);
299
- case 3:
300
- cache = _context4.sent;
301
- cachedFlags = cache.get();
302
- if (cachedFlags) {
303
- _classPrivateFieldLooseBase(_this2, _adapterState)[_adapterState].flags = cachedFlags;
304
- _classPrivateFieldLooseBase(_this2, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
305
- }
306
- case 6:
307
- _this2.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
308
- _context4.t0 = adapterUtilities.normalizeFlags;
309
- _context4.next = 10;
310
- return _classPrivateFieldLooseBase(_this2, _fetchFlags)[_fetchFlags](adapterArgs);
311
- case 10:
312
- _context4.t1 = _context4.sent;
313
- flags = (0, _context4.t0)(_context4.t1);
314
- _classPrivateFieldLooseBase(_this2, _adapterState)[_adapterState].flags = flags;
315
- if (!adapterArgs.cacheIdentifier) {
316
- _context4.next = 18;
317
- break;
318
- }
319
- _context4.next = 16;
320
- return _classPrivateFieldLooseBase(_this2, _getCache)[_getCache](adapterArgs.cacheIdentifier);
321
- case 16:
322
- _cache = _context4.sent;
323
- _cache.set(flags);
324
- case 18:
325
- _classPrivateFieldLooseBase(_this2, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
326
- _classPrivateFieldLooseBase(_this2, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(_this2, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
327
- _classPrivateFieldLooseBase(_this2, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
328
- return _context4.abrupt("return", {
329
- initializationStatus: types.AdapterInitializationStatus.Succeeded
330
- });
331
- case 22:
332
- case "end":
333
- return _context4.stop();
334
- }
335
- }, _callee4);
336
- }))));
337
- case 7:
338
- case "end":
339
- return _context5.stop();
340
- }
341
- }, _callee5, this);
342
- }));
343
- function configure(_x3, _x4) {
344
- return _configure.apply(this, arguments);
345
- }
346
- return configure;
347
- }()
348
- }, {
349
- key: "reconfigure",
350
- value: function () {
351
- var _reconfigure = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6(adapterArgs, _adapterEventHandlers) {
352
- var cache, nextUser;
353
- return _regeneratorRuntime__default["default"].wrap(function _callee6$(_context6) {
354
- while (1) switch (_context6.prev = _context6.next) {
355
- case 0:
356
- if (this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) {
357
- _context6.next = 2;
358
- break;
359
- }
360
- return _context6.abrupt("return", Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.')));
361
- case 2:
362
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
363
- if (!adapterArgs.cacheIdentifier) {
364
- _context6.next = 8;
365
- break;
366
- }
367
- _context6.next = 6;
368
- return _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
369
- case 6:
370
- cache = _context6.sent;
371
- cache.unset();
372
- case 8:
373
- nextUser = adapterArgs.user;
374
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
375
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', {});
376
- return _context6.abrupt("return", Promise.resolve({
377
- initializationStatus: types.AdapterInitializationStatus.Succeeded
378
- }));
379
- case 12:
380
- case "end":
381
- return _context6.stop();
382
- }
383
- }, _callee6, this);
384
- }));
385
- function reconfigure(_x5, _x6) {
386
- return _reconfigure.apply(this, arguments);
187
+ async configure(adapterArgs, adapterEventHandlers) {
188
+ const handleFlagsChange = nextFlags => {
189
+ if (_classPrivateFieldLooseBase(this, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
190
+ adapterEventHandlers.onFlagsStateChange({
191
+ flags: nextFlags,
192
+ id: this.id
193
+ });
194
+ };
195
+ const handleStatusChange = nextStatus => {
196
+ if (_classPrivateFieldLooseBase(this, _getIsAdapterUnsubscribed)[_getIsAdapterUnsubscribed]()) return;
197
+ adapterEventHandlers.onStatusStateChange({
198
+ status: nextStatus,
199
+ id: this.id
200
+ });
201
+ };
202
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('flagsStateChange', handleFlagsChange);
203
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on('statusStateChange', handleStatusChange);
204
+ this.setConfigurationStatus(types.AdapterConfigurationStatus.Configuring);
205
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = adapterArgs.user;
206
+ return Promise.resolve().then(async () => {
207
+ let cachedFlags;
208
+ if (adapterArgs.cacheIdentifier) {
209
+ const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
210
+ cachedFlags = cache.get();
211
+ if (cachedFlags) {
212
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
213
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
214
+ }
387
215
  }
388
- return reconfigure;
389
- }()
390
- }, {
391
- key: "waitUntilConfigured",
392
- value: function () {
393
- var _waitUntilConfigured = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7() {
394
- var _this3 = this;
395
- return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
396
- while (1) switch (_context7.prev = _context7.next) {
397
- case 0:
398
- return _context7.abrupt("return", new Promise(function (resolve) {
399
- if (_this3.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) resolve();else _classPrivateFieldLooseBase(_this3, _adapterState)[_adapterState].emitter.on(_classPrivateFieldLooseBase(_this3, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__], resolve);
400
- }));
401
- case 1:
402
- case "end":
403
- return _context7.stop();
404
- }
405
- }, _callee7);
406
- }));
407
- function waitUntilConfigured() {
408
- return _waitUntilConfigured.apply(this, arguments);
216
+ this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
217
+ const flags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
218
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
219
+ if (adapterArgs.cacheIdentifier) {
220
+ const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
221
+ cache.set(flags);
409
222
  }
410
- return waitUntilConfigured;
411
- }()
412
- }, {
413
- key: "getIsConfigurationStatus",
414
- value: function getIsConfigurationStatus(configurationStatus) {
415
- return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
416
- }
417
- }, {
418
- key: "getFlag",
419
- value: function getFlag(flagName) {
420
- var _classPrivateFieldLoo;
421
- return (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.flags[flagName];
422
- }
423
- }, {
424
- key: "setConfigurationStatus",
425
- value: function setConfigurationStatus(nextConfigurationStatus) {
426
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
427
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
428
- configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
429
- });
223
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
224
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
225
+ _classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
226
+ return {
227
+ initializationStatus: types.AdapterInitializationStatus.Succeeded
228
+ };
229
+ });
230
+ }
231
+ async reconfigure(adapterArgs, _adapterEventHandlers) {
232
+ if (!this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
233
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
234
+ if (adapterArgs.cacheIdentifier) {
235
+ const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
236
+ cache.unset();
430
237
  }
431
- }]);
432
- return HttpAdapter;
433
- }();
434
- var adapter = new HttpAdapter();
238
+ const nextUser = adapterArgs.user;
239
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
240
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', {});
241
+ return Promise.resolve({
242
+ initializationStatus: types.AdapterInitializationStatus.Succeeded
243
+ });
244
+ }
245
+ async waitUntilConfigured() {
246
+ return new Promise(resolve => {
247
+ if (this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) resolve();else _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.on(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__], resolve);
248
+ });
249
+ }
250
+ getIsConfigurationStatus(configurationStatus) {
251
+ return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
252
+ }
253
+ getFlag(flagName) {
254
+ var _classPrivateFieldLoo;
255
+ return (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.flags[flagName];
256
+ }
257
+ setConfigurationStatus(nextConfigurationStatus) {
258
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
259
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('statusStateChange', {
260
+ configurationStatus: _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus
261
+ });
262
+ }
263
+ }
264
+ const adapter = new HttpAdapter();
435
265
  adapterUtilities.exposeGlobally(adapter);
436
266
 
437
- var version = "13.0.0";
267
+ const version = "13.0.1";
438
268
 
439
269
  exports["default"] = adapter;
440
270
  exports.version = version;