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