@flopflip/http-adapter 13.6.0 → 14.0.0

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.
@@ -7,6 +7,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
7
  var _classPrivateFieldLooseBase = require('@babel/runtime/helpers/classPrivateFieldLooseBase');
8
8
  var _classPrivateFieldLooseKey = require('@babel/runtime/helpers/classPrivateFieldLooseKey');
9
9
  var adapterUtilities = require('@flopflip/adapter-utilities');
10
+ var cache = require('@flopflip/cache');
10
11
  var types = require('@flopflip/types');
11
12
  var isEqual = require('lodash/isEqual');
12
13
  var mitt = require('mitt');
@@ -14,29 +15,10 @@ var warning = require('tiny-warning');
14
15
 
15
16
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
16
17
 
17
- function _interopNamespace(e) {
18
- if (e && e.__esModule) return e;
19
- var n = Object.create(null);
20
- if (e) {
21
- Object.keys(e).forEach(function (k) {
22
- if (k !== 'default') {
23
- var d = Object.getOwnPropertyDescriptor(e, k);
24
- Object.defineProperty(n, k, d.get ? d : {
25
- enumerable: true,
26
- get: function () { return e[k]; }
27
- });
28
- }
29
- });
30
- }
31
- n["default"] = e;
32
- return Object.freeze(n);
33
- }
34
-
35
18
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
36
19
  var mitt__default = /*#__PURE__*/_interopDefault(mitt);
37
20
  var warning__default = /*#__PURE__*/_interopDefault(warning);
38
21
 
39
- const STORAGE_SLICE = '@flopflip/http-adapter';
40
22
  const intialAdapterState = {
41
23
  subscriptionStatus: types.AdapterSubscriptionStatus.Subscribed,
42
24
  configurationStatus: types.AdapterConfigurationStatus.Unconfigured,
@@ -51,7 +33,6 @@ var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
51
33
  var _defaultpollingIntervalMs = /*#__PURE__*/_classPrivateFieldLooseKey("defaultpollingIntervalMs");
52
34
  var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
53
35
  var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
54
- var _getCache = /*#__PURE__*/_classPrivateFieldLooseKey("getCache");
55
36
  var _didFlagsChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagsChange");
56
37
  var _fetchFlags = /*#__PURE__*/_classPrivateFieldLooseKey("fetchFlags");
57
38
  var _subscribeToFlagsChanges = /*#__PURE__*/_classPrivateFieldLooseKey("subscribeToFlagsChanges");
@@ -83,39 +64,6 @@ class HttpAdapter {
83
64
  writable: true,
84
65
  value: flagName => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].lockedFlags.has(flagName)
85
66
  });
86
- Object.defineProperty(this, _getCache, {
87
- writable: true,
88
- value: async cacheIdentifier => {
89
- let cacheModule;
90
- switch (cacheIdentifier) {
91
- case types.cacheIdentifiers.local:
92
- {
93
- cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
94
- break;
95
- }
96
- case types.cacheIdentifiers.session:
97
- {
98
- cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
99
- break;
100
- }
101
- }
102
- const createCache = cacheModule.default;
103
- const cache = createCache({
104
- prefix: STORAGE_SLICE
105
- });
106
- return {
107
- set(flags) {
108
- return cache.set('flags', flags);
109
- },
110
- get() {
111
- return cache.get('flags');
112
- },
113
- unset() {
114
- return cache.unset('flags');
115
- }
116
- };
117
- }
118
- });
119
67
  Object.defineProperty(this, _didFlagsChange, {
120
68
  writable: true,
121
69
  value: nextFlags => {
@@ -144,10 +92,14 @@ class HttpAdapter {
144
92
  const nextFlags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
145
93
  if (_classPrivateFieldLooseBase(this, _didFlagsChange)[_didFlagsChange](nextFlags)) {
146
94
  if (adapterArgs.cacheIdentifier) {
147
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
148
- cache.set(nextFlags);
95
+ var _classPrivateFieldLoo;
96
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.key);
97
+ cache$1.set(nextFlags);
149
98
  }
150
99
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = nextFlags;
100
+ if (adapterArgs.cacheMode === types.cacheModes.lazy) {
101
+ return;
102
+ }
151
103
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
152
104
  }
153
105
  }
@@ -215,8 +167,9 @@ class HttpAdapter {
215
167
  return Promise.resolve().then(async () => {
216
168
  let cachedFlags;
217
169
  if (adapterArgs.cacheIdentifier) {
218
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
219
- cachedFlags = cache.get();
170
+ var _classPrivateFieldLoo2;
171
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
172
+ cachedFlags = cache$1.get();
220
173
  if (cachedFlags) {
221
174
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
222
175
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
@@ -226,10 +179,13 @@ class HttpAdapter {
226
179
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
227
180
  this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
228
181
  if (adapterArgs.cacheIdentifier) {
229
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
230
- cache.set(flags);
182
+ var _classPrivateFieldLoo3;
183
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
184
+ cache$1.set(flags);
185
+ }
186
+ if (adapterArgs.cacheMode !== types.cacheModes.lazy) {
187
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
231
188
  }
232
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
233
189
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
234
190
  _classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
235
191
  return {
@@ -241,8 +197,9 @@ class HttpAdapter {
241
197
  if (!this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
242
198
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
243
199
  if (adapterArgs.cacheIdentifier) {
244
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
245
- cache.unset();
200
+ var _classPrivateFieldLoo4;
201
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.key);
202
+ cache$1.unset();
246
203
  }
247
204
  const nextUser = adapterArgs.user;
248
205
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
@@ -264,8 +221,8 @@ class HttpAdapter {
264
221
  return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
265
222
  }
266
223
  getFlag(flagName) {
267
- var _classPrivateFieldLoo;
268
- return (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.flags[flagName];
224
+ var _classPrivateFieldLoo5;
225
+ return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
269
226
  }
270
227
  setConfigurationStatus(nextConfigurationStatus) {
271
228
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
@@ -277,7 +234,7 @@ class HttpAdapter {
277
234
  const adapter = new HttpAdapter();
278
235
  adapterUtilities.exposeGlobally(adapter);
279
236
 
280
- const version = "13.6.0";
237
+ const version = "14.0.0";
281
238
 
282
239
  exports["default"] = adapter;
283
240
  exports.version = version;
@@ -7,6 +7,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
7
  var _classPrivateFieldLooseBase = require('@babel/runtime/helpers/classPrivateFieldLooseBase');
8
8
  var _classPrivateFieldLooseKey = require('@babel/runtime/helpers/classPrivateFieldLooseKey');
9
9
  var adapterUtilities = require('@flopflip/adapter-utilities');
10
+ var cache = require('@flopflip/cache');
10
11
  var types = require('@flopflip/types');
11
12
  var isEqual = require('lodash/isEqual');
12
13
  var mitt = require('mitt');
@@ -14,29 +15,10 @@ var warning = require('tiny-warning');
14
15
 
15
16
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
16
17
 
17
- function _interopNamespace(e) {
18
- if (e && e.__esModule) return e;
19
- var n = Object.create(null);
20
- if (e) {
21
- Object.keys(e).forEach(function (k) {
22
- if (k !== 'default') {
23
- var d = Object.getOwnPropertyDescriptor(e, k);
24
- Object.defineProperty(n, k, d.get ? d : {
25
- enumerable: true,
26
- get: function () { return e[k]; }
27
- });
28
- }
29
- });
30
- }
31
- n["default"] = e;
32
- return Object.freeze(n);
33
- }
34
-
35
18
  var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
36
19
  var mitt__default = /*#__PURE__*/_interopDefault(mitt);
37
20
  var warning__default = /*#__PURE__*/_interopDefault(warning);
38
21
 
39
- const STORAGE_SLICE = '@flopflip/http-adapter';
40
22
  const intialAdapterState = {
41
23
  subscriptionStatus: types.AdapterSubscriptionStatus.Subscribed,
42
24
  configurationStatus: types.AdapterConfigurationStatus.Unconfigured,
@@ -51,7 +33,6 @@ var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
51
33
  var _defaultpollingIntervalMs = /*#__PURE__*/_classPrivateFieldLooseKey("defaultpollingIntervalMs");
52
34
  var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
53
35
  var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
54
- var _getCache = /*#__PURE__*/_classPrivateFieldLooseKey("getCache");
55
36
  var _didFlagsChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagsChange");
56
37
  var _fetchFlags = /*#__PURE__*/_classPrivateFieldLooseKey("fetchFlags");
57
38
  var _subscribeToFlagsChanges = /*#__PURE__*/_classPrivateFieldLooseKey("subscribeToFlagsChanges");
@@ -83,39 +64,6 @@ class HttpAdapter {
83
64
  writable: true,
84
65
  value: flagName => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].lockedFlags.has(flagName)
85
66
  });
86
- Object.defineProperty(this, _getCache, {
87
- writable: true,
88
- value: async cacheIdentifier => {
89
- let cacheModule;
90
- switch (cacheIdentifier) {
91
- case types.cacheIdentifiers.local:
92
- {
93
- cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
94
- break;
95
- }
96
- case types.cacheIdentifiers.session:
97
- {
98
- cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
99
- break;
100
- }
101
- }
102
- const createCache = cacheModule.default;
103
- const cache = createCache({
104
- prefix: STORAGE_SLICE
105
- });
106
- return {
107
- set(flags) {
108
- return cache.set('flags', flags);
109
- },
110
- get() {
111
- return cache.get('flags');
112
- },
113
- unset() {
114
- return cache.unset('flags');
115
- }
116
- };
117
- }
118
- });
119
67
  Object.defineProperty(this, _didFlagsChange, {
120
68
  writable: true,
121
69
  value: nextFlags => {
@@ -144,10 +92,14 @@ class HttpAdapter {
144
92
  const nextFlags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
145
93
  if (_classPrivateFieldLooseBase(this, _didFlagsChange)[_didFlagsChange](nextFlags)) {
146
94
  if (adapterArgs.cacheIdentifier) {
147
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
148
- cache.set(nextFlags);
95
+ var _classPrivateFieldLoo;
96
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.key);
97
+ cache$1.set(nextFlags);
149
98
  }
150
99
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = nextFlags;
100
+ if (adapterArgs.cacheMode === types.cacheModes.lazy) {
101
+ return;
102
+ }
151
103
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
152
104
  }
153
105
  }
@@ -215,8 +167,9 @@ class HttpAdapter {
215
167
  return Promise.resolve().then(async () => {
216
168
  let cachedFlags;
217
169
  if (adapterArgs.cacheIdentifier) {
218
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
219
- cachedFlags = cache.get();
170
+ var _classPrivateFieldLoo2;
171
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
172
+ cachedFlags = cache$1.get();
220
173
  if (cachedFlags) {
221
174
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
222
175
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
@@ -226,10 +179,13 @@ class HttpAdapter {
226
179
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
227
180
  this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
228
181
  if (adapterArgs.cacheIdentifier) {
229
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
230
- cache.set(flags);
182
+ var _classPrivateFieldLoo3;
183
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
184
+ cache$1.set(flags);
185
+ }
186
+ if (adapterArgs.cacheMode !== types.cacheModes.lazy) {
187
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
231
188
  }
232
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
233
189
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
234
190
  _classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
235
191
  return {
@@ -241,8 +197,9 @@ class HttpAdapter {
241
197
  if (!this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
242
198
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
243
199
  if (adapterArgs.cacheIdentifier) {
244
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
245
- cache.unset();
200
+ var _classPrivateFieldLoo4;
201
+ const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.http, (_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.key);
202
+ cache$1.unset();
246
203
  }
247
204
  const nextUser = adapterArgs.user;
248
205
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
@@ -264,8 +221,8 @@ class HttpAdapter {
264
221
  return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
265
222
  }
266
223
  getFlag(flagName) {
267
- var _classPrivateFieldLoo;
268
- return (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.flags[flagName];
224
+ var _classPrivateFieldLoo5;
225
+ return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
269
226
  }
270
227
  setConfigurationStatus(nextConfigurationStatus) {
271
228
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
@@ -277,7 +234,7 @@ class HttpAdapter {
277
234
  const adapter = new HttpAdapter();
278
235
  adapterUtilities.exposeGlobally(adapter);
279
236
 
280
- const version = "13.6.0";
237
+ const version = "14.0.0";
281
238
 
282
239
  exports["default"] = adapter;
283
240
  exports.version = version;
@@ -3,12 +3,12 @@ import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
3
3
  import _classPrivateFieldLooseBase from '@babel/runtime/helpers/esm/classPrivateFieldLooseBase';
4
4
  import _classPrivateFieldLooseKey from '@babel/runtime/helpers/esm/classPrivateFieldLooseKey';
5
5
  import { exposeGlobally, normalizeFlags, normalizeFlag } from '@flopflip/adapter-utilities';
6
- import { AdapterSubscriptionStatus, AdapterConfigurationStatus, cacheIdentifiers, adapterIdentifiers, AdapterInitializationStatus } from '@flopflip/types';
6
+ import { getCache } from '@flopflip/cache';
7
+ import { AdapterSubscriptionStatus, AdapterConfigurationStatus, adapterIdentifiers, cacheModes, AdapterInitializationStatus } from '@flopflip/types';
7
8
  import isEqual from 'lodash/isEqual';
8
9
  import mitt from 'mitt';
9
10
  import warning from 'tiny-warning';
10
11
 
11
- const STORAGE_SLICE = '@flopflip/http-adapter';
12
12
  const intialAdapterState = {
13
13
  subscriptionStatus: AdapterSubscriptionStatus.Subscribed,
14
14
  configurationStatus: AdapterConfigurationStatus.Unconfigured,
@@ -23,7 +23,6 @@ var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
23
23
  var _defaultpollingIntervalMs = /*#__PURE__*/_classPrivateFieldLooseKey("defaultpollingIntervalMs");
24
24
  var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
25
25
  var _getIsFlagLocked = /*#__PURE__*/_classPrivateFieldLooseKey("getIsFlagLocked");
26
- var _getCache = /*#__PURE__*/_classPrivateFieldLooseKey("getCache");
27
26
  var _didFlagsChange = /*#__PURE__*/_classPrivateFieldLooseKey("didFlagsChange");
28
27
  var _fetchFlags = /*#__PURE__*/_classPrivateFieldLooseKey("fetchFlags");
29
28
  var _subscribeToFlagsChanges = /*#__PURE__*/_classPrivateFieldLooseKey("subscribeToFlagsChanges");
@@ -55,39 +54,6 @@ class HttpAdapter {
55
54
  writable: true,
56
55
  value: flagName => _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].lockedFlags.has(flagName)
57
56
  });
58
- Object.defineProperty(this, _getCache, {
59
- writable: true,
60
- value: async cacheIdentifier => {
61
- let cacheModule;
62
- switch (cacheIdentifier) {
63
- case cacheIdentifiers.local:
64
- {
65
- cacheModule = await import('@flopflip/localstorage-cache');
66
- break;
67
- }
68
- case cacheIdentifiers.session:
69
- {
70
- cacheModule = await import('@flopflip/sessionstorage-cache');
71
- break;
72
- }
73
- }
74
- const createCache = cacheModule.default;
75
- const cache = createCache({
76
- prefix: STORAGE_SLICE
77
- });
78
- return {
79
- set(flags) {
80
- return cache.set('flags', flags);
81
- },
82
- get() {
83
- return cache.get('flags');
84
- },
85
- unset() {
86
- return cache.unset('flags');
87
- }
88
- };
89
- }
90
- });
91
57
  Object.defineProperty(this, _didFlagsChange, {
92
58
  writable: true,
93
59
  value: nextFlags => {
@@ -116,10 +82,14 @@ class HttpAdapter {
116
82
  const nextFlags = normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
117
83
  if (_classPrivateFieldLooseBase(this, _didFlagsChange)[_didFlagsChange](nextFlags)) {
118
84
  if (adapterArgs.cacheIdentifier) {
119
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
85
+ var _classPrivateFieldLoo;
86
+ const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.http, (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.key);
120
87
  cache.set(nextFlags);
121
88
  }
122
89
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = nextFlags;
90
+ if (adapterArgs.cacheMode === cacheModes.lazy) {
91
+ return;
92
+ }
123
93
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', nextFlags);
124
94
  }
125
95
  }
@@ -187,7 +157,8 @@ class HttpAdapter {
187
157
  return Promise.resolve().then(async () => {
188
158
  let cachedFlags;
189
159
  if (adapterArgs.cacheIdentifier) {
190
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
160
+ var _classPrivateFieldLoo2;
161
+ const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.http, (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
191
162
  cachedFlags = cache.get();
192
163
  if (cachedFlags) {
193
164
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
@@ -198,10 +169,13 @@ class HttpAdapter {
198
169
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
199
170
  this.setConfigurationStatus(AdapterConfigurationStatus.Configured);
200
171
  if (adapterArgs.cacheIdentifier) {
201
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
172
+ var _classPrivateFieldLoo3;
173
+ const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.http, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
202
174
  cache.set(flags);
203
175
  }
204
- _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
176
+ if (adapterArgs.cacheMode !== cacheModes.lazy) {
177
+ _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
178
+ }
205
179
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
206
180
  _classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
207
181
  return {
@@ -213,7 +187,8 @@ class HttpAdapter {
213
187
  if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
214
188
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
215
189
  if (adapterArgs.cacheIdentifier) {
216
- const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
190
+ var _classPrivateFieldLoo4;
191
+ const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.http, (_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.key);
217
192
  cache.unset();
218
193
  }
219
194
  const nextUser = adapterArgs.user;
@@ -236,8 +211,8 @@ class HttpAdapter {
236
211
  return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
237
212
  }
238
213
  getFlag(flagName) {
239
- var _classPrivateFieldLoo;
240
- return (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.flags[flagName];
214
+ var _classPrivateFieldLoo5;
215
+ return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
241
216
  }
242
217
  setConfigurationStatus(nextConfigurationStatus) {
243
218
  _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
@@ -249,6 +224,6 @@ class HttpAdapter {
249
224
  const adapter = new HttpAdapter();
250
225
  exposeGlobally(adapter);
251
226
 
252
- const version = "13.6.0";
227
+ const version = "14.0.0";
253
228
 
254
229
  export { adapter as default, version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flopflip/http-adapter",
3
- "version": "13.6.0",
3
+ "version": "14.0.0",
4
4
  "description": "An HTTP adapter for flipflop",
5
5
  "main": "dist/flopflip-http-adapter.cjs.js",
6
6
  "module": "dist/flopflip-http-adapter.esm.js",
@@ -30,10 +30,11 @@
30
30
  ],
31
31
  "dependencies": {
32
32
  "@babel/runtime": "7.24.4",
33
- "@flopflip/adapter-utilities": "13.6.0",
34
- "@flopflip/localstorage-cache": "13.6.0",
35
- "@flopflip/sessionstorage-cache": "13.6.0",
36
- "@flopflip/types": "13.6.0",
33
+ "@flopflip/adapter-utilities": "14.0.0",
34
+ "@flopflip/cache": "14.0.0",
35
+ "@flopflip/localstorage-cache": "14.0.0",
36
+ "@flopflip/sessionstorage-cache": "14.0.0",
37
+ "@flopflip/types": "14.0.0",
37
38
  "lodash": "4.17.21",
38
39
  "mitt": "3.0.1",
39
40
  "tiny-warning": "1.0.3"