@flopflip/launchdarkly-adapter 13.5.2 → 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.
- package/dist/declarations/src/adapter/index.d.ts +0 -1
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/flopflip-launchdarkly-adapter.cjs.dev.js +27 -100
- package/dist/flopflip-launchdarkly-adapter.cjs.prod.js +27 -100
- package/dist/flopflip-launchdarkly-adapter.esm.js +25 -79
- package/package.json +6 -5
- package/dist/declarations/src/adapter/cache.d.ts +0 -10
|
@@ -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 debounce = require('debounce-fn');
|
|
12
13
|
var launchdarklyJsClientSdk = require('launchdarkly-js-client-sdk');
|
|
@@ -17,91 +18,11 @@ var tsDeepmerge = require('ts-deepmerge');
|
|
|
17
18
|
|
|
18
19
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
19
20
|
|
|
20
|
-
function _interopNamespace(e) {
|
|
21
|
-
if (e && e.__esModule) return e;
|
|
22
|
-
var n = Object.create(null);
|
|
23
|
-
if (e) {
|
|
24
|
-
Object.keys(e).forEach(function (k) {
|
|
25
|
-
if (k !== 'default') {
|
|
26
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
27
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function () { return e[k]; }
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
n["default"] = e;
|
|
35
|
-
return Object.freeze(n);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
21
|
var debounce__default = /*#__PURE__*/_interopDefault(debounce);
|
|
39
22
|
var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
|
|
40
23
|
var mitt__default = /*#__PURE__*/_interopDefault(mitt);
|
|
41
24
|
var warning__default = /*#__PURE__*/_interopDefault(warning);
|
|
42
25
|
|
|
43
|
-
const CACHE_PREFIX = '@flopflip/launchdarkly-adapter';
|
|
44
|
-
const FLAGS_KEY = 'flags';
|
|
45
|
-
const FLAGS_REFERENCE_KEY = 'flags-reference';
|
|
46
|
-
async function importCache(cacheIdentifier) {
|
|
47
|
-
let cacheModule;
|
|
48
|
-
switch (cacheIdentifier) {
|
|
49
|
-
case types.cacheIdentifiers.local:
|
|
50
|
-
{
|
|
51
|
-
cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
case types.cacheIdentifiers.session:
|
|
55
|
-
{
|
|
56
|
-
cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return cacheModule;
|
|
61
|
-
}
|
|
62
|
-
async function getCache(cacheIdentifier, cacheKey) {
|
|
63
|
-
const cacheModule = await importCache(cacheIdentifier);
|
|
64
|
-
const createCache = cacheModule.default;
|
|
65
|
-
const flagsCachePrefix = [CACHE_PREFIX, cacheKey].filter(Boolean).join('/');
|
|
66
|
-
const flagsCache = createCache({
|
|
67
|
-
prefix: flagsCachePrefix
|
|
68
|
-
});
|
|
69
|
-
const referenceCache = createCache({
|
|
70
|
-
prefix: CACHE_PREFIX
|
|
71
|
-
});
|
|
72
|
-
return {
|
|
73
|
-
set(flags) {
|
|
74
|
-
const haveFlagsBeenWritten = flagsCache.set(FLAGS_KEY, flags);
|
|
75
|
-
if (haveFlagsBeenWritten) {
|
|
76
|
-
referenceCache.set(FLAGS_REFERENCE_KEY, [flagsCachePrefix, FLAGS_KEY].join('/'));
|
|
77
|
-
}
|
|
78
|
-
return haveFlagsBeenWritten;
|
|
79
|
-
},
|
|
80
|
-
get() {
|
|
81
|
-
return flagsCache.get(FLAGS_KEY);
|
|
82
|
-
},
|
|
83
|
-
unset() {
|
|
84
|
-
referenceCache.unset(FLAGS_REFERENCE_KEY);
|
|
85
|
-
return flagsCache.unset(FLAGS_KEY);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function getCachedFlags(cacheIdentifier) {
|
|
90
|
-
const cacheModule = cacheIdentifier === types.cacheIdentifiers.local ? localStorage : sessionStorage;
|
|
91
|
-
const flagReferenceKey = [CACHE_PREFIX, FLAGS_REFERENCE_KEY].join('/');
|
|
92
|
-
const referenceToCachedFlags = cacheModule.getItem(flagReferenceKey);
|
|
93
|
-
if (referenceToCachedFlags) {
|
|
94
|
-
try {
|
|
95
|
-
const cacheKey = JSON.parse(referenceToCachedFlags);
|
|
96
|
-
const cachedFlags = cacheModule.getItem(cacheKey);
|
|
97
|
-
if (cacheKey && cachedFlags) {
|
|
98
|
-
return JSON.parse(cachedFlags);
|
|
99
|
-
}
|
|
100
|
-
} catch (error) {}
|
|
101
|
-
}
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
26
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
106
27
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
107
28
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
@@ -197,9 +118,10 @@ class LaunchDarklyAdapter {
|
|
|
197
118
|
value: async (flagsToCache, cacheIdentifier) => {
|
|
198
119
|
if (cacheIdentifier) {
|
|
199
120
|
var _classPrivateFieldLoo2;
|
|
200
|
-
const cache = await getCache(cacheIdentifier,
|
|
201
|
-
|
|
202
|
-
cache.
|
|
121
|
+
const cache$1 = await cache.getCache(cacheIdentifier, types.adapterIdentifiers.launchdarkly, // NOTE: LDContextCommon is part of the type which we never use.
|
|
122
|
+
(_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
|
|
123
|
+
const cachedFlags = cache$1.get();
|
|
124
|
+
cache$1.set(_objectSpread(_objectSpread({}, cachedFlags), flagsToCache));
|
|
203
125
|
}
|
|
204
126
|
}
|
|
205
127
|
});
|
|
@@ -208,7 +130,8 @@ class LaunchDarklyAdapter {
|
|
|
208
130
|
value: async _ref5 => {
|
|
209
131
|
let flags = _ref5.flags,
|
|
210
132
|
throwOnInitializationFailure = _ref5.throwOnInitializationFailure,
|
|
211
|
-
cacheIdentifier = _ref5.cacheIdentifier
|
|
133
|
+
cacheIdentifier = _ref5.cacheIdentifier,
|
|
134
|
+
cacheMode = _ref5.cacheMode;
|
|
212
135
|
if (_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
213
136
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client.waitForInitialization().then(async () => {
|
|
214
137
|
let flagsFromSdk;
|
|
@@ -228,7 +151,10 @@ class LaunchDarklyAdapter {
|
|
|
228
151
|
const normalizedFlags = adapterUtilities.normalizeFlags(flagsFromSdk);
|
|
229
152
|
await _classPrivateFieldLooseBase(this, _maybeUpdateFlagsInCache)[_maybeUpdateFlagsInCache](normalizedFlags, cacheIdentifier);
|
|
230
153
|
const flags = _classPrivateFieldLooseBase(this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
231
|
-
this
|
|
154
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags);
|
|
155
|
+
if (cacheMode !== types.cacheModes.lazy) {
|
|
156
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
157
|
+
}
|
|
232
158
|
}
|
|
233
159
|
this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
234
160
|
return Promise.resolve({
|
|
@@ -260,7 +186,8 @@ class LaunchDarklyAdapter {
|
|
|
260
186
|
value: _ref8 => {
|
|
261
187
|
let flagsFromSdk = _ref8.flagsFromSdk,
|
|
262
188
|
flagsUpdateDelayMs = _ref8.flagsUpdateDelayMs,
|
|
263
|
-
cacheIdentifier = _ref8.cacheIdentifier
|
|
189
|
+
cacheIdentifier = _ref8.cacheIdentifier,
|
|
190
|
+
cacheMode = _ref8.cacheMode;
|
|
264
191
|
for (const flagName in flagsFromSdk) {
|
|
265
192
|
// Dispatch whenever a configured flag value changes
|
|
266
193
|
if (Object.hasOwn(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
@@ -283,6 +210,9 @@ class LaunchDarklyAdapter {
|
|
|
283
210
|
// so that no flag updates are lost.
|
|
284
211
|
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
285
212
|
const flushFlagsUpdate = () => {
|
|
213
|
+
if (cacheMode === types.cacheModes.lazy) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
286
216
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
287
217
|
};
|
|
288
218
|
const scheduleImmediately = {
|
|
@@ -353,20 +283,16 @@ class LaunchDarklyAdapter {
|
|
|
353
283
|
const sdk = adapterArgs.sdk,
|
|
354
284
|
context = adapterArgs.context,
|
|
355
285
|
flags = adapterArgs.flags,
|
|
356
|
-
_adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges,
|
|
357
|
-
subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib,
|
|
358
286
|
_adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure,
|
|
359
287
|
throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI,
|
|
360
288
|
flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
361
289
|
let cachedFlags;
|
|
362
290
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = _classPrivateFieldLooseBase(this, _ensureContext)[_ensureContext](context);
|
|
363
291
|
if (adapterArgs.cacheIdentifier) {
|
|
364
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, context.key);
|
|
365
|
-
cachedFlags = cache.get();
|
|
292
|
+
const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.launchdarkly, context.key);
|
|
293
|
+
cachedFlags = cache$1.get();
|
|
366
294
|
if (cachedFlags) {
|
|
367
|
-
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags
|
|
368
|
-
unsubscribeFlags: adapterArgs.unsubscribeFromCachedFlags
|
|
369
|
-
});
|
|
295
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags);
|
|
370
296
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
|
|
371
297
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
|
|
372
298
|
}
|
|
@@ -375,15 +301,17 @@ class LaunchDarklyAdapter {
|
|
|
375
301
|
return _classPrivateFieldLooseBase(this, _getInitialFlags)[_getInitialFlags]({
|
|
376
302
|
flags,
|
|
377
303
|
throwOnInitializationFailure,
|
|
378
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
304
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
305
|
+
cacheMode: adapterArgs.cacheMode
|
|
379
306
|
}).then(_ref9 => {
|
|
380
307
|
let flagsFromSdk = _ref9.flagsFromSdk,
|
|
381
308
|
initializationStatus = _ref9.initializationStatus;
|
|
382
|
-
if (
|
|
309
|
+
if (flagsFromSdk) {
|
|
383
310
|
_classPrivateFieldLooseBase(this, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
384
311
|
flagsFromSdk,
|
|
385
312
|
flagsUpdateDelayMs,
|
|
386
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
313
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
314
|
+
cacheMode: adapterArgs.cacheMode
|
|
387
315
|
});
|
|
388
316
|
}
|
|
389
317
|
return {
|
|
@@ -397,8 +325,8 @@ class LaunchDarklyAdapter {
|
|
|
397
325
|
if (!isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context, nextContext)) {
|
|
398
326
|
if (adapterArgs.cacheIdentifier) {
|
|
399
327
|
var _classPrivateFieldLoo3;
|
|
400
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
401
|
-
cache.unset();
|
|
328
|
+
const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.launchdarkly, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
329
|
+
cache$1.unset();
|
|
402
330
|
}
|
|
403
331
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = nextContext;
|
|
404
332
|
await _classPrivateFieldLooseBase(this, _changeClientContext)[_changeClientContext](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context);
|
|
@@ -435,8 +363,7 @@ class LaunchDarklyAdapter {
|
|
|
435
363
|
const adapter = new LaunchDarklyAdapter();
|
|
436
364
|
adapterUtilities.exposeGlobally(adapter);
|
|
437
365
|
|
|
438
|
-
const version = "
|
|
366
|
+
const version = "14.0.0";
|
|
439
367
|
|
|
440
368
|
exports["default"] = adapter;
|
|
441
|
-
exports.getCachedFlags = getCachedFlags;
|
|
442
369
|
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 debounce = require('debounce-fn');
|
|
12
13
|
var launchdarklyJsClientSdk = require('launchdarkly-js-client-sdk');
|
|
@@ -17,91 +18,11 @@ var tsDeepmerge = require('ts-deepmerge');
|
|
|
17
18
|
|
|
18
19
|
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
19
20
|
|
|
20
|
-
function _interopNamespace(e) {
|
|
21
|
-
if (e && e.__esModule) return e;
|
|
22
|
-
var n = Object.create(null);
|
|
23
|
-
if (e) {
|
|
24
|
-
Object.keys(e).forEach(function (k) {
|
|
25
|
-
if (k !== 'default') {
|
|
26
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
27
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: function () { return e[k]; }
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
n["default"] = e;
|
|
35
|
-
return Object.freeze(n);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
21
|
var debounce__default = /*#__PURE__*/_interopDefault(debounce);
|
|
39
22
|
var isEqual__default = /*#__PURE__*/_interopDefault(isEqual);
|
|
40
23
|
var mitt__default = /*#__PURE__*/_interopDefault(mitt);
|
|
41
24
|
var warning__default = /*#__PURE__*/_interopDefault(warning);
|
|
42
25
|
|
|
43
|
-
const CACHE_PREFIX = '@flopflip/launchdarkly-adapter';
|
|
44
|
-
const FLAGS_KEY = 'flags';
|
|
45
|
-
const FLAGS_REFERENCE_KEY = 'flags-reference';
|
|
46
|
-
async function importCache(cacheIdentifier) {
|
|
47
|
-
let cacheModule;
|
|
48
|
-
switch (cacheIdentifier) {
|
|
49
|
-
case types.cacheIdentifiers.local:
|
|
50
|
-
{
|
|
51
|
-
cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/localstorage-cache')); });
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
case types.cacheIdentifiers.session:
|
|
55
|
-
{
|
|
56
|
-
cacheModule = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('@flopflip/sessionstorage-cache')); });
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return cacheModule;
|
|
61
|
-
}
|
|
62
|
-
async function getCache(cacheIdentifier, cacheKey) {
|
|
63
|
-
const cacheModule = await importCache(cacheIdentifier);
|
|
64
|
-
const createCache = cacheModule.default;
|
|
65
|
-
const flagsCachePrefix = [CACHE_PREFIX, cacheKey].filter(Boolean).join('/');
|
|
66
|
-
const flagsCache = createCache({
|
|
67
|
-
prefix: flagsCachePrefix
|
|
68
|
-
});
|
|
69
|
-
const referenceCache = createCache({
|
|
70
|
-
prefix: CACHE_PREFIX
|
|
71
|
-
});
|
|
72
|
-
return {
|
|
73
|
-
set(flags) {
|
|
74
|
-
const haveFlagsBeenWritten = flagsCache.set(FLAGS_KEY, flags);
|
|
75
|
-
if (haveFlagsBeenWritten) {
|
|
76
|
-
referenceCache.set(FLAGS_REFERENCE_KEY, [flagsCachePrefix, FLAGS_KEY].join('/'));
|
|
77
|
-
}
|
|
78
|
-
return haveFlagsBeenWritten;
|
|
79
|
-
},
|
|
80
|
-
get() {
|
|
81
|
-
return flagsCache.get(FLAGS_KEY);
|
|
82
|
-
},
|
|
83
|
-
unset() {
|
|
84
|
-
referenceCache.unset(FLAGS_REFERENCE_KEY);
|
|
85
|
-
return flagsCache.unset(FLAGS_KEY);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function getCachedFlags(cacheIdentifier) {
|
|
90
|
-
const cacheModule = cacheIdentifier === types.cacheIdentifiers.local ? localStorage : sessionStorage;
|
|
91
|
-
const flagReferenceKey = [CACHE_PREFIX, FLAGS_REFERENCE_KEY].join('/');
|
|
92
|
-
const referenceToCachedFlags = cacheModule.getItem(flagReferenceKey);
|
|
93
|
-
if (referenceToCachedFlags) {
|
|
94
|
-
try {
|
|
95
|
-
const cacheKey = JSON.parse(referenceToCachedFlags);
|
|
96
|
-
const cachedFlags = cacheModule.getItem(cacheKey);
|
|
97
|
-
if (cacheKey && cachedFlags) {
|
|
98
|
-
return JSON.parse(cachedFlags);
|
|
99
|
-
}
|
|
100
|
-
} catch (error) {}
|
|
101
|
-
}
|
|
102
|
-
return {};
|
|
103
|
-
}
|
|
104
|
-
|
|
105
26
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
106
27
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
107
28
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
@@ -197,9 +118,10 @@ class LaunchDarklyAdapter {
|
|
|
197
118
|
value: async (flagsToCache, cacheIdentifier) => {
|
|
198
119
|
if (cacheIdentifier) {
|
|
199
120
|
var _classPrivateFieldLoo2;
|
|
200
|
-
const cache = await getCache(cacheIdentifier,
|
|
201
|
-
|
|
202
|
-
cache.
|
|
121
|
+
const cache$1 = await cache.getCache(cacheIdentifier, types.adapterIdentifiers.launchdarkly, // NOTE: LDContextCommon is part of the type which we never use.
|
|
122
|
+
(_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
|
|
123
|
+
const cachedFlags = cache$1.get();
|
|
124
|
+
cache$1.set(_objectSpread(_objectSpread({}, cachedFlags), flagsToCache));
|
|
203
125
|
}
|
|
204
126
|
}
|
|
205
127
|
});
|
|
@@ -208,7 +130,8 @@ class LaunchDarklyAdapter {
|
|
|
208
130
|
value: async _ref5 => {
|
|
209
131
|
let flags = _ref5.flags,
|
|
210
132
|
throwOnInitializationFailure = _ref5.throwOnInitializationFailure,
|
|
211
|
-
cacheIdentifier = _ref5.cacheIdentifier
|
|
133
|
+
cacheIdentifier = _ref5.cacheIdentifier,
|
|
134
|
+
cacheMode = _ref5.cacheMode;
|
|
212
135
|
if (_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
213
136
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client.waitForInitialization().then(async () => {
|
|
214
137
|
let flagsFromSdk;
|
|
@@ -228,7 +151,10 @@ class LaunchDarklyAdapter {
|
|
|
228
151
|
const normalizedFlags = adapterUtilities.normalizeFlags(flagsFromSdk);
|
|
229
152
|
await _classPrivateFieldLooseBase(this, _maybeUpdateFlagsInCache)[_maybeUpdateFlagsInCache](normalizedFlags, cacheIdentifier);
|
|
230
153
|
const flags = _classPrivateFieldLooseBase(this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
231
|
-
this
|
|
154
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags);
|
|
155
|
+
if (cacheMode !== types.cacheModes.lazy) {
|
|
156
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
157
|
+
}
|
|
232
158
|
}
|
|
233
159
|
this.setConfigurationStatus(types.AdapterConfigurationStatus.Configured);
|
|
234
160
|
return Promise.resolve({
|
|
@@ -260,7 +186,8 @@ class LaunchDarklyAdapter {
|
|
|
260
186
|
value: _ref8 => {
|
|
261
187
|
let flagsFromSdk = _ref8.flagsFromSdk,
|
|
262
188
|
flagsUpdateDelayMs = _ref8.flagsUpdateDelayMs,
|
|
263
|
-
cacheIdentifier = _ref8.cacheIdentifier
|
|
189
|
+
cacheIdentifier = _ref8.cacheIdentifier,
|
|
190
|
+
cacheMode = _ref8.cacheMode;
|
|
264
191
|
for (const flagName in flagsFromSdk) {
|
|
265
192
|
// Dispatch whenever a configured flag value changes
|
|
266
193
|
if (Object.hasOwn(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
@@ -283,6 +210,9 @@ class LaunchDarklyAdapter {
|
|
|
283
210
|
// so that no flag updates are lost.
|
|
284
211
|
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
285
212
|
const flushFlagsUpdate = () => {
|
|
213
|
+
if (cacheMode === types.cacheModes.lazy) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
286
216
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
287
217
|
};
|
|
288
218
|
const scheduleImmediately = {
|
|
@@ -353,20 +283,16 @@ class LaunchDarklyAdapter {
|
|
|
353
283
|
const sdk = adapterArgs.sdk,
|
|
354
284
|
context = adapterArgs.context,
|
|
355
285
|
flags = adapterArgs.flags,
|
|
356
|
-
_adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges,
|
|
357
|
-
subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib,
|
|
358
286
|
_adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure,
|
|
359
287
|
throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI,
|
|
360
288
|
flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
361
289
|
let cachedFlags;
|
|
362
290
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = _classPrivateFieldLooseBase(this, _ensureContext)[_ensureContext](context);
|
|
363
291
|
if (adapterArgs.cacheIdentifier) {
|
|
364
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, context.key);
|
|
365
|
-
cachedFlags = cache.get();
|
|
292
|
+
const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.launchdarkly, context.key);
|
|
293
|
+
cachedFlags = cache$1.get();
|
|
366
294
|
if (cachedFlags) {
|
|
367
|
-
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags
|
|
368
|
-
unsubscribeFlags: adapterArgs.unsubscribeFromCachedFlags
|
|
369
|
-
});
|
|
295
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags);
|
|
370
296
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
|
|
371
297
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
|
|
372
298
|
}
|
|
@@ -375,15 +301,17 @@ class LaunchDarklyAdapter {
|
|
|
375
301
|
return _classPrivateFieldLooseBase(this, _getInitialFlags)[_getInitialFlags]({
|
|
376
302
|
flags,
|
|
377
303
|
throwOnInitializationFailure,
|
|
378
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
304
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
305
|
+
cacheMode: adapterArgs.cacheMode
|
|
379
306
|
}).then(_ref9 => {
|
|
380
307
|
let flagsFromSdk = _ref9.flagsFromSdk,
|
|
381
308
|
initializationStatus = _ref9.initializationStatus;
|
|
382
|
-
if (
|
|
309
|
+
if (flagsFromSdk) {
|
|
383
310
|
_classPrivateFieldLooseBase(this, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
384
311
|
flagsFromSdk,
|
|
385
312
|
flagsUpdateDelayMs,
|
|
386
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
313
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
314
|
+
cacheMode: adapterArgs.cacheMode
|
|
387
315
|
});
|
|
388
316
|
}
|
|
389
317
|
return {
|
|
@@ -397,8 +325,8 @@ class LaunchDarklyAdapter {
|
|
|
397
325
|
if (!isEqual__default["default"](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context, nextContext)) {
|
|
398
326
|
if (adapterArgs.cacheIdentifier) {
|
|
399
327
|
var _classPrivateFieldLoo3;
|
|
400
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
401
|
-
cache.unset();
|
|
328
|
+
const cache$1 = await cache.getCache(adapterArgs.cacheIdentifier, types.adapterIdentifiers.launchdarkly, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
329
|
+
cache$1.unset();
|
|
402
330
|
}
|
|
403
331
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = nextContext;
|
|
404
332
|
await _classPrivateFieldLooseBase(this, _changeClientContext)[_changeClientContext](_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context);
|
|
@@ -435,8 +363,7 @@ class LaunchDarklyAdapter {
|
|
|
435
363
|
const adapter = new LaunchDarklyAdapter();
|
|
436
364
|
adapterUtilities.exposeGlobally(adapter);
|
|
437
365
|
|
|
438
|
-
const version = "
|
|
366
|
+
const version = "14.0.0";
|
|
439
367
|
|
|
440
368
|
exports["default"] = adapter;
|
|
441
|
-
exports.getCachedFlags = getCachedFlags;
|
|
442
369
|
exports.version = version;
|
|
@@ -3,7 +3,8 @@ 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, denormalizeFlagName, normalizeFlags, normalizeFlag } from '@flopflip/adapter-utilities';
|
|
6
|
-
import {
|
|
6
|
+
import { getCache } from '@flopflip/cache';
|
|
7
|
+
import { AdapterSubscriptionStatus, adapterIdentifiers, cacheModes, AdapterConfigurationStatus, AdapterInitializationStatus } from '@flopflip/types';
|
|
7
8
|
import debounce from 'debounce-fn';
|
|
8
9
|
import { initialize } from 'launchdarkly-js-client-sdk';
|
|
9
10
|
import isEqual from 'lodash/isEqual';
|
|
@@ -11,68 +12,6 @@ import mitt from 'mitt';
|
|
|
11
12
|
import warning from 'tiny-warning';
|
|
12
13
|
import { merge } from 'ts-deepmerge';
|
|
13
14
|
|
|
14
|
-
const CACHE_PREFIX = '@flopflip/launchdarkly-adapter';
|
|
15
|
-
const FLAGS_KEY = 'flags';
|
|
16
|
-
const FLAGS_REFERENCE_KEY = 'flags-reference';
|
|
17
|
-
async function importCache(cacheIdentifier) {
|
|
18
|
-
let cacheModule;
|
|
19
|
-
switch (cacheIdentifier) {
|
|
20
|
-
case cacheIdentifiers.local:
|
|
21
|
-
{
|
|
22
|
-
cacheModule = await import('@flopflip/localstorage-cache');
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
case cacheIdentifiers.session:
|
|
26
|
-
{
|
|
27
|
-
cacheModule = await import('@flopflip/sessionstorage-cache');
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return cacheModule;
|
|
32
|
-
}
|
|
33
|
-
async function getCache(cacheIdentifier, cacheKey) {
|
|
34
|
-
const cacheModule = await importCache(cacheIdentifier);
|
|
35
|
-
const createCache = cacheModule.default;
|
|
36
|
-
const flagsCachePrefix = [CACHE_PREFIX, cacheKey].filter(Boolean).join('/');
|
|
37
|
-
const flagsCache = createCache({
|
|
38
|
-
prefix: flagsCachePrefix
|
|
39
|
-
});
|
|
40
|
-
const referenceCache = createCache({
|
|
41
|
-
prefix: CACHE_PREFIX
|
|
42
|
-
});
|
|
43
|
-
return {
|
|
44
|
-
set(flags) {
|
|
45
|
-
const haveFlagsBeenWritten = flagsCache.set(FLAGS_KEY, flags);
|
|
46
|
-
if (haveFlagsBeenWritten) {
|
|
47
|
-
referenceCache.set(FLAGS_REFERENCE_KEY, [flagsCachePrefix, FLAGS_KEY].join('/'));
|
|
48
|
-
}
|
|
49
|
-
return haveFlagsBeenWritten;
|
|
50
|
-
},
|
|
51
|
-
get() {
|
|
52
|
-
return flagsCache.get(FLAGS_KEY);
|
|
53
|
-
},
|
|
54
|
-
unset() {
|
|
55
|
-
referenceCache.unset(FLAGS_REFERENCE_KEY);
|
|
56
|
-
return flagsCache.unset(FLAGS_KEY);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function getCachedFlags(cacheIdentifier) {
|
|
61
|
-
const cacheModule = cacheIdentifier === cacheIdentifiers.local ? localStorage : sessionStorage;
|
|
62
|
-
const flagReferenceKey = [CACHE_PREFIX, FLAGS_REFERENCE_KEY].join('/');
|
|
63
|
-
const referenceToCachedFlags = cacheModule.getItem(flagReferenceKey);
|
|
64
|
-
if (referenceToCachedFlags) {
|
|
65
|
-
try {
|
|
66
|
-
const cacheKey = JSON.parse(referenceToCachedFlags);
|
|
67
|
-
const cachedFlags = cacheModule.getItem(cacheKey);
|
|
68
|
-
if (cacheKey && cachedFlags) {
|
|
69
|
-
return JSON.parse(cachedFlags);
|
|
70
|
-
}
|
|
71
|
-
} catch (error) {}
|
|
72
|
-
}
|
|
73
|
-
return {};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
15
|
var _adapterState = /*#__PURE__*/_classPrivateFieldLooseKey("adapterState");
|
|
77
16
|
var _updateFlagsInAdapterState = /*#__PURE__*/_classPrivateFieldLooseKey("updateFlagsInAdapterState");
|
|
78
17
|
var _getIsAdapterUnsubscribed = /*#__PURE__*/_classPrivateFieldLooseKey("getIsAdapterUnsubscribed");
|
|
@@ -168,7 +107,8 @@ class LaunchDarklyAdapter {
|
|
|
168
107
|
value: async (flagsToCache, cacheIdentifier) => {
|
|
169
108
|
if (cacheIdentifier) {
|
|
170
109
|
var _classPrivateFieldLoo2;
|
|
171
|
-
const cache = await getCache(cacheIdentifier,
|
|
110
|
+
const cache = await getCache(cacheIdentifier, adapterIdentifiers.launchdarkly, // NOTE: LDContextCommon is part of the type which we never use.
|
|
111
|
+
(_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.key);
|
|
172
112
|
const cachedFlags = cache.get();
|
|
173
113
|
cache.set(_objectSpread(_objectSpread({}, cachedFlags), flagsToCache));
|
|
174
114
|
}
|
|
@@ -179,7 +119,8 @@ class LaunchDarklyAdapter {
|
|
|
179
119
|
value: async _ref5 => {
|
|
180
120
|
let flags = _ref5.flags,
|
|
181
121
|
throwOnInitializationFailure = _ref5.throwOnInitializationFailure,
|
|
182
|
-
cacheIdentifier = _ref5.cacheIdentifier
|
|
122
|
+
cacheIdentifier = _ref5.cacheIdentifier,
|
|
123
|
+
cacheMode = _ref5.cacheMode;
|
|
183
124
|
if (_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
184
125
|
return _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client.waitForInitialization().then(async () => {
|
|
185
126
|
let flagsFromSdk;
|
|
@@ -199,7 +140,10 @@ class LaunchDarklyAdapter {
|
|
|
199
140
|
const normalizedFlags = normalizeFlags(flagsFromSdk);
|
|
200
141
|
await _classPrivateFieldLooseBase(this, _maybeUpdateFlagsInCache)[_maybeUpdateFlagsInCache](normalizedFlags, cacheIdentifier);
|
|
201
142
|
const flags = _classPrivateFieldLooseBase(this, _withoutUnsubscribedOrLockedFlags)[_withoutUnsubscribedOrLockedFlags](normalizedFlags);
|
|
202
|
-
this
|
|
143
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](flags);
|
|
144
|
+
if (cacheMode !== cacheModes.lazy) {
|
|
145
|
+
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
146
|
+
}
|
|
203
147
|
}
|
|
204
148
|
this.setConfigurationStatus(AdapterConfigurationStatus.Configured);
|
|
205
149
|
return Promise.resolve({
|
|
@@ -231,7 +175,8 @@ class LaunchDarklyAdapter {
|
|
|
231
175
|
value: _ref8 => {
|
|
232
176
|
let flagsFromSdk = _ref8.flagsFromSdk,
|
|
233
177
|
flagsUpdateDelayMs = _ref8.flagsUpdateDelayMs,
|
|
234
|
-
cacheIdentifier = _ref8.cacheIdentifier
|
|
178
|
+
cacheIdentifier = _ref8.cacheIdentifier,
|
|
179
|
+
cacheMode = _ref8.cacheMode;
|
|
235
180
|
for (const flagName in flagsFromSdk) {
|
|
236
181
|
// Dispatch whenever a configured flag value changes
|
|
237
182
|
if (Object.hasOwn(flagsFromSdk, flagName) && _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].client) {
|
|
@@ -254,6 +199,9 @@ class LaunchDarklyAdapter {
|
|
|
254
199
|
// so that no flag updates are lost.
|
|
255
200
|
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](updatedFlags);
|
|
256
201
|
const flushFlagsUpdate = () => {
|
|
202
|
+
if (cacheMode === cacheModes.lazy) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
257
205
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags);
|
|
258
206
|
};
|
|
259
207
|
const scheduleImmediately = {
|
|
@@ -324,20 +272,16 @@ class LaunchDarklyAdapter {
|
|
|
324
272
|
const sdk = adapterArgs.sdk,
|
|
325
273
|
context = adapterArgs.context,
|
|
326
274
|
flags = adapterArgs.flags,
|
|
327
|
-
_adapterArgs$subscrib = adapterArgs.subscribeToFlagChanges,
|
|
328
|
-
subscribeToFlagChanges = _adapterArgs$subscrib === void 0 ? true : _adapterArgs$subscrib,
|
|
329
275
|
_adapterArgs$throwOnI = adapterArgs.throwOnInitializationFailure,
|
|
330
276
|
throwOnInitializationFailure = _adapterArgs$throwOnI === void 0 ? false : _adapterArgs$throwOnI,
|
|
331
277
|
flagsUpdateDelayMs = adapterArgs.flagsUpdateDelayMs;
|
|
332
278
|
let cachedFlags;
|
|
333
279
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = _classPrivateFieldLooseBase(this, _ensureContext)[_ensureContext](context);
|
|
334
280
|
if (adapterArgs.cacheIdentifier) {
|
|
335
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, context.key);
|
|
281
|
+
const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.launchdarkly, context.key);
|
|
336
282
|
cachedFlags = cache.get();
|
|
337
283
|
if (cachedFlags) {
|
|
338
|
-
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags
|
|
339
|
-
unsubscribeFlags: adapterArgs.unsubscribeFromCachedFlags
|
|
340
|
-
});
|
|
284
|
+
_classPrivateFieldLooseBase(this, _updateFlagsInAdapterState)[_updateFlagsInAdapterState](cachedFlags);
|
|
341
285
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].flags = cachedFlags;
|
|
342
286
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].emitter.emit('flagsStateChange', cachedFlags);
|
|
343
287
|
}
|
|
@@ -346,15 +290,17 @@ class LaunchDarklyAdapter {
|
|
|
346
290
|
return _classPrivateFieldLooseBase(this, _getInitialFlags)[_getInitialFlags]({
|
|
347
291
|
flags,
|
|
348
292
|
throwOnInitializationFailure,
|
|
349
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
293
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
294
|
+
cacheMode: adapterArgs.cacheMode
|
|
350
295
|
}).then(_ref9 => {
|
|
351
296
|
let flagsFromSdk = _ref9.flagsFromSdk,
|
|
352
297
|
initializationStatus = _ref9.initializationStatus;
|
|
353
|
-
if (
|
|
298
|
+
if (flagsFromSdk) {
|
|
354
299
|
_classPrivateFieldLooseBase(this, _setupFlagSubcription)[_setupFlagSubcription]({
|
|
355
300
|
flagsFromSdk,
|
|
356
301
|
flagsUpdateDelayMs,
|
|
357
|
-
cacheIdentifier: adapterArgs.cacheIdentifier
|
|
302
|
+
cacheIdentifier: adapterArgs.cacheIdentifier,
|
|
303
|
+
cacheMode: adapterArgs.cacheMode
|
|
358
304
|
});
|
|
359
305
|
}
|
|
360
306
|
return {
|
|
@@ -368,7 +314,7 @@ class LaunchDarklyAdapter {
|
|
|
368
314
|
if (!isEqual(_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context, nextContext)) {
|
|
369
315
|
if (adapterArgs.cacheIdentifier) {
|
|
370
316
|
var _classPrivateFieldLoo3;
|
|
371
|
-
const cache = await getCache(adapterArgs.cacheIdentifier, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
317
|
+
const cache = await getCache(adapterArgs.cacheIdentifier, adapterIdentifiers.launchdarkly, (_classPrivateFieldLoo3 = _classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context) === null || _classPrivateFieldLoo3 === void 0 ? void 0 : _classPrivateFieldLoo3.key);
|
|
372
318
|
cache.unset();
|
|
373
319
|
}
|
|
374
320
|
_classPrivateFieldLooseBase(this, _adapterState)[_adapterState].context = nextContext;
|
|
@@ -406,6 +352,6 @@ class LaunchDarklyAdapter {
|
|
|
406
352
|
const adapter = new LaunchDarklyAdapter();
|
|
407
353
|
exposeGlobally(adapter);
|
|
408
354
|
|
|
409
|
-
const version = "
|
|
355
|
+
const version = "14.0.0";
|
|
410
356
|
|
|
411
|
-
export { adapter as default,
|
|
357
|
+
export { adapter as default, version };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flopflip/launchdarkly-adapter",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0",
|
|
4
4
|
"description": "A adapter around the LaunchDarkly client for flipflop",
|
|
5
5
|
"main": "dist/flopflip-launchdarkly-adapter.cjs.js",
|
|
6
6
|
"module": "dist/flopflip-launchdarkly-adapter.esm.js",
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@babel/runtime": "7.24.4",
|
|
30
|
-
"@flopflip/adapter-utilities": "
|
|
31
|
-
"@flopflip/
|
|
32
|
-
"@flopflip/
|
|
33
|
-
"@flopflip/
|
|
30
|
+
"@flopflip/adapter-utilities": "14.0.0",
|
|
31
|
+
"@flopflip/cache": "14.0.0",
|
|
32
|
+
"@flopflip/localstorage-cache": "14.0.0",
|
|
33
|
+
"@flopflip/sessionstorage-cache": "14.0.0",
|
|
34
|
+
"@flopflip/types": "14.0.0",
|
|
34
35
|
"debounce-fn": "4.0.0",
|
|
35
36
|
"launchdarkly-js-client-sdk": "3.2.0",
|
|
36
37
|
"lodash": "4.17.21",
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type TCacheIdentifiers, type TFlags } from '@flopflip/types';
|
|
2
|
-
import { type LDContext } from 'launchdarkly-js-client-sdk';
|
|
3
|
-
declare const CACHE_PREFIX = "@flopflip/launchdarkly-adapter";
|
|
4
|
-
declare function getCache(cacheIdentifier: TCacheIdentifiers, cacheKey: LDContext['key']): Promise<{
|
|
5
|
-
set(flags: TFlags): any;
|
|
6
|
-
get(): any;
|
|
7
|
-
unset(): any;
|
|
8
|
-
}>;
|
|
9
|
-
declare function getCachedFlags(cacheIdentifier: TCacheIdentifiers): TFlags;
|
|
10
|
-
export { CACHE_PREFIX, getCache, getCachedFlags };
|