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