@newskit-render/feature-flags 1.7.0 → 1.8.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/cjs/__tests__/utils.tests.js +162 -25
- package/dist/cjs/__tests__/utils.tests.js.map +1 -1
- package/dist/cjs/config.d.ts +1 -0
- package/dist/cjs/config.js +2 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.d.ts +6 -4
- package/dist/cjs/utils.js +18 -17
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/__tests__/utils.tests.js +163 -26
- package/dist/esm/__tests__/utils.tests.js.map +1 -1
- package/dist/esm/config.d.ts +1 -0
- package/dist/esm/config.js +1 -0
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.d.ts +6 -4
- package/dist/esm/utils.js +20 -18
- package/dist/esm/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -39,9 +50,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
39
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
51
|
};
|
|
41
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
var optimizely_sdk_1 = __importDefault(require("@optimizely/optimizely-sdk"));
|
|
42
54
|
var utils_1 = require("../utils");
|
|
43
55
|
var config_1 = require("../config");
|
|
44
|
-
var optimizely_sdk_1 = __importDefault(require("@optimizely/optimizely-sdk"));
|
|
45
56
|
var types_1 = require("../types");
|
|
46
57
|
var mockFeaturesMap = {
|
|
47
58
|
test_flag: {
|
|
@@ -53,21 +64,25 @@ var mockFeaturesMap = {
|
|
|
53
64
|
enabled: true,
|
|
54
65
|
},
|
|
55
66
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
.fn()
|
|
63
|
-
|
|
64
|
-
|
|
67
|
+
jest.mock('@optimizely/optimizely-sdk', function () { return (__assign(__assign({}, jest.requireActual('@optimizely/optimizely-sdk')), { createInstance: function () { return ({
|
|
68
|
+
isFeatureEnabled: jest
|
|
69
|
+
.fn()
|
|
70
|
+
.mockImplementation(function (featureKey, userId) {
|
|
71
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
72
|
+
}),
|
|
73
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
74
|
+
getOptimizelyConfig: jest
|
|
75
|
+
.fn()
|
|
76
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
77
|
+
}); } })); });
|
|
65
78
|
jest
|
|
66
79
|
.spyOn(optimizely_sdk_1.default, 'setLogLevel')
|
|
67
80
|
.mockImplementation(function (logLevel) { return logLevel; });
|
|
68
81
|
jest.spyOn(optimizely_sdk_1.default, 'setLogger');
|
|
82
|
+
beforeEach(function () {
|
|
83
|
+
jest.resetModules();
|
|
84
|
+
});
|
|
69
85
|
afterEach(function () {
|
|
70
|
-
jest.clearAllMocks();
|
|
71
86
|
(0, utils_1._resetInstance)();
|
|
72
87
|
});
|
|
73
88
|
describe('createFeatureFlagsInstance', function () {
|
|
@@ -85,6 +100,17 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
85
100
|
}
|
|
86
101
|
});
|
|
87
102
|
}); });
|
|
103
|
+
it('should use default attributes when creating instance', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
104
|
+
return __generator(this, function (_a) {
|
|
105
|
+
switch (_a.label) {
|
|
106
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
107
|
+
case 1:
|
|
108
|
+
_a.sent();
|
|
109
|
+
expect(utils_1.userAttributes).toEqual(config_1.defaultUserAttributes);
|
|
110
|
+
return [2 /*return*/];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}); });
|
|
88
114
|
it('should set userId when creating instance and passing userId', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
89
115
|
return __generator(this, function (_a) {
|
|
90
116
|
switch (_a.label) {
|
|
@@ -99,6 +125,42 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
99
125
|
}
|
|
100
126
|
});
|
|
101
127
|
}); });
|
|
128
|
+
it('should set attributes when creating instance and passing attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
129
|
+
return __generator(this, function (_a) {
|
|
130
|
+
switch (_a.label) {
|
|
131
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({
|
|
132
|
+
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
133
|
+
userAttributes: {
|
|
134
|
+
cpn: '4AAA039156221',
|
|
135
|
+
billingDetails: {
|
|
136
|
+
paymentMethod: {
|
|
137
|
+
type: 'CreditCard',
|
|
138
|
+
cardType: 'Visa',
|
|
139
|
+
cardNumber: '************4321',
|
|
140
|
+
expirationYear: 2028,
|
|
141
|
+
expirationMonth: 2,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
})];
|
|
146
|
+
case 1:
|
|
147
|
+
_a.sent();
|
|
148
|
+
expect(utils_1.userAttributes).toEqual({
|
|
149
|
+
cpn: '4AAA039156221',
|
|
150
|
+
billingDetails: {
|
|
151
|
+
paymentMethod: {
|
|
152
|
+
type: 'CreditCard',
|
|
153
|
+
cardType: 'Visa',
|
|
154
|
+
cardNumber: '************4321',
|
|
155
|
+
expirationYear: 2028,
|
|
156
|
+
expirationMonth: 2,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
return [2 /*return*/];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}); });
|
|
102
164
|
it('should set defaultFeatureFlags when they have been passed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
103
165
|
return __generator(this, function (_a) {
|
|
104
166
|
switch (_a.label) {
|
|
@@ -181,24 +243,32 @@ describe('getFeatureFlags', function () {
|
|
|
181
243
|
});
|
|
182
244
|
}); });
|
|
183
245
|
it('should return default feature flags object & optimizely.onReady returns success: false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
184
|
-
var _a;
|
|
246
|
+
var utils, _a;
|
|
185
247
|
return __generator(this, function (_b) {
|
|
186
248
|
switch (_b.label) {
|
|
187
249
|
case 0:
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
250
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
251
|
+
createInstance: function () { return ({
|
|
252
|
+
isFeatureEnabled: jest
|
|
253
|
+
.fn()
|
|
254
|
+
.mockImplementation(function (featureKey, userId) {
|
|
255
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
256
|
+
}),
|
|
257
|
+
onReady: jest.fn().mockResolvedValue({ success: false }),
|
|
258
|
+
getOptimizelyConfig: jest
|
|
259
|
+
.fn()
|
|
260
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
261
|
+
}); },
|
|
262
|
+
}); });
|
|
263
|
+
utils = require('../utils').default;
|
|
264
|
+
return [4 /*yield*/, utils.createFeatureFlagsInstance({
|
|
195
265
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
196
266
|
defaultFeatureFlags: { defaultFlag: true },
|
|
197
267
|
})];
|
|
198
268
|
case 1:
|
|
199
269
|
_b.sent();
|
|
200
270
|
_a = expect;
|
|
201
|
-
return [4 /*yield*/,
|
|
271
|
+
return [4 /*yield*/, utils.getFeatureFlags()];
|
|
202
272
|
case 2:
|
|
203
273
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
204
274
|
defaultFlag: true,
|
|
@@ -209,6 +279,19 @@ describe('getFeatureFlags', function () {
|
|
|
209
279
|
}); });
|
|
210
280
|
});
|
|
211
281
|
describe('initAndGetFeatureFlag', function () {
|
|
282
|
+
it('should return empty object', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
283
|
+
var _a;
|
|
284
|
+
return __generator(this, function (_b) {
|
|
285
|
+
switch (_b.label) {
|
|
286
|
+
case 0:
|
|
287
|
+
_a = expect;
|
|
288
|
+
return [4 /*yield*/, (0, utils_1.initAndGetFeatureFlag)()];
|
|
289
|
+
case 1:
|
|
290
|
+
_a.apply(void 0, [_b.sent()]).toEqual({});
|
|
291
|
+
return [2 /*return*/];
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}); });
|
|
212
295
|
it('should return flag', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
213
296
|
var _a;
|
|
214
297
|
return __generator(this, function (_b) {
|
|
@@ -218,21 +301,75 @@ describe('initAndGetFeatureFlag', function () {
|
|
|
218
301
|
return [4 /*yield*/, (0, utils_1.initAndGetFeatureFlag)('sdkkey')];
|
|
219
302
|
case 1:
|
|
220
303
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
221
|
-
|
|
304
|
+
test_flag: false,
|
|
305
|
+
test_flag2: true,
|
|
222
306
|
});
|
|
223
307
|
return [2 /*return*/];
|
|
224
308
|
}
|
|
225
309
|
});
|
|
226
310
|
}); });
|
|
227
|
-
it('should return
|
|
228
|
-
var _a;
|
|
311
|
+
it('should return flags for specific attributes - feature is enabeled for this user', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
312
|
+
var utils, _a;
|
|
229
313
|
return __generator(this, function (_b) {
|
|
230
314
|
switch (_b.label) {
|
|
231
315
|
case 0:
|
|
316
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
317
|
+
createInstance: function () { return ({
|
|
318
|
+
isFeatureEnabled: jest
|
|
319
|
+
.fn()
|
|
320
|
+
.mockImplementation(function (featureKey, userId, attributes) {
|
|
321
|
+
if (attributes.cpn === '4AAA039156221') {
|
|
322
|
+
return true;
|
|
323
|
+
}
|
|
324
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
325
|
+
}),
|
|
326
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
327
|
+
getOptimizelyConfig: jest
|
|
328
|
+
.fn()
|
|
329
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
330
|
+
}); },
|
|
331
|
+
}); });
|
|
332
|
+
utils = require('../utils');
|
|
232
333
|
_a = expect;
|
|
233
|
-
return [4 /*yield*/, (
|
|
334
|
+
return [4 /*yield*/, utils.initAndGetFeatureFlag('sdkkey', { cpn: '4AAA039156221' })];
|
|
234
335
|
case 1:
|
|
235
|
-
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
336
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
337
|
+
test_flag: true,
|
|
338
|
+
test_flag2: true,
|
|
339
|
+
});
|
|
340
|
+
return [2 /*return*/];
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
}); });
|
|
344
|
+
it('should return flags for specific attributes - feature is not enabled for this user', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
345
|
+
var utils, _a;
|
|
346
|
+
return __generator(this, function (_b) {
|
|
347
|
+
switch (_b.label) {
|
|
348
|
+
case 0:
|
|
349
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
350
|
+
createInstance: function () { return ({
|
|
351
|
+
isFeatureEnabled: jest
|
|
352
|
+
.fn()
|
|
353
|
+
.mockImplementation(function (featureKey, userId, attributes) {
|
|
354
|
+
if (attributes.cpn === '4AAA039156228') {
|
|
355
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
356
|
+
}
|
|
357
|
+
return false;
|
|
358
|
+
}),
|
|
359
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
360
|
+
getOptimizelyConfig: jest
|
|
361
|
+
.fn()
|
|
362
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
363
|
+
}); },
|
|
364
|
+
}); });
|
|
365
|
+
utils = require('../utils');
|
|
366
|
+
_a = expect;
|
|
367
|
+
return [4 /*yield*/, utils.initAndGetFeatureFlag('sdkkey', { cpn: '4AAA039156221' })];
|
|
368
|
+
case 1:
|
|
369
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
370
|
+
test_flag: false,
|
|
371
|
+
test_flag2: false,
|
|
372
|
+
});
|
|
236
373
|
return [2 /*return*/];
|
|
237
374
|
}
|
|
238
375
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.tests.js","sourceRoot":"","sources":["../../../src/__tests__/utils.tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.tests.js","sourceRoot":"","sources":["../../../src/__tests__/utils.tests.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/config.d.ts
CHANGED
package/dist/cjs/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultUserId = exports.optimizelyDefaultSDKConfig = void 0;
|
|
3
|
+
exports.defaultUserAttributes = exports.defaultUserId = exports.optimizelyDefaultSDKConfig = void 0;
|
|
4
4
|
exports.optimizelyDefaultSDKConfig = {
|
|
5
5
|
datafileOptions: {
|
|
6
6
|
autoUpdate: true,
|
|
@@ -8,4 +8,5 @@ exports.optimizelyDefaultSDKConfig = {
|
|
|
8
8
|
},
|
|
9
9
|
};
|
|
10
10
|
exports.defaultUserId = 'default_userId';
|
|
11
|
+
exports.defaultUserAttributes = {};
|
|
11
12
|
//# sourceMappingURL=config.js.map
|
package/dist/cjs/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAEa,QAAA,0BAA0B,GAAW;IAChD,eAAe,EAAE;QACf,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,MAAM;KACvB;CACF,CAAA;AAEY,QAAA,aAAa,GAAG,gBAAgB,CAAA;AAChC,QAAA,qBAAqB,GAAG,EAAE,CAAA"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { Config } from '@optimizely/optimizely-sdk';
|
|
2
|
+
import { Config, UserAttributes } from '@optimizely/optimizely-sdk';
|
|
3
3
|
export interface FeatureFlag {
|
|
4
4
|
[key: string]: boolean;
|
|
5
5
|
}
|
|
@@ -13,6 +13,7 @@ export interface ContextProviderProps {
|
|
|
13
13
|
export interface InstanceConfig {
|
|
14
14
|
optimizelyConfig: Config;
|
|
15
15
|
userId?: string;
|
|
16
|
+
userAttributes?: UserAttributes;
|
|
16
17
|
defaultFeatureFlags?: FeatureFlag;
|
|
17
18
|
logLevel?: 'critical' | 'error' | 'warning' | 'debug' | 'info';
|
|
18
19
|
}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAwBA;IAA+C,6CAAK;IAClD;eACE,kBACE,uHAAuH,CACxH;IACH,CAAC;IACH,gCAAC;AAAD,CAAC,AAND,CAA+C,KAAK,GAMnD;AANY,8DAAyB;AAQtC;IAA0C,wCAAK;IAC7C;eACE,kBACE,sHAAsH,CACvH;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAND,CAA0C,KAAK,GAM9C;AANY,oDAAoB;AAQjC;IAAiD,+CAAK;IACpD;eACE,kBACE,uGAAuG,CACxG;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAND,CAAiD,KAAK,GAMrD;AANY,kEAA2B"}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { Client, UserAttributes } from '@optimizely/optimizely-sdk';
|
|
1
2
|
import { InstanceConfig, FeatureFlag } from './types';
|
|
2
|
-
export declare let
|
|
3
|
-
export declare let userIdentity:
|
|
3
|
+
export declare let optimizelyClientInstance: Client | null;
|
|
4
|
+
export declare let userIdentity: string;
|
|
5
|
+
export declare let userAttributes: UserAttributes;
|
|
4
6
|
export declare let defaultFeatureFlags: FeatureFlag;
|
|
5
7
|
export declare const _resetInstance: () => void;
|
|
6
8
|
export declare const createFeatureFlagsInstance: (config: InstanceConfig) => void;
|
|
7
|
-
export declare const getFlattenFeatureFlags: (
|
|
9
|
+
export declare const getFlattenFeatureFlags: (featureFlagsKeys: any, featuresMap: any) => FeatureFlag;
|
|
8
10
|
export declare const getFeatureFlags: () => Promise<FeatureFlag>;
|
|
9
|
-
export declare const initAndGetFeatureFlag: (sdkKey?: string) => Promise<FeatureFlag>;
|
|
11
|
+
export declare const initAndGetFeatureFlag: (sdkKey?: string, attributes?: UserAttributes) => Promise<FeatureFlag>;
|
|
10
12
|
declare const _default: {
|
|
11
13
|
createFeatureFlagsInstance: (config: InstanceConfig) => void;
|
|
12
14
|
getFeatureFlags: () => Promise<FeatureFlag>;
|
package/dist/cjs/utils.js
CHANGED
|
@@ -50,21 +50,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
50
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
51
|
};
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
-
exports.initAndGetFeatureFlag = exports.getFeatureFlags = exports.getFlattenFeatureFlags = exports.createFeatureFlagsInstance = exports._resetInstance = exports.defaultFeatureFlags = exports.userIdentity = exports.
|
|
53
|
+
exports.initAndGetFeatureFlag = exports.getFeatureFlags = exports.getFlattenFeatureFlags = exports.createFeatureFlagsInstance = exports._resetInstance = exports.defaultFeatureFlags = exports.userAttributes = exports.userIdentity = exports.optimizelyClientInstance = void 0;
|
|
54
54
|
var optimizely_sdk_1 = __importDefault(require("@optimizely/optimizely-sdk"));
|
|
55
55
|
var types_1 = require("./types");
|
|
56
56
|
var config_1 = require("./config");
|
|
57
57
|
exports.defaultFeatureFlags = {};
|
|
58
58
|
var _resetInstance = function () {
|
|
59
|
-
exports.
|
|
59
|
+
exports.optimizelyClientInstance = null;
|
|
60
60
|
};
|
|
61
61
|
exports._resetInstance = _resetInstance;
|
|
62
62
|
var createFeatureFlagsInstance = function (config) {
|
|
63
63
|
if (!config.optimizelyConfig.sdkKey) {
|
|
64
64
|
throw new types_1.MissingConfigurationError();
|
|
65
65
|
}
|
|
66
|
-
exports.
|
|
66
|
+
exports.optimizelyClientInstance = optimizely_sdk_1.default.createInstance(__assign(__assign({}, config_1.optimizelyDefaultSDKConfig), config.optimizelyConfig));
|
|
67
67
|
exports.userIdentity = config.userId || config_1.defaultUserId;
|
|
68
|
+
exports.userAttributes = config.userAttributes || config_1.defaultUserAttributes;
|
|
68
69
|
if (config.logLevel) {
|
|
69
70
|
optimizely_sdk_1.default.setLogLevel(config.logLevel);
|
|
70
71
|
optimizely_sdk_1.default.setLogger(optimizely_sdk_1.default.logging.createLogger());
|
|
@@ -74,12 +75,13 @@ var createFeatureFlagsInstance = function (config) {
|
|
|
74
75
|
}
|
|
75
76
|
};
|
|
76
77
|
exports.createFeatureFlagsInstance = createFeatureFlagsInstance;
|
|
77
|
-
var getFlattenFeatureFlags = function (
|
|
78
|
-
return
|
|
79
|
-
.map(function (
|
|
78
|
+
var getFlattenFeatureFlags = function (featureFlagsKeys, featuresMap) {
|
|
79
|
+
return featureFlagsKeys
|
|
80
|
+
.map(function (flagKey) {
|
|
80
81
|
var _a;
|
|
82
|
+
var isFeatureEnabled = exports.optimizelyClientInstance === null || exports.optimizelyClientInstance === void 0 ? void 0 : exports.optimizelyClientInstance.isFeatureEnabled(featuresMap[flagKey].key, exports.userIdentity, exports.userAttributes);
|
|
81
83
|
return _a = {},
|
|
82
|
-
_a[
|
|
84
|
+
_a[featuresMap[flagKey].key] = isFeatureEnabled,
|
|
83
85
|
_a;
|
|
84
86
|
})
|
|
85
87
|
.reduce(function (map, obj) {
|
|
@@ -90,26 +92,24 @@ var getFlattenFeatureFlags = function (keys, array) {
|
|
|
90
92
|
};
|
|
91
93
|
exports.getFlattenFeatureFlags = getFlattenFeatureFlags;
|
|
92
94
|
var getFeatureFlags = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
93
|
-
var
|
|
95
|
+
var optimizelyConfig, featureFlags, featureFlagsKeys, allFeatureFlags;
|
|
94
96
|
return __generator(this, function (_a) {
|
|
95
97
|
switch (_a.label) {
|
|
96
98
|
case 0:
|
|
97
|
-
if (!exports.
|
|
99
|
+
if (!exports.optimizelyClientInstance) {
|
|
98
100
|
throw new types_1.MissingInstanceError();
|
|
99
101
|
}
|
|
100
|
-
return [4 /*yield*/, exports.
|
|
101
|
-
.onReady({ timeout: 1000 })
|
|
102
|
-
.then(function (result) {
|
|
102
|
+
return [4 /*yield*/, exports.optimizelyClientInstance.onReady({ timeout: 1000 }).then(function (result) {
|
|
103
103
|
if (result && result.success) {
|
|
104
|
-
return exports.
|
|
104
|
+
return exports.optimizelyClientInstance === null || exports.optimizelyClientInstance === void 0 ? void 0 : exports.optimizelyClientInstance.getOptimizelyConfig();
|
|
105
105
|
}
|
|
106
106
|
return null;
|
|
107
107
|
})];
|
|
108
108
|
case 1:
|
|
109
|
-
|
|
110
|
-
if (!
|
|
109
|
+
optimizelyConfig = _a.sent();
|
|
110
|
+
if (!optimizelyConfig)
|
|
111
111
|
return [2 /*return*/, exports.defaultFeatureFlags];
|
|
112
|
-
featureFlags =
|
|
112
|
+
featureFlags = optimizelyConfig.featuresMap;
|
|
113
113
|
featureFlagsKeys = Object.keys(featureFlags);
|
|
114
114
|
allFeatureFlags = (0, exports.getFlattenFeatureFlags)(featureFlagsKeys, featureFlags);
|
|
115
115
|
return [2 /*return*/, allFeatureFlags];
|
|
@@ -117,7 +117,7 @@ var getFeatureFlags = function () { return __awaiter(void 0, void 0, void 0, fun
|
|
|
117
117
|
});
|
|
118
118
|
}); };
|
|
119
119
|
exports.getFeatureFlags = getFeatureFlags;
|
|
120
|
-
var initAndGetFeatureFlag = function (sdkKey) { return __awaiter(void 0, void 0, void 0, function () {
|
|
120
|
+
var initAndGetFeatureFlag = function (sdkKey, attributes) { return __awaiter(void 0, void 0, void 0, function () {
|
|
121
121
|
var featureFlags;
|
|
122
122
|
return __generator(this, function (_a) {
|
|
123
123
|
switch (_a.label) {
|
|
@@ -126,6 +126,7 @@ var initAndGetFeatureFlag = function (sdkKey) { return __awaiter(void 0, void 0,
|
|
|
126
126
|
if (!sdkKey) return [3 /*break*/, 2];
|
|
127
127
|
(0, exports.createFeatureFlagsInstance)({
|
|
128
128
|
optimizelyConfig: { sdkKey: sdkKey },
|
|
129
|
+
userAttributes: attributes,
|
|
129
130
|
});
|
|
130
131
|
return [4 /*yield*/, (0, exports.getFeatureFlags)()];
|
|
131
132
|
case 1:
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAImC;AACnC,iCAKgB;AAChB,mCAIiB;AAKN,QAAA,mBAAmB,GAAgB,EAAE,CAAA;AACzC,IAAM,cAAc,GAAG;IAC5B,gCAAwB,GAAG,IAAI,CAAA;AACjC,CAAC,CAAA;AAFY,QAAA,cAAc,kBAE1B;AAEM,IAAM,0BAA0B,GAAG,UAAC,MAAsB;IAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE;QACnC,MAAM,IAAI,iCAAyB,EAAE,CAAA;KACtC;IAED,gCAAwB,GAAG,wBAAa,CAAC,cAAc,uBAClD,mCAA0B,GAC1B,MAAM,CAAC,gBAAgB,EAC1B,CAAA;IAEF,oBAAY,GAAG,MAAM,CAAC,MAAM,IAAI,sBAAa,CAAA;IAC7C,sBAAc,GAAG,MAAM,CAAC,cAAc,IAAI,8BAAqB,CAAA;IAE/D,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnB,wBAAa,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC1C,wBAAa,CAAC,SAAS,CAAC,wBAAa,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;KAC9D;IACD,IAAI,MAAM,CAAC,mBAAmB,EAAE;QAC9B,2BAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAA;KACjD;AACH,CAAC,CAAA;AApBY,QAAA,0BAA0B,8BAoBtC;AAEM,IAAM,sBAAsB,GAAG,UACpC,gBAAgB,EAChB,WAAW;IAEX,OAAA,gBAAgB;SACb,GAAG,CAAC,UAAC,OAAO;;QACX,IAAM,gBAAgB,GAAG,gCAAwB,aAAxB,gCAAwB,uBAAxB,gCAAwB,CAAE,gBAAgB,CACjE,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EACxB,oBAAY,EACZ,sBAAc,CACf,CAAA;QAED;YACE,GAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,IAAG,gBAAgB;eAC7C;IACH,CAAC,CAAC;SACD,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG;QACf,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACnB,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC;AAhBR,CAgBQ,CAAA;AApBG,QAAA,sBAAsB,0BAoBzB;AAEH,IAAM,eAAe,GAAG;;;;;gBAC7B,IAAI,CAAC,gCAAwB,EAAE;oBAC7B,MAAM,IAAI,4BAAoB,EAAE,CAAA;iBACjC;gBAGC,qBAAM,gCAAwB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,MAAM;wBACpE,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;4BAC5B,OAAO,gCAAwB,aAAxB,gCAAwB,uBAAxB,gCAAwB,CAAE,mBAAmB,EAAE,CAAA;yBACvD;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC,CAAC,EAAA;;gBANE,gBAAgB,GACpB,SAKE;gBAEJ,IAAI,CAAC,gBAAgB;oBAAE,sBAAO,2BAAmB,EAAA;gBAE3C,YAAY,GAAG,gBAAgB,CAAC,WAAW,CAAA;gBAC3C,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAE5C,eAAe,GAAgB,IAAA,8BAAsB,EACzD,gBAAgB,EAChB,YAAY,CACb,CAAA;gBAED,sBAAO,eAAe,EAAA;;;KACvB,CAAA;AAxBY,QAAA,eAAe,mBAwB3B;AAEM,IAAM,qBAAqB,GAAG,UACnC,MAAe,EACf,UAA2B;;;;;gBAEvB,YAAY,GAAG,EAAE,CAAA;qBAEjB,MAAM,EAAN,wBAAM;gBACR,IAAA,kCAA0B,EAAC;oBACzB,gBAAgB,EAAE,EAAE,MAAM,QAAA,EAAE;oBAC5B,cAAc,EAAE,UAAU;iBAC3B,CAAC,CAAA;gBACa,qBAAM,IAAA,uBAAe,GAAE,EAAA;;gBAAtC,YAAY,GAAG,SAAuB,CAAA;;oBAExC,sBAAO,YAAY,EAAA;;;KACpB,CAAA;AAdY,QAAA,qBAAqB,yBAcjC;AAED,kBAAe,EAAE,0BAA0B,oCAAA,EAAE,eAAe,yBAAA,EAAE,CAAA"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
13
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
14
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -34,9 +45,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
46
|
}
|
|
36
47
|
};
|
|
37
|
-
import { getFeatureFlags, createFeatureFlagsInstance, getFlattenFeatureFlags, userIdentity, defaultFeatureFlags, _resetInstance, initAndGetFeatureFlag, } from '../utils';
|
|
38
|
-
import { defaultUserId } from '../config';
|
|
39
48
|
import optimizelySDK from '@optimizely/optimizely-sdk';
|
|
49
|
+
import { createFeatureFlagsInstance, getFeatureFlags, getFlattenFeatureFlags, initAndGetFeatureFlag, userIdentity, userAttributes, defaultFeatureFlags, _resetInstance, } from '../utils';
|
|
50
|
+
import { defaultUserId, defaultUserAttributes } from '../config';
|
|
40
51
|
import { MissingConfigurationError, MissingInstanceError } from '../types';
|
|
41
52
|
var mockFeaturesMap = {
|
|
42
53
|
test_flag: {
|
|
@@ -48,21 +59,25 @@ var mockFeaturesMap = {
|
|
|
48
59
|
enabled: true,
|
|
49
60
|
},
|
|
50
61
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
.fn()
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
jest.mock('@optimizely/optimizely-sdk', function () { return (__assign(__assign({}, jest.requireActual('@optimizely/optimizely-sdk')), { createInstance: function () { return ({
|
|
63
|
+
isFeatureEnabled: jest
|
|
64
|
+
.fn()
|
|
65
|
+
.mockImplementation(function (featureKey, userId) {
|
|
66
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
67
|
+
}),
|
|
68
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
69
|
+
getOptimizelyConfig: jest
|
|
70
|
+
.fn()
|
|
71
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
72
|
+
}); } })); });
|
|
60
73
|
jest
|
|
61
74
|
.spyOn(optimizelySDK, 'setLogLevel')
|
|
62
75
|
.mockImplementation(function (logLevel) { return logLevel; });
|
|
63
76
|
jest.spyOn(optimizelySDK, 'setLogger');
|
|
77
|
+
beforeEach(function () {
|
|
78
|
+
jest.resetModules();
|
|
79
|
+
});
|
|
64
80
|
afterEach(function () {
|
|
65
|
-
jest.clearAllMocks();
|
|
66
81
|
_resetInstance();
|
|
67
82
|
});
|
|
68
83
|
describe('createFeatureFlagsInstance', function () {
|
|
@@ -80,6 +95,17 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
80
95
|
}
|
|
81
96
|
});
|
|
82
97
|
}); });
|
|
98
|
+
it('should use default attributes when creating instance', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
99
|
+
return __generator(this, function (_a) {
|
|
100
|
+
switch (_a.label) {
|
|
101
|
+
case 0: return [4 /*yield*/, createFeatureFlagsInstance({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
102
|
+
case 1:
|
|
103
|
+
_a.sent();
|
|
104
|
+
expect(userAttributes).toEqual(defaultUserAttributes);
|
|
105
|
+
return [2 /*return*/];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}); });
|
|
83
109
|
it('should set userId when creating instance and passing userId', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
110
|
return __generator(this, function (_a) {
|
|
85
111
|
switch (_a.label) {
|
|
@@ -94,6 +120,42 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
94
120
|
}
|
|
95
121
|
});
|
|
96
122
|
}); });
|
|
123
|
+
it('should set attributes when creating instance and passing attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
124
|
+
return __generator(this, function (_a) {
|
|
125
|
+
switch (_a.label) {
|
|
126
|
+
case 0: return [4 /*yield*/, createFeatureFlagsInstance({
|
|
127
|
+
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
128
|
+
userAttributes: {
|
|
129
|
+
cpn: '4AAA039156221',
|
|
130
|
+
billingDetails: {
|
|
131
|
+
paymentMethod: {
|
|
132
|
+
type: 'CreditCard',
|
|
133
|
+
cardType: 'Visa',
|
|
134
|
+
cardNumber: '************4321',
|
|
135
|
+
expirationYear: 2028,
|
|
136
|
+
expirationMonth: 2,
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
})];
|
|
141
|
+
case 1:
|
|
142
|
+
_a.sent();
|
|
143
|
+
expect(userAttributes).toEqual({
|
|
144
|
+
cpn: '4AAA039156221',
|
|
145
|
+
billingDetails: {
|
|
146
|
+
paymentMethod: {
|
|
147
|
+
type: 'CreditCard',
|
|
148
|
+
cardType: 'Visa',
|
|
149
|
+
cardNumber: '************4321',
|
|
150
|
+
expirationYear: 2028,
|
|
151
|
+
expirationMonth: 2,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
return [2 /*return*/];
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}); });
|
|
97
159
|
it('should set defaultFeatureFlags when they have been passed', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
98
160
|
return __generator(this, function (_a) {
|
|
99
161
|
switch (_a.label) {
|
|
@@ -176,24 +238,32 @@ describe('getFeatureFlags', function () {
|
|
|
176
238
|
});
|
|
177
239
|
}); });
|
|
178
240
|
it('should return default feature flags object & optimizely.onReady returns success: false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
179
|
-
var _a;
|
|
241
|
+
var utils, _a;
|
|
180
242
|
return __generator(this, function (_b) {
|
|
181
243
|
switch (_b.label) {
|
|
182
244
|
case 0:
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
245
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
246
|
+
createInstance: function () { return ({
|
|
247
|
+
isFeatureEnabled: jest
|
|
248
|
+
.fn()
|
|
249
|
+
.mockImplementation(function (featureKey, userId) {
|
|
250
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
251
|
+
}),
|
|
252
|
+
onReady: jest.fn().mockResolvedValue({ success: false }),
|
|
253
|
+
getOptimizelyConfig: jest
|
|
254
|
+
.fn()
|
|
255
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
256
|
+
}); },
|
|
257
|
+
}); });
|
|
258
|
+
utils = require('../utils').default;
|
|
259
|
+
return [4 /*yield*/, utils.createFeatureFlagsInstance({
|
|
190
260
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
191
261
|
defaultFeatureFlags: { defaultFlag: true },
|
|
192
262
|
})];
|
|
193
263
|
case 1:
|
|
194
264
|
_b.sent();
|
|
195
265
|
_a = expect;
|
|
196
|
-
return [4 /*yield*/, getFeatureFlags()];
|
|
266
|
+
return [4 /*yield*/, utils.getFeatureFlags()];
|
|
197
267
|
case 2:
|
|
198
268
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
199
269
|
defaultFlag: true,
|
|
@@ -204,6 +274,19 @@ describe('getFeatureFlags', function () {
|
|
|
204
274
|
}); });
|
|
205
275
|
});
|
|
206
276
|
describe('initAndGetFeatureFlag', function () {
|
|
277
|
+
it('should return empty object', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
278
|
+
var _a;
|
|
279
|
+
return __generator(this, function (_b) {
|
|
280
|
+
switch (_b.label) {
|
|
281
|
+
case 0:
|
|
282
|
+
_a = expect;
|
|
283
|
+
return [4 /*yield*/, initAndGetFeatureFlag()];
|
|
284
|
+
case 1:
|
|
285
|
+
_a.apply(void 0, [_b.sent()]).toEqual({});
|
|
286
|
+
return [2 /*return*/];
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}); });
|
|
207
290
|
it('should return flag', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
208
291
|
var _a;
|
|
209
292
|
return __generator(this, function (_b) {
|
|
@@ -213,21 +296,75 @@ describe('initAndGetFeatureFlag', function () {
|
|
|
213
296
|
return [4 /*yield*/, initAndGetFeatureFlag('sdkkey')];
|
|
214
297
|
case 1:
|
|
215
298
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
216
|
-
|
|
299
|
+
test_flag: false,
|
|
300
|
+
test_flag2: true,
|
|
217
301
|
});
|
|
218
302
|
return [2 /*return*/];
|
|
219
303
|
}
|
|
220
304
|
});
|
|
221
305
|
}); });
|
|
222
|
-
it('should return
|
|
223
|
-
var _a;
|
|
306
|
+
it('should return flags for specific attributes - feature is enabeled for this user', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
307
|
+
var utils, _a;
|
|
224
308
|
return __generator(this, function (_b) {
|
|
225
309
|
switch (_b.label) {
|
|
226
310
|
case 0:
|
|
311
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
312
|
+
createInstance: function () { return ({
|
|
313
|
+
isFeatureEnabled: jest
|
|
314
|
+
.fn()
|
|
315
|
+
.mockImplementation(function (featureKey, userId, attributes) {
|
|
316
|
+
if (attributes.cpn === '4AAA039156221') {
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
320
|
+
}),
|
|
321
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
322
|
+
getOptimizelyConfig: jest
|
|
323
|
+
.fn()
|
|
324
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
325
|
+
}); },
|
|
326
|
+
}); });
|
|
327
|
+
utils = require('../utils');
|
|
227
328
|
_a = expect;
|
|
228
|
-
return [4 /*yield*/, initAndGetFeatureFlag()];
|
|
329
|
+
return [4 /*yield*/, utils.initAndGetFeatureFlag('sdkkey', { cpn: '4AAA039156221' })];
|
|
229
330
|
case 1:
|
|
230
|
-
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
331
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
332
|
+
test_flag: true,
|
|
333
|
+
test_flag2: true,
|
|
334
|
+
});
|
|
335
|
+
return [2 /*return*/];
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}); });
|
|
339
|
+
it('should return flags for specific attributes - feature is not enabled for this user', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
340
|
+
var utils, _a;
|
|
341
|
+
return __generator(this, function (_b) {
|
|
342
|
+
switch (_b.label) {
|
|
343
|
+
case 0:
|
|
344
|
+
jest.doMock('@optimizely/optimizely-sdk', function () { return ({
|
|
345
|
+
createInstance: function () { return ({
|
|
346
|
+
isFeatureEnabled: jest
|
|
347
|
+
.fn()
|
|
348
|
+
.mockImplementation(function (featureKey, userId, attributes) {
|
|
349
|
+
if (attributes.cpn === '4AAA039156228') {
|
|
350
|
+
return mockFeaturesMap[featureKey].enabled;
|
|
351
|
+
}
|
|
352
|
+
return false;
|
|
353
|
+
}),
|
|
354
|
+
onReady: jest.fn().mockResolvedValue({ success: true }),
|
|
355
|
+
getOptimizelyConfig: jest
|
|
356
|
+
.fn()
|
|
357
|
+
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
358
|
+
}); },
|
|
359
|
+
}); });
|
|
360
|
+
utils = require('../utils');
|
|
361
|
+
_a = expect;
|
|
362
|
+
return [4 /*yield*/, utils.initAndGetFeatureFlag('sdkkey', { cpn: '4AAA039156221' })];
|
|
363
|
+
case 1:
|
|
364
|
+
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
365
|
+
test_flag: false,
|
|
366
|
+
test_flag2: false,
|
|
367
|
+
});
|
|
231
368
|
return [2 /*return*/];
|
|
232
369
|
}
|
|
233
370
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.tests.js","sourceRoot":"","sources":["../../../src/__tests__/utils.tests.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.tests.js","sourceRoot":"","sources":["../../../src/__tests__/utils.tests.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/config.d.ts
CHANGED
package/dist/esm/config.js
CHANGED
package/dist/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,IAAM,0BAA0B,GAAW;IAChD,eAAe,EAAE;QACf,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,MAAM;KACvB;CACF,CAAA;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,gBAAgB,CAAA;AAC7C,MAAM,CAAC,IAAM,qBAAqB,GAAG,EAAE,CAAA"}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { Config } from '@optimizely/optimizely-sdk';
|
|
2
|
+
import { Config, UserAttributes } from '@optimizely/optimizely-sdk';
|
|
3
3
|
export interface FeatureFlag {
|
|
4
4
|
[key: string]: boolean;
|
|
5
5
|
}
|
|
@@ -13,6 +13,7 @@ export interface ContextProviderProps {
|
|
|
13
13
|
export interface InstanceConfig {
|
|
14
14
|
optimizelyConfig: Config;
|
|
15
15
|
userId?: string;
|
|
16
|
+
userAttributes?: UserAttributes;
|
|
16
17
|
defaultFeatureFlags?: FeatureFlag;
|
|
17
18
|
logLevel?: 'critical' | 'error' | 'warning' | 'debug' | 'info';
|
|
18
19
|
}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAwBA;IAA+C,6CAAK;IAClD;eACE,kBACE,uHAAuH,CACxH;IACH,CAAC;IACH,gCAAC;AAAD,CAAC,AAND,CAA+C,KAAK,GAMnD;;AAED;IAA0C,wCAAK;IAC7C;eACE,kBACE,sHAAsH,CACvH;IACH,CAAC;IACH,2BAAC;AAAD,CAAC,AAND,CAA0C,KAAK,GAM9C;;AAED;IAAiD,+CAAK;IACpD;eACE,kBACE,uGAAuG,CACxG;IACH,CAAC;IACH,kCAAC;AAAD,CAAC,AAND,CAAiD,KAAK,GAMrD"}
|
package/dist/esm/utils.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { Client, UserAttributes } from '@optimizely/optimizely-sdk';
|
|
1
2
|
import { InstanceConfig, FeatureFlag } from './types';
|
|
2
|
-
export declare let
|
|
3
|
-
export declare let userIdentity:
|
|
3
|
+
export declare let optimizelyClientInstance: Client | null;
|
|
4
|
+
export declare let userIdentity: string;
|
|
5
|
+
export declare let userAttributes: UserAttributes;
|
|
4
6
|
export declare let defaultFeatureFlags: FeatureFlag;
|
|
5
7
|
export declare const _resetInstance: () => void;
|
|
6
8
|
export declare const createFeatureFlagsInstance: (config: InstanceConfig) => void;
|
|
7
|
-
export declare const getFlattenFeatureFlags: (
|
|
9
|
+
export declare const getFlattenFeatureFlags: (featureFlagsKeys: any, featuresMap: any) => FeatureFlag;
|
|
8
10
|
export declare const getFeatureFlags: () => Promise<FeatureFlag>;
|
|
9
|
-
export declare const initAndGetFeatureFlag: (sdkKey?: string) => Promise<FeatureFlag>;
|
|
11
|
+
export declare const initAndGetFeatureFlag: (sdkKey?: string, attributes?: UserAttributes) => Promise<FeatureFlag>;
|
|
10
12
|
declare const _default: {
|
|
11
13
|
createFeatureFlagsInstance: (config: InstanceConfig) => void;
|
|
12
14
|
getFeatureFlags: () => Promise<FeatureFlag>;
|
package/dist/esm/utils.js
CHANGED
|
@@ -47,19 +47,21 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
};
|
|
48
48
|
import optimizelySDK from '@optimizely/optimizely-sdk';
|
|
49
49
|
import { MissingConfigurationError, MissingInstanceError, } from './types';
|
|
50
|
-
import { optimizelyDefaultSDKConfig, defaultUserId } from './config';
|
|
51
|
-
export var
|
|
50
|
+
import { optimizelyDefaultSDKConfig, defaultUserId, defaultUserAttributes, } from './config';
|
|
51
|
+
export var optimizelyClientInstance;
|
|
52
52
|
export var userIdentity;
|
|
53
|
+
export var userAttributes;
|
|
53
54
|
export var defaultFeatureFlags = {};
|
|
54
55
|
export var _resetInstance = function () {
|
|
55
|
-
|
|
56
|
+
optimizelyClientInstance = null;
|
|
56
57
|
};
|
|
57
58
|
export var createFeatureFlagsInstance = function (config) {
|
|
58
59
|
if (!config.optimizelyConfig.sdkKey) {
|
|
59
60
|
throw new MissingConfigurationError();
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
optimizelyClientInstance = optimizelySDK.createInstance(__assign(__assign({}, optimizelyDefaultSDKConfig), config.optimizelyConfig));
|
|
62
63
|
userIdentity = config.userId || defaultUserId;
|
|
64
|
+
userAttributes = config.userAttributes || defaultUserAttributes;
|
|
63
65
|
if (config.logLevel) {
|
|
64
66
|
optimizelySDK.setLogLevel(config.logLevel);
|
|
65
67
|
optimizelySDK.setLogger(optimizelySDK.logging.createLogger());
|
|
@@ -68,12 +70,13 @@ export var createFeatureFlagsInstance = function (config) {
|
|
|
68
70
|
defaultFeatureFlags = config.defaultFeatureFlags;
|
|
69
71
|
}
|
|
70
72
|
};
|
|
71
|
-
export var getFlattenFeatureFlags = function (
|
|
72
|
-
return
|
|
73
|
-
.map(function (
|
|
73
|
+
export var getFlattenFeatureFlags = function (featureFlagsKeys, featuresMap) {
|
|
74
|
+
return featureFlagsKeys
|
|
75
|
+
.map(function (flagKey) {
|
|
74
76
|
var _a;
|
|
77
|
+
var isFeatureEnabled = optimizelyClientInstance === null || optimizelyClientInstance === void 0 ? void 0 : optimizelyClientInstance.isFeatureEnabled(featuresMap[flagKey].key, userIdentity, userAttributes);
|
|
75
78
|
return _a = {},
|
|
76
|
-
_a[
|
|
79
|
+
_a[featuresMap[flagKey].key] = isFeatureEnabled,
|
|
77
80
|
_a;
|
|
78
81
|
})
|
|
79
82
|
.reduce(function (map, obj) {
|
|
@@ -83,33 +86,31 @@ export var getFlattenFeatureFlags = function (keys, array) {
|
|
|
83
86
|
}, {});
|
|
84
87
|
};
|
|
85
88
|
export var getFeatureFlags = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
86
|
-
var
|
|
89
|
+
var optimizelyConfig, featureFlags, featureFlagsKeys, allFeatureFlags;
|
|
87
90
|
return __generator(this, function (_a) {
|
|
88
91
|
switch (_a.label) {
|
|
89
92
|
case 0:
|
|
90
|
-
if (!
|
|
93
|
+
if (!optimizelyClientInstance) {
|
|
91
94
|
throw new MissingInstanceError();
|
|
92
95
|
}
|
|
93
|
-
return [4 /*yield*/,
|
|
94
|
-
.onReady({ timeout: 1000 })
|
|
95
|
-
.then(function (result) {
|
|
96
|
+
return [4 /*yield*/, optimizelyClientInstance.onReady({ timeout: 1000 }).then(function (result) {
|
|
96
97
|
if (result && result.success) {
|
|
97
|
-
return
|
|
98
|
+
return optimizelyClientInstance === null || optimizelyClientInstance === void 0 ? void 0 : optimizelyClientInstance.getOptimizelyConfig();
|
|
98
99
|
}
|
|
99
100
|
return null;
|
|
100
101
|
})];
|
|
101
102
|
case 1:
|
|
102
|
-
|
|
103
|
-
if (!
|
|
103
|
+
optimizelyConfig = _a.sent();
|
|
104
|
+
if (!optimizelyConfig)
|
|
104
105
|
return [2 /*return*/, defaultFeatureFlags];
|
|
105
|
-
featureFlags =
|
|
106
|
+
featureFlags = optimizelyConfig.featuresMap;
|
|
106
107
|
featureFlagsKeys = Object.keys(featureFlags);
|
|
107
108
|
allFeatureFlags = getFlattenFeatureFlags(featureFlagsKeys, featureFlags);
|
|
108
109
|
return [2 /*return*/, allFeatureFlags];
|
|
109
110
|
}
|
|
110
111
|
});
|
|
111
112
|
}); };
|
|
112
|
-
export var initAndGetFeatureFlag = function (sdkKey) { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
export var initAndGetFeatureFlag = function (sdkKey, attributes) { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
114
|
var featureFlags;
|
|
114
115
|
return __generator(this, function (_a) {
|
|
115
116
|
switch (_a.label) {
|
|
@@ -118,6 +119,7 @@ export var initAndGetFeatureFlag = function (sdkKey) { return __awaiter(void 0,
|
|
|
118
119
|
if (!sdkKey) return [3 /*break*/, 2];
|
|
119
120
|
createFeatureFlagsInstance({
|
|
120
121
|
optimizelyConfig: { sdkKey: sdkKey },
|
|
122
|
+
userAttributes: attributes,
|
|
121
123
|
});
|
|
122
124
|
return [4 /*yield*/, getFeatureFlags()];
|
|
123
125
|
case 1:
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED