@newskit-render/feature-flags 0.2.0 → 0.4.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.
- package/CHANGELOG.md +41 -0
- package/README.md +17 -11
- package/dist/__tests__/utils.tests.js +33 -28
- package/dist/__tests__/utils.tests.js.map +1 -1
- package/dist/config.js +5 -2
- package/dist/config.js.map +1 -1
- package/dist/feature-flags-context.js +33 -9
- package/dist/feature-flags-context.js.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/types.js +6 -3
- package/dist/types.js.map +1 -1
- package/dist/utils.js +33 -25
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.4.1](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/feature-flags@0.4.0...@newskit-render/feature-flags@0.4.1) (2021-11-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @newskit-render/feature-flags
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.4.0](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/feature-flags@0.3.1...@newskit-render/feature-flags@0.4.0) (2021-11-22)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **PPDSR-0:** fix broken dependecy ([#521](https://github.com/newscorp-ghfb/ncu-newskit-render/issues/521)) ([2690dd3](https://github.com/newscorp-ghfb/ncu-newskit-render/commit/2690dd3bc6cf61a88740a0ff935adf461be02416))
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## [0.3.1](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/feature-flags@0.3.0...@newskit-render/feature-flags@0.3.1) (2021-11-15)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **PPDSR-541:** change packages to get published ([#506](https://github.com/newscorp-ghfb/ncu-newskit-render/issues/506)) ([4de773b](https://github.com/newscorp-ghfb/ncu-newskit-render/commit/4de773b8e22663a2822f64255f347c32384532c0))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [0.3.0](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/feature-flags@0.2.0...@newskit-render/feature-flags@0.3.0) (2021-11-10)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* **PPDSR-496:** add next link wrapper component ([#500](https://github.com/newscorp-ghfb/ncu-newskit-render/issues/500)) ([a8ca436](https://github.com/newscorp-ghfb/ncu-newskit-render/commit/a8ca436f6f8061d58e857eb83d7d3ee9cfb449a6))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
6
47
|
# [0.2.0](https://github.com/newscorp-ghfb/ncu-newskit-render/compare/@newskit-render/feature-flags@0.1.2...@newskit-render/feature-flags@0.2.0) (2021-11-10)
|
|
7
48
|
|
|
8
49
|
|
package/README.md
CHANGED
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
A package for adding feature flags to projects generated by newskit-render.
|
|
4
4
|
|
|
5
5
|
## How to use:
|
|
6
|
+
|
|
6
7
|
`yarn add @newskit-render/feature-flags` or <br />
|
|
7
8
|
`npm install --save @newskit-render/feature-flags` <br /><br />
|
|
8
9
|
|
|
9
10
|
There are two ways that feature flags can be utilized.
|
|
10
|
-
### getFeatureFlags() in getServerSideProps ###
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
### getFeatureFlags() in getServerSideProps
|
|
13
|
+
|
|
14
|
+
The most performant way to use feature flags is to call `getFeatureFlags()` in `getServersideProps` and then use them throughout the page. This way the implementation will only be available for the current page and and wouldn't effect the rest of the site.
|
|
13
15
|
To do so you will need to initialize the package by calling `createFeatureFlagsInstance` with the sdkKey from optimizely.
|
|
14
16
|
Best practice is to store your sdk key in environment variables, the examples below utilize that method.
|
|
15
17
|
For local use, you cadd the Optimizely SDK key from your project in your `.env.local` file like so
|
|
@@ -19,6 +21,7 @@ Optionally the config can be switched to suit your need. More on this can be fou
|
|
|
19
21
|
An example implementation would be as follows:
|
|
20
22
|
|
|
21
23
|
`pages/index.ts`
|
|
24
|
+
|
|
22
25
|
```
|
|
23
26
|
import {getFeatureFlags, createFeatureFlagsInstance} from '@newskit-render/feature-flags';
|
|
24
27
|
|
|
@@ -31,7 +34,7 @@ export async function getServerSideProps(context) {
|
|
|
31
34
|
// other queries,
|
|
32
35
|
getFeatureFlags()
|
|
33
36
|
])
|
|
34
|
-
|
|
37
|
+
|
|
35
38
|
const featureFlags = featureFlagsResult.value;
|
|
36
39
|
|
|
37
40
|
return {
|
|
@@ -42,6 +45,7 @@ export async function getServerSideProps(context) {
|
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
```
|
|
48
|
+
|
|
45
49
|
`samplePage/index.tsx`
|
|
46
50
|
|
|
47
51
|
```
|
|
@@ -51,9 +55,9 @@ import { FeatureFlag } from '@newskit-render/feature-flags'
|
|
|
51
55
|
const SectionPage: React.FC<{
|
|
52
56
|
page: Page
|
|
53
57
|
// pageprops...
|
|
54
|
-
featureFlags?: FeatureFlag[]
|
|
58
|
+
featureFlags?: FeatureFlag[]
|
|
55
59
|
}> = ({ page, pageprops..., featureFlags }) => {
|
|
56
|
-
|
|
60
|
+
|
|
57
61
|
return(
|
|
58
62
|
<Layout>
|
|
59
63
|
{featureFlags && featureFlags['test_flag'] && <p>FEATURE FLAG IS HEREEE</p>}
|
|
@@ -67,14 +71,15 @@ export default SamplePage
|
|
|
67
71
|
|
|
68
72
|
```
|
|
69
73
|
|
|
70
|
-
### hooks in getInitialProps
|
|
74
|
+
### hooks in getInitialProps
|
|
71
75
|
|
|
72
76
|
Alternatively, feature flags can be applied on the whole app. To do so, you'll need to instantiate the package in `getInitialProps` of the main app, then call `getFeatureFlags` and pass the result to the whole app.
|
|
73
|
-
By calling the `useFeatureFlagsContext` hook, the list of featureFlags can be accessed from any point of the site.
|
|
77
|
+
By calling the `useFeatureFlagsContext` hook, the list of featureFlags can be accessed from any point of the site.
|
|
74
78
|
<br /> <br />
|
|
75
79
|
Below we explore a solution, where we use it in the header of the app.
|
|
76
80
|
|
|
77
81
|
`pages/_app.tsx`
|
|
82
|
+
|
|
78
83
|
```
|
|
79
84
|
import { getFeatureFlags, FeatureFlagsContextProvider, FeatureFlag, createFeatureFlagsInstance } from '@newskit-render/feature-flags';
|
|
80
85
|
|
|
@@ -94,7 +99,6 @@ MyApp.getInitialProps = async () => {
|
|
|
94
99
|
export default MyApp
|
|
95
100
|
```
|
|
96
101
|
|
|
97
|
-
|
|
98
102
|
`header/index.tsx`
|
|
99
103
|
|
|
100
104
|
```
|
|
@@ -102,7 +106,7 @@ import { useFeatureFlagsContext } from '@newskit-render/feature-flags';
|
|
|
102
106
|
|
|
103
107
|
const Header: React.FC<{ user: UserData }> = ({ user }) => {
|
|
104
108
|
const featureFlags = useFeatureFlagsContext();
|
|
105
|
-
|
|
109
|
+
|
|
106
110
|
return (
|
|
107
111
|
<>
|
|
108
112
|
<StyledHeader>
|
|
@@ -122,8 +126,10 @@ const Header: React.FC<{ user: UserData }> = ({ user }) => {
|
|
|
122
126
|
|
|
123
127
|
export default Header
|
|
124
128
|
```
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
|
|
130
|
+
### createFeatureFlagsInstance
|
|
131
|
+
|
|
132
|
+
`createFeatureFlagsInstance` takes config object as parameter. The config object consists of [`optimizelyConfig`](https://docs.developers.optimizely.com/full-stack/v4.0/docs/initialize-sdk-javascript-node#section-parameters), `userId`, `defaultFeatureFlags`, `logLevel`. The only requirement for the feature flags to be instantiated is passing optimizely sdk key to `optimizelyConfig`. Further, the whole config can be changed to suit your needs.
|
|
127
133
|
`userId` serves as optimizely user identity.
|
|
128
134
|
`defaultFeatureFlags` are used in the event that optimizely doesn't load up and initial values are required.
|
|
129
135
|
`logLevel` serves to configure the optimizely logger if you wish to use it. It accepts `critical`, `error`, `warning`, `debug` or `info`
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -34,10 +35,14 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
36
|
}
|
|
36
37
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var utils_1 = require("../utils");
|
|
43
|
+
var config_1 = require("../config");
|
|
44
|
+
var optimizely_sdk_1 = __importDefault(require("@optimizely/optimizely-sdk"));
|
|
45
|
+
var types_1 = require("../types");
|
|
41
46
|
var mockFeaturesMap = {
|
|
42
47
|
test_flag: {
|
|
43
48
|
key: 'test_flag',
|
|
@@ -48,7 +53,7 @@ var mockFeaturesMap = {
|
|
|
48
53
|
enabled: true,
|
|
49
54
|
},
|
|
50
55
|
};
|
|
51
|
-
|
|
56
|
+
optimizely_sdk_1.default.createInstance = jest.fn().mockReturnValue({
|
|
52
57
|
isFeatureEnabled: jest.fn().mockImplementation(function (key) {
|
|
53
58
|
return mockFeaturesMap[key].enabled;
|
|
54
59
|
}),
|
|
@@ -58,24 +63,24 @@ optimizelySDK.createInstance = jest.fn().mockReturnValue({
|
|
|
58
63
|
.mockReturnValue({ featuresMap: mockFeaturesMap }),
|
|
59
64
|
});
|
|
60
65
|
jest
|
|
61
|
-
.spyOn(
|
|
66
|
+
.spyOn(optimizely_sdk_1.default, 'setLogLevel')
|
|
62
67
|
.mockImplementation(function (logLevel) { return logLevel; });
|
|
63
|
-
jest.spyOn(
|
|
68
|
+
jest.spyOn(optimizely_sdk_1.default, 'setLogger');
|
|
64
69
|
afterEach(function () {
|
|
65
70
|
jest.clearAllMocks();
|
|
66
|
-
_resetInstance();
|
|
71
|
+
(0, utils_1._resetInstance)();
|
|
67
72
|
});
|
|
68
73
|
describe('createFeatureFlagsInstance', function () {
|
|
69
74
|
it('should throw error when called without sdk key', function () {
|
|
70
|
-
expect(function () { return createFeatureFlagsInstance({ optimizelyConfig: {} }); }).toThrow(new MissingConfigurationError());
|
|
75
|
+
expect(function () { return (0, utils_1.createFeatureFlagsInstance)({ optimizelyConfig: {} }); }).toThrow(new types_1.MissingConfigurationError());
|
|
71
76
|
});
|
|
72
77
|
it('should use default userId when creating instance', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
78
|
return __generator(this, function (_a) {
|
|
74
79
|
switch (_a.label) {
|
|
75
|
-
case 0: return [4 /*yield*/, createFeatureFlagsInstance({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
80
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
76
81
|
case 1:
|
|
77
82
|
_a.sent();
|
|
78
|
-
expect(userIdentity).toEqual(defaultUserId);
|
|
83
|
+
expect(utils_1.userIdentity).toEqual(config_1.defaultUserId);
|
|
79
84
|
return [2 /*return*/];
|
|
80
85
|
}
|
|
81
86
|
});
|
|
@@ -83,13 +88,13 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
83
88
|
it('should set userId when creating instance and passing userId', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
89
|
return __generator(this, function (_a) {
|
|
85
90
|
switch (_a.label) {
|
|
86
|
-
case 0: return [4 /*yield*/, createFeatureFlagsInstance({
|
|
91
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({
|
|
87
92
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
88
93
|
userId: 'user123',
|
|
89
94
|
})];
|
|
90
95
|
case 1:
|
|
91
96
|
_a.sent();
|
|
92
|
-
expect(userIdentity).toEqual('user123');
|
|
97
|
+
expect(utils_1.userIdentity).toEqual('user123');
|
|
93
98
|
return [2 /*return*/];
|
|
94
99
|
}
|
|
95
100
|
});
|
|
@@ -98,15 +103,15 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
98
103
|
return __generator(this, function (_a) {
|
|
99
104
|
switch (_a.label) {
|
|
100
105
|
case 0:
|
|
101
|
-
expect(defaultFeatureFlags).toEqual({});
|
|
102
|
-
return [4 /*yield*/, createFeatureFlagsInstance({
|
|
106
|
+
expect(utils_1.defaultFeatureFlags).toEqual({});
|
|
107
|
+
return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({
|
|
103
108
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
104
109
|
defaultFeatureFlags: { default_flag: true, default_flag2: false },
|
|
105
110
|
})];
|
|
106
111
|
case 1:
|
|
107
112
|
_a.sent();
|
|
108
|
-
expect(
|
|
109
|
-
expect(defaultFeatureFlags).toEqual({
|
|
113
|
+
expect(optimizely_sdk_1.default.setLogLevel).not.toHaveBeenCalled();
|
|
114
|
+
expect(utils_1.defaultFeatureFlags).toEqual({
|
|
110
115
|
default_flag: true,
|
|
111
116
|
default_flag2: false,
|
|
112
117
|
});
|
|
@@ -117,14 +122,14 @@ describe('createFeatureFlagsInstance', function () {
|
|
|
117
122
|
it('should instantiate logger with log level', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
118
123
|
return __generator(this, function (_a) {
|
|
119
124
|
switch (_a.label) {
|
|
120
|
-
case 0: return [4 /*yield*/, createFeatureFlagsInstance({
|
|
125
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({
|
|
121
126
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
122
127
|
logLevel: 'critical',
|
|
123
128
|
})];
|
|
124
129
|
case 1:
|
|
125
130
|
_a.sent();
|
|
126
|
-
expect(
|
|
127
|
-
expect(
|
|
131
|
+
expect(optimizely_sdk_1.default.setLogLevel).toBeCalledWith('critical');
|
|
132
|
+
expect(optimizely_sdk_1.default.setLogger).toHaveBeenCalled();
|
|
128
133
|
return [2 /*return*/];
|
|
129
134
|
}
|
|
130
135
|
});
|
|
@@ -135,11 +140,11 @@ describe('getFlattenFeatureFlags', function () {
|
|
|
135
140
|
var _a;
|
|
136
141
|
return __generator(this, function (_b) {
|
|
137
142
|
switch (_b.label) {
|
|
138
|
-
case 0: return [4 /*yield*/, createFeatureFlagsInstance({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
143
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
139
144
|
case 1:
|
|
140
145
|
_b.sent();
|
|
141
146
|
_a = expect;
|
|
142
|
-
return [4 /*yield*/, getFlattenFeatureFlags(Object.keys(mockFeaturesMap), mockFeaturesMap)];
|
|
147
|
+
return [4 /*yield*/, (0, utils_1.getFlattenFeatureFlags)(Object.keys(mockFeaturesMap), mockFeaturesMap)];
|
|
143
148
|
case 2:
|
|
144
149
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
145
150
|
test_flag: false,
|
|
@@ -153,7 +158,7 @@ describe('getFlattenFeatureFlags', function () {
|
|
|
153
158
|
describe('getFeatureFlags', function () {
|
|
154
159
|
it('should throw error when called without optimizely instance', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
155
160
|
return __generator(this, function (_a) {
|
|
156
|
-
expect(function () { return getFeatureFlags(); }).rejects.toEqual(new MissingInstanceError());
|
|
161
|
+
expect(function () { return (0, utils_1.getFeatureFlags)(); }).rejects.toEqual(new types_1.MissingInstanceError());
|
|
157
162
|
return [2 /*return*/];
|
|
158
163
|
});
|
|
159
164
|
}); });
|
|
@@ -161,11 +166,11 @@ describe('getFeatureFlags', function () {
|
|
|
161
166
|
var _a;
|
|
162
167
|
return __generator(this, function (_b) {
|
|
163
168
|
switch (_b.label) {
|
|
164
|
-
case 0: return [4 /*yield*/, createFeatureFlagsInstance({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
169
|
+
case 0: return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({ optimizelyConfig: { sdkKey: 'sdkkey' } })];
|
|
165
170
|
case 1:
|
|
166
171
|
_b.sent();
|
|
167
172
|
_a = expect;
|
|
168
|
-
return [4 /*yield*/, getFeatureFlags()];
|
|
173
|
+
return [4 /*yield*/, (0, utils_1.getFeatureFlags)()];
|
|
169
174
|
case 2:
|
|
170
175
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
171
176
|
test_flag: false,
|
|
@@ -180,20 +185,20 @@ describe('getFeatureFlags', function () {
|
|
|
180
185
|
return __generator(this, function (_b) {
|
|
181
186
|
switch (_b.label) {
|
|
182
187
|
case 0:
|
|
183
|
-
|
|
188
|
+
optimizely_sdk_1.default.createInstance = jest.fn().mockReturnValue({
|
|
184
189
|
onReady: jest.fn().mockResolvedValue({ success: false }),
|
|
185
190
|
isFeatureEnabled: jest.fn().mockImplementation(function (key) {
|
|
186
191
|
return mockFeaturesMap[key].enabled;
|
|
187
192
|
}),
|
|
188
193
|
});
|
|
189
|
-
return [4 /*yield*/, createFeatureFlagsInstance({
|
|
194
|
+
return [4 /*yield*/, (0, utils_1.createFeatureFlagsInstance)({
|
|
190
195
|
optimizelyConfig: { sdkKey: 'sdkkey' },
|
|
191
196
|
defaultFeatureFlags: { defaultFlag: true },
|
|
192
197
|
})];
|
|
193
198
|
case 1:
|
|
194
199
|
_b.sent();
|
|
195
200
|
_a = expect;
|
|
196
|
-
return [4 /*yield*/, getFeatureFlags()];
|
|
201
|
+
return [4 /*yield*/, (0, utils_1.getFeatureFlags)()];
|
|
197
202
|
case 2:
|
|
198
203
|
_a.apply(void 0, [_b.sent()]).toEqual({
|
|
199
204
|
defaultFlag: true,
|
|
@@ -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/config.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultUserId = exports.optimizelyDefaultSDKConfig = void 0;
|
|
4
|
+
exports.optimizelyDefaultSDKConfig = {
|
|
2
5
|
datafileOptions: {
|
|
3
6
|
autoUpdate: true,
|
|
4
7
|
updateInterval: 300000,
|
|
5
8
|
},
|
|
6
9
|
};
|
|
7
|
-
|
|
10
|
+
exports.defaultUserId = 'default_userId';
|
|
8
11
|
//# sourceMappingURL=config.js.map
|
package/dist/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":";;;AACa,QAAA,0BAA0B,GAAyB;IAC9D,eAAe,EAAE;QACf,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,MAAM;KACvB;CACF,CAAA;AAEY,QAAA,aAAa,GAAG,gBAAgB,CAAA"}
|
|
@@ -1,16 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.useFeatureFlagsContext = exports.FeatureFlagsContextProvider = void 0;
|
|
23
|
+
var react_1 = __importStar(require("react"));
|
|
24
|
+
var types_1 = require("./types");
|
|
25
|
+
var FeatureFlagsContext = (0, react_1.createContext)(null);
|
|
26
|
+
var FeatureFlagsContextProvider = function (_a) {
|
|
5
27
|
var context = _a.context, children = _a.children;
|
|
6
|
-
return (
|
|
28
|
+
return (react_1.default.createElement(FeatureFlagsContext.Provider, { value: context }, children));
|
|
7
29
|
};
|
|
8
|
-
|
|
9
|
-
|
|
30
|
+
exports.FeatureFlagsContextProvider = FeatureFlagsContextProvider;
|
|
31
|
+
var useFeatureFlagsContext = function () {
|
|
32
|
+
var featureFlagsContext = (0, react_1.useContext)(FeatureFlagsContext);
|
|
10
33
|
if (!featureFlagsContext) {
|
|
11
|
-
throw new MissingFeatureFlagsProvider();
|
|
34
|
+
throw new types_1.MissingFeatureFlagsProvider();
|
|
12
35
|
}
|
|
13
36
|
return featureFlagsContext;
|
|
14
37
|
};
|
|
15
|
-
|
|
38
|
+
exports.useFeatureFlagsContext = useFeatureFlagsContext;
|
|
39
|
+
exports.default = { FeatureFlagsContextProvider: exports.FeatureFlagsContextProvider, useFeatureFlagsContext: exports.useFeatureFlagsContext };
|
|
16
40
|
//# sourceMappingURL=feature-flags-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags-context.js","sourceRoot":"","sources":["../src/feature-flags-context.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"feature-flags-context.js","sourceRoot":"","sources":["../src/feature-flags-context.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwD;AACxD,iCAIgB;AAEhB,IAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAwB,IAAI,CAAC,CAAA;AAE/D,IAAM,2BAA2B,GAAmC,UAAC,EAG3E;QAFC,OAAO,aAAA,EACP,QAAQ,cAAA;IAER,OAAO,CACL,8BAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IACzC,QAAQ,CACoB,CAChC,CAAA;AACH,CAAC,CAAA;AATY,QAAA,2BAA2B,+BASvC;AAEM,IAAM,sBAAsB,GAAG;IACpC,IAAM,mBAAmB,GAAG,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;IAC3D,IAAI,CAAC,mBAAmB,EAAE;QACxB,MAAM,IAAI,mCAA2B,EAAE,CAAA;KACxC;IACD,OAAO,mBAAmB,CAAA;AAC5B,CAAC,CAAA;AANY,QAAA,sBAAsB,0BAMlC;AAED,kBAAe,EAAE,2BAA2B,qCAAA,EAAE,sBAAsB,gCAAA,EAAE,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./feature-flags-context"), exports);
|
|
14
|
+
__exportStar(require("./utils"), exports);
|
|
3
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAuC;AACvC,0CAAuB"}
|
package/dist/types.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __extends = (this && this.__extends) || (function () {
|
|
2
3
|
var extendStatics = function (d, b) {
|
|
3
4
|
extendStatics = Object.setPrototypeOf ||
|
|
@@ -13,6 +14,8 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
13
14
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
15
|
};
|
|
15
16
|
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MissingFeatureFlagsProvider = exports.MissingInstanceError = exports.MissingConfigurationError = void 0;
|
|
16
19
|
var MissingConfigurationError = /** @class */ (function (_super) {
|
|
17
20
|
__extends(MissingConfigurationError, _super);
|
|
18
21
|
function MissingConfigurationError() {
|
|
@@ -20,7 +23,7 @@ var MissingConfigurationError = /** @class */ (function (_super) {
|
|
|
20
23
|
}
|
|
21
24
|
return MissingConfigurationError;
|
|
22
25
|
}(Error));
|
|
23
|
-
|
|
26
|
+
exports.MissingConfigurationError = MissingConfigurationError;
|
|
24
27
|
var MissingInstanceError = /** @class */ (function (_super) {
|
|
25
28
|
__extends(MissingInstanceError, _super);
|
|
26
29
|
function MissingInstanceError() {
|
|
@@ -28,7 +31,7 @@ var MissingInstanceError = /** @class */ (function (_super) {
|
|
|
28
31
|
}
|
|
29
32
|
return MissingInstanceError;
|
|
30
33
|
}(Error));
|
|
31
|
-
|
|
34
|
+
exports.MissingInstanceError = MissingInstanceError;
|
|
32
35
|
var MissingFeatureFlagsProvider = /** @class */ (function (_super) {
|
|
33
36
|
__extends(MissingFeatureFlagsProvider, _super);
|
|
34
37
|
function MissingFeatureFlagsProvider() {
|
|
@@ -36,5 +39,5 @@ var MissingFeatureFlagsProvider = /** @class */ (function (_super) {
|
|
|
36
39
|
}
|
|
37
40
|
return MissingFeatureFlagsProvider;
|
|
38
41
|
}(Error));
|
|
39
|
-
|
|
42
|
+
exports.MissingFeatureFlagsProvider = MissingFeatureFlagsProvider;
|
|
40
43
|
//# sourceMappingURL=types.js.map
|
package/dist/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":";;;;;;;;;;;;;;;;;;AAuBA;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/utils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __assign = (this && this.__assign) || function () {
|
|
2
3
|
__assign = Object.assign || function(t) {
|
|
3
4
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -45,35 +46,40 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
46
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
import { optimizelyDefaultSDKConfig, defaultUserId } from './config';
|
|
51
|
-
export var optimizelyInstance;
|
|
52
|
-
export var userIdentity;
|
|
53
|
-
export var defaultFeatureFlags = {};
|
|
54
|
-
export var _resetInstance = function () {
|
|
55
|
-
optimizelyInstance = null;
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
56
51
|
};
|
|
57
|
-
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.getFeatureFlags = exports.getFlattenFeatureFlags = exports.createFeatureFlagsInstance = exports._resetInstance = exports.defaultFeatureFlags = exports.userIdentity = exports.optimizelyInstance = void 0;
|
|
54
|
+
var optimizely_sdk_1 = __importDefault(require("@optimizely/optimizely-sdk"));
|
|
55
|
+
var types_1 = require("./types");
|
|
56
|
+
var config_1 = require("./config");
|
|
57
|
+
exports.defaultFeatureFlags = {};
|
|
58
|
+
var _resetInstance = function () {
|
|
59
|
+
exports.optimizelyInstance = null;
|
|
60
|
+
};
|
|
61
|
+
exports._resetInstance = _resetInstance;
|
|
62
|
+
var createFeatureFlagsInstance = function (config) {
|
|
58
63
|
if (!config.optimizelyConfig.sdkKey) {
|
|
59
|
-
throw new MissingConfigurationError();
|
|
64
|
+
throw new types_1.MissingConfigurationError();
|
|
60
65
|
}
|
|
61
|
-
optimizelyInstance =
|
|
62
|
-
userIdentity = config.userId || defaultUserId;
|
|
66
|
+
exports.optimizelyInstance = optimizely_sdk_1.default.createInstance(__assign(__assign({}, config.optimizelyConfig), config_1.optimizelyDefaultSDKConfig));
|
|
67
|
+
exports.userIdentity = config.userId || config_1.defaultUserId;
|
|
63
68
|
if (config.logLevel) {
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
optimizely_sdk_1.default.setLogLevel(config.logLevel);
|
|
70
|
+
optimizely_sdk_1.default.setLogger(optimizely_sdk_1.default.logging.createLogger());
|
|
66
71
|
}
|
|
67
72
|
if (config.defaultFeatureFlags) {
|
|
68
|
-
defaultFeatureFlags = config.defaultFeatureFlags;
|
|
73
|
+
exports.defaultFeatureFlags = config.defaultFeatureFlags;
|
|
69
74
|
}
|
|
70
75
|
};
|
|
71
|
-
|
|
76
|
+
exports.createFeatureFlagsInstance = createFeatureFlagsInstance;
|
|
77
|
+
var getFlattenFeatureFlags = function (keys, array) {
|
|
72
78
|
return keys
|
|
73
79
|
.map(function (feat) {
|
|
74
80
|
var _a;
|
|
75
81
|
return _a = {},
|
|
76
|
-
_a[array[feat].key] = optimizelyInstance.isFeatureEnabled(array[feat].key, userIdentity),
|
|
82
|
+
_a[array[feat].key] = exports.optimizelyInstance.isFeatureEnabled(array[feat].key, exports.userIdentity),
|
|
77
83
|
_a;
|
|
78
84
|
})
|
|
79
85
|
.reduce(function (map, obj) {
|
|
@@ -82,32 +88,34 @@ export var getFlattenFeatureFlags = function (keys, array) {
|
|
|
82
88
|
return map;
|
|
83
89
|
}, {});
|
|
84
90
|
};
|
|
85
|
-
|
|
91
|
+
exports.getFlattenFeatureFlags = getFlattenFeatureFlags;
|
|
92
|
+
var getFeatureFlags = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
86
93
|
var config, featureFlags, featureFlagsKeys, allFeatureFlags;
|
|
87
94
|
return __generator(this, function (_a) {
|
|
88
95
|
switch (_a.label) {
|
|
89
96
|
case 0:
|
|
90
|
-
if (!optimizelyInstance) {
|
|
91
|
-
throw new MissingInstanceError();
|
|
97
|
+
if (!exports.optimizelyInstance) {
|
|
98
|
+
throw new types_1.MissingInstanceError();
|
|
92
99
|
}
|
|
93
|
-
return [4 /*yield*/, optimizelyInstance
|
|
100
|
+
return [4 /*yield*/, exports.optimizelyInstance
|
|
94
101
|
.onReady({ timeout: 1000 })
|
|
95
102
|
.then(function (result) {
|
|
96
103
|
if (result && result.success) {
|
|
97
|
-
return optimizelyInstance.getOptimizelyConfig();
|
|
104
|
+
return exports.optimizelyInstance.getOptimizelyConfig();
|
|
98
105
|
}
|
|
99
106
|
return null;
|
|
100
107
|
})];
|
|
101
108
|
case 1:
|
|
102
109
|
config = _a.sent();
|
|
103
110
|
if (!config)
|
|
104
|
-
return [2 /*return*/, defaultFeatureFlags];
|
|
111
|
+
return [2 /*return*/, exports.defaultFeatureFlags];
|
|
105
112
|
featureFlags = config.featuresMap;
|
|
106
113
|
featureFlagsKeys = Object.keys(featureFlags);
|
|
107
|
-
allFeatureFlags = getFlattenFeatureFlags(featureFlagsKeys, featureFlags);
|
|
114
|
+
allFeatureFlags = (0, exports.getFlattenFeatureFlags)(featureFlagsKeys, featureFlags);
|
|
108
115
|
return [2 /*return*/, allFeatureFlags];
|
|
109
116
|
}
|
|
110
117
|
});
|
|
111
118
|
}); };
|
|
112
|
-
|
|
119
|
+
exports.getFeatureFlags = getFeatureFlags;
|
|
120
|
+
exports.default = { createFeatureFlagsInstance: exports.createFeatureFlagsInstance, getFeatureFlags: exports.getFeatureFlags };
|
|
113
121
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8EAA4E;AAC5E,iCAKgB;AAChB,mCAAoE;AAIzD,QAAA,mBAAmB,GAAgB,EAAE,CAAA;AACzC,IAAM,cAAc,GAAG;IAC5B,0BAAkB,GAAG,IAAI,CAAA;AAC3B,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,0BAAkB,GAAG,wBAAa,CAAC,cAAc,uBAC5C,MAAM,CAAC,gBAAgB,GACvB,mCAA0B,EAC7B,CAAA;IACF,oBAAY,GAAG,MAAM,CAAC,MAAM,IAAI,sBAAa,CAAA;IAC7C,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;AAjBY,QAAA,0BAA0B,8BAiBtC;AAEM,IAAM,sBAAsB,GAAG,UAAC,IAAI,EAAE,KAAK;IAChD,OAAA,IAAI;SACD,GAAG,CAAC,UAAC,IAAI;;QACR;YACE,GAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAG,0BAAkB,CAAC,gBAAgB,CACpD,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EACf,oBAAY,CACb;eACF;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;AAbR,CAaQ,CAAA;AAdG,QAAA,sBAAsB,0BAczB;AAEH,IAAM,eAAe,GAAG;;;;;gBAC7B,IAAI,CAAC,0BAAkB,EAAE;oBACvB,MAAM,IAAI,4BAAoB,EAAE,CAAA;iBACjC;gBACuC,qBAAM,0BAAkB;yBAC7D,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yBAC1B,IAAI,CAAC,UAAC,MAAM;wBACX,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;4BAC5B,OAAO,0BAAkB,CAAC,mBAAmB,EAAE,CAAA;yBAChD;wBACD,OAAO,IAAI,CAAA;oBACb,CAAC,CAAC,EAAA;;gBAPE,MAAM,GAA4B,SAOpC;gBACJ,IAAI,CAAC,MAAM;oBAAE,sBAAO,2BAAmB,EAAA;gBACjC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAA;gBAEjC,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;AAvBY,QAAA,eAAe,mBAuB3B;AAED,kBAAe,EAAE,0BAA0B,oCAAA,EAAE,eAAe,yBAAA,EAAE,CAAA"}
|
package/package.json
CHANGED