@flopflip/http-adapter 13.6.0 → 14.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.
|
@@ -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
|
-
|
|
148
|
-
cache.
|
|
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
|
-
|
|
219
|
-
|
|
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
|
-
|
|
230
|
-
cache.
|
|
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 {
|
|
@@ -239,18 +195,21 @@ class HttpAdapter {
|
|
|
239
195
|
}
|
|
240
196
|
async reconfigure(adapterArgs, _adapterEventHandlers) {
|
|
241
197
|
if (!this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
|
|
242
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
243
|
-
if (adapterArgs.cacheIdentifier) {
|
|
244
|
-
const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
|
|
245
|
-
cache.unset();
|
|
246
|
-
}
|
|
247
198
|
const nextUser = adapterArgs.user;
|
|
248
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
199
|
+
if (!isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
200
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
201
|
+
if (adapterArgs.cacheIdentifier) {
|
|
202
|
+
var _classPrivateFieldLoo4;
|
|
203
|
+
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);
|
|
204
|
+
cache$1.unset();
|
|
205
|
+
}
|
|
206
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
|
|
207
|
+
const flags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
|
|
208
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
|
|
209
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
|
|
210
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
|
|
211
|
+
_classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
|
|
212
|
+
}
|
|
254
213
|
return Promise.resolve({
|
|
255
214
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
256
215
|
});
|
|
@@ -264,8 +223,8 @@ class HttpAdapter {
|
|
|
264
223
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
|
|
265
224
|
}
|
|
266
225
|
getFlag(flagName) {
|
|
267
|
-
var
|
|
268
|
-
return (
|
|
226
|
+
var _classPrivateFieldLoo5;
|
|
227
|
+
return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
|
|
269
228
|
}
|
|
270
229
|
setConfigurationStatus(nextConfigurationStatus) {
|
|
271
230
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
@@ -277,7 +236,7 @@ class HttpAdapter {
|
|
|
277
236
|
const adapter = new HttpAdapter();
|
|
278
237
|
adapterUtilities.exposeGlobally(adapter);
|
|
279
238
|
|
|
280
|
-
const version = "
|
|
239
|
+
const version = "14.0.1";
|
|
281
240
|
|
|
282
241
|
exports["default"] = adapter;
|
|
283
242
|
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
|
-
|
|
148
|
-
cache.
|
|
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
|
-
|
|
219
|
-
|
|
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
|
-
|
|
230
|
-
cache.
|
|
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 {
|
|
@@ -239,18 +195,21 @@ class HttpAdapter {
|
|
|
239
195
|
}
|
|
240
196
|
async reconfigure(adapterArgs, _adapterEventHandlers) {
|
|
241
197
|
if (!this.getIsConfigurationStatus(types.AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
|
|
242
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
243
|
-
if (adapterArgs.cacheIdentifier) {
|
|
244
|
-
const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
|
|
245
|
-
cache.unset();
|
|
246
|
-
}
|
|
247
198
|
const nextUser = adapterArgs.user;
|
|
248
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
199
|
+
if (!isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
200
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
201
|
+
if (adapterArgs.cacheIdentifier) {
|
|
202
|
+
var _classPrivateFieldLoo4;
|
|
203
|
+
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);
|
|
204
|
+
cache$1.unset();
|
|
205
|
+
}
|
|
206
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
|
|
207
|
+
const flags = adapterUtilities.normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
|
|
208
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
|
|
209
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
|
|
210
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
|
|
211
|
+
_classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
|
|
212
|
+
}
|
|
254
213
|
return Promise.resolve({
|
|
255
214
|
initializationStatus: types.AdapterInitializationStatus.Succeeded
|
|
256
215
|
});
|
|
@@ -264,8 +223,8 @@ class HttpAdapter {
|
|
|
264
223
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
|
|
265
224
|
}
|
|
266
225
|
getFlag(flagName) {
|
|
267
|
-
var
|
|
268
|
-
return (
|
|
226
|
+
var _classPrivateFieldLoo5;
|
|
227
|
+
return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
|
|
269
228
|
}
|
|
270
229
|
setConfigurationStatus(nextConfigurationStatus) {
|
|
271
230
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
@@ -277,7 +236,7 @@ class HttpAdapter {
|
|
|
277
236
|
const adapter = new HttpAdapter();
|
|
278
237
|
adapterUtilities.exposeGlobally(adapter);
|
|
279
238
|
|
|
280
|
-
const version = "
|
|
239
|
+
const version = "14.0.1";
|
|
281
240
|
|
|
282
241
|
exports["default"] = adapter;
|
|
283
242
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 {
|
|
@@ -211,18 +185,21 @@ class HttpAdapter {
|
|
|
211
185
|
}
|
|
212
186
|
async reconfigure(adapterArgs, _adapterEventHandlers) {
|
|
213
187
|
if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) return Promise.reject(new Error('@flopflip/http-adapter: please configure adapter before reconfiguring.'));
|
|
214
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
215
|
-
if (adapterArgs.cacheIdentifier) {
|
|
216
|
-
const cache = await _classPrivateFieldLooseBase(this, _getCache)[_getCache](adapterArgs.cacheIdentifier);
|
|
217
|
-
cache.unset();
|
|
218
|
-
}
|
|
219
188
|
const nextUser = adapterArgs.user;
|
|
220
|
-
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
189
|
+
if (!isEqual(_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user, nextUser)) {
|
|
190
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = {};
|
|
191
|
+
if (adapterArgs.cacheIdentifier) {
|
|
192
|
+
var _classPrivateFieldLoo4;
|
|
193
|
+
const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.http, (_classPrivateFieldLoo4 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user) === null || _classPrivateFieldLoo4 === void 0 ? void 0 : _classPrivateFieldLoo4.key);
|
|
194
|
+
cache.unset();
|
|
195
|
+
}
|
|
196
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].user = nextUser;
|
|
197
|
+
const flags = normalizeFlags(await _classPrivateFieldLooseBase(this, _fetchFlags)[_fetchFlags](adapterArgs));
|
|
198
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = flags;
|
|
199
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', flags);
|
|
200
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit(_classPrivateFieldLooseBase(this, _internalConfiguredStatusChange__)[_internalConfiguredStatusChange__]);
|
|
201
|
+
_classPrivateFieldLooseBase(this, _subscribeToFlagsChanges)[_subscribeToFlagsChanges](adapterArgs);
|
|
202
|
+
}
|
|
226
203
|
return Promise.resolve({
|
|
227
204
|
initializationStatus: AdapterInitializationStatus.Succeeded
|
|
228
205
|
});
|
|
@@ -236,8 +213,8 @@ class HttpAdapter {
|
|
|
236
213
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus === configurationStatus;
|
|
237
214
|
}
|
|
238
215
|
getFlag(flagName) {
|
|
239
|
-
var
|
|
240
|
-
return (
|
|
216
|
+
var _classPrivateFieldLoo5;
|
|
217
|
+
return (_classPrivateFieldLoo5 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState]) === null || _classPrivateFieldLoo5 === void 0 ? void 0 : _classPrivateFieldLoo5.flags[flagName];
|
|
241
218
|
}
|
|
242
219
|
setConfigurationStatus(nextConfigurationStatus) {
|
|
243
220
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].configurationStatus = nextConfigurationStatus;
|
|
@@ -249,6 +226,6 @@ class HttpAdapter {
|
|
|
249
226
|
const adapter = new HttpAdapter();
|
|
250
227
|
exposeGlobally(adapter);
|
|
251
228
|
|
|
252
|
-
const version = "
|
|
229
|
+
const version = "14.0.1";
|
|
253
230
|
|
|
254
231
|
export { adapter as default, version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flopflip/http-adapter",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.1",
|
|
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",
|
|
@@ -29,16 +29,17 @@
|
|
|
29
29
|
"client"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@babel/runtime": "7.24.
|
|
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",
|
|
32
|
+
"@babel/runtime": "7.24.5",
|
|
37
33
|
"lodash": "4.17.21",
|
|
38
34
|
"mitt": "3.0.1",
|
|
39
|
-
"tiny-warning": "1.0.3"
|
|
35
|
+
"tiny-warning": "1.0.3",
|
|
36
|
+
"@flopflip/adapter-utilities": "14.0.1",
|
|
37
|
+
"@flopflip/cache": "14.0.1",
|
|
38
|
+
"@flopflip/localstorage-cache": "14.0.1",
|
|
39
|
+
"@flopflip/types": "14.0.1",
|
|
40
|
+
"@flopflip/sessionstorage-cache": "14.0.1"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"globalthis": "1.0.
|
|
43
|
+
"globalthis": "1.0.4"
|
|
43
44
|
}
|
|
44
45
|
}
|