@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
|
-
|
|
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 {
|
|
@@ -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
|
-
|
|
245
|
-
cache.
|
|
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
|
|
268
|
-
return (
|
|
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 = "
|
|
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
|
-
|
|
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 {
|
|
@@ -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
|
-
|
|
245
|
-
cache.
|
|
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
|
|
268
|
-
return (
|
|
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 = "
|
|
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 {
|
|
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 {
|
|
@@ -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
|
-
|
|
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
|
|
240
|
-
return (
|
|
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 = "
|
|
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": "
|
|
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": "
|
|
34
|
-
"@flopflip/
|
|
35
|
-
"@flopflip/
|
|
36
|
-
"@flopflip/
|
|
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"
|