@featurevisor/react 0.36.0 → 0.38.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/CHANGELOG.md +22 -0
- package/README.md +3 -3
- package/coverage/clover.xml +2 -2
- package/coverage/coverage-final.json +3 -3
- package/coverage/lcov-report/FeaturevisorContext.ts.html +1 -1
- package/coverage/lcov-report/FeaturevisorProvider.tsx.html +1 -1
- package/coverage/lcov-report/activateFeature.ts.html +4 -4
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/useSdk.ts.html +1 -1
- package/coverage/lcov-report/useStatus.ts.html +1 -1
- package/coverage/lcov-report/useVariable.ts.html +4 -4
- package/coverage/lcov-report/useVariation.ts.html +4 -4
- package/dist/index.js.gz +0 -0
- package/dist/index.js.map +1 -1
- package/lib/activateFeature.d.ts +2 -2
- package/lib/activateFeature.js +3 -3
- package/lib/activateFeature.js.map +1 -1
- package/lib/useVariable.d.ts +2 -2
- package/lib/useVariable.js +3 -3
- package/lib/useVariable.js.map +1 -1
- package/lib/useVariation.d.ts +2 -2
- package/lib/useVariation.js +3 -3
- package/lib/useVariation.js.map +1 -1
- package/package.json +4 -4
- package/src/activateFeature.spec.tsx +4 -5
- package/src/activateFeature.ts +3 -3
- package/src/useSdk.spec.tsx +3 -4
- package/src/useStatus.spec.tsx +3 -4
- package/src/useVariable.spec.tsx +0 -1
- package/src/useVariable.ts +3 -3
- package/src/useVariation.spec.tsx +4 -5
- package/src/useVariation.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.38.0](https://github.com/fahad19/featurevisor/compare/v0.37.1...v0.38.0) (2023-07-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* SDK to support isEnabled() checks ([#104](https://github.com/fahad19/featurevisor/issues/104)) ([4f52136](https://github.com/fahad19/featurevisor/commit/4f521367a3f1ef76833ba614b6a1f4b66abef2e1))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.37.0](https://github.com/fahad19/featurevisor/compare/v0.36.0...v0.37.0) (2023-07-14)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* renamed Attributes (object) to Context ([#101](https://github.com/fahad19/featurevisor/issues/101)) ([c392ad5](https://github.com/fahad19/featurevisor/commit/c392ad5f1b6100167aa5637b131f08036a7f5a55))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [0.36.0](https://github.com/fahad19/featurevisor/compare/v0.35.0...v0.36.0) (2023-07-13)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @featurevisor/react
|
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ function Root() {
|
|
|
45
45
|
|
|
46
46
|
### `activateFeature`
|
|
47
47
|
|
|
48
|
-
> activateFeature(
|
|
48
|
+
> activateFeature(featureKey, context = {}): VariationValue | undefined
|
|
49
49
|
|
|
50
50
|
Hook for activate feature.
|
|
51
51
|
|
|
@@ -78,13 +78,13 @@ function App() {
|
|
|
78
78
|
|
|
79
79
|
### `useVariation`
|
|
80
80
|
|
|
81
|
-
> useVariation(featureKey,
|
|
81
|
+
> useVariation(featureKey, context = {}): VariationValue | undefined
|
|
82
82
|
|
|
83
83
|
Hook for getting variation value.
|
|
84
84
|
|
|
85
85
|
### `useVariable`
|
|
86
86
|
|
|
87
|
-
> useVariable(featureKey, variableKey,
|
|
87
|
+
> useVariable(featureKey, variableKey, context = {}): VariableValue | undefined
|
|
88
88
|
|
|
89
89
|
Hook for getting variable value.
|
|
90
90
|
|
package/coverage/clover.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
2
|
+
<coverage generated="1689537230731" clover="3.2.0">
|
|
3
|
+
<project timestamp="1689537230731" name="All files">
|
|
4
4
|
<metrics statements="40" coveredstatements="34" conditionals="4" coveredconditionals="1" methods="9" coveredmethods="6" elements="53" coveredelements="41" complexity="0" loc="40" ncloc="40" packages="1" files="7" classes="7"/>
|
|
5
5
|
<file name="FeaturevisorContext.ts" path="/home/runner/work/featurevisor/featurevisor/packages/react/src/FeaturevisorContext.ts">
|
|
6
6
|
<metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{"/home/runner/work/featurevisor/featurevisor/packages/react/src/FeaturevisorContext.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/FeaturevisorContext.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"1":{"start":{"line":4,"column":13},"end":{"line":4,"column":100}}},"fnMap":{},"branchMap":{},"s":{"0":5,"1":5},"f":{},"b":{}}
|
|
2
2
|
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/FeaturevisorProvider.tsx": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/FeaturevisorProvider.tsx","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":60}},"2":{"start":{"line":12,"column":2},"end":{"line":14,"column":4}},"3":{"start":{"line":11,"column":0},"end":{"line":11,"column":16}}},"fnMap":{"0":{"name":"FeaturevisorProvider","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":36}},"loc":{"start":{"line":11,"column":69},"end":{"line":15,"column":1}}}},"branchMap":{},"s":{"0":5,"1":5,"2":5,"3":5},"f":{"0":5},"b":{}}
|
|
3
|
-
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/activateFeature.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/activateFeature.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"2":{"start":{"line":9,"column":14},"end":{"line":9,"column":22}},"3":{"start":{"line":11,"column":2},"end":{"line":11,"column":
|
|
3
|
+
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/activateFeature.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/activateFeature.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"2":{"start":{"line":9,"column":14},"end":{"line":9,"column":22}},"3":{"start":{"line":11,"column":2},"end":{"line":11,"column":43}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":16}}},"fnMap":{"0":{"name":"activateFeature","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"loc":{"start":{"line":7,"column":23},"end":{"line":12,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":7,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1},"b":{"0":[0]}}
|
|
4
4
|
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useSdk.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useSdk.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":60}},"2":{"start":{"line":7,"column":14},"end":{"line":7,"column":51}},"3":{"start":{"line":9,"column":2},"end":{"line":9,"column":37}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":16}}},"fnMap":{"0":{"name":"useSdk","decl":{"start":{"line":6,"column":16},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":22},"end":{"line":10,"column":1}}}},"branchMap":{},"s":{"0":5,"1":5,"2":5,"3":5,"4":5},"f":{"0":5},"b":{}}
|
|
5
5
|
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useStatus.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useStatus.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":31}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"2":{"start":{"line":10,"column":14},"end":{"line":10,"column":22}},"3":{"start":{"line":11,"column":24},"end":{"line":11,"column":37}},"4":{"start":{"line":13,"column":32},"end":{"line":13,"column":61}},"5":{"start":{"line":13,"column":16},"end":{"line":13,"column":18}},"6":{"start":{"line":13,"column":28},"end":{"line":13,"column":32}},"7":{"start":{"line":15,"column":2},"end":{"line":17,"column":null}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":23}},"9":{"start":{"line":19,"column":2},"end":{"line":29,"column":9}},"10":{"start":{"line":21,"column":6},"end":{"line":21,"column":23}},"11":{"start":{"line":24,"column":4},"end":{"line":24,"column":33}},"12":{"start":{"line":26,"column":4},"end":{"line":28,"column":6}},"13":{"start":{"line":27,"column":6},"end":{"line":27,"column":36}},"14":{"start":{"line":31,"column":2},"end":{"line":31,"column":21}},"15":{"start":{"line":9,"column":0},"end":{"line":9,"column":16}}},"fnMap":{"0":{"name":"useStatus","decl":{"start":{"line":9,"column":16},"end":{"line":9,"column":25}},"loc":{"start":{"line":9,"column":25},"end":{"line":32,"column":1}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":18},"end":{"line":19,"column":null}},"loc":{"start":{"line":19,"column":18},"end":{"line":29,"column":3}}},"2":{"name":"handleReady","decl":{"start":{"line":20,"column":13},"end":{"line":20,"column":24}},"loc":{"start":{"line":20,"column":24},"end":{"line":22,"column":5}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":26,"column":11},"end":{"line":26,"column":null}},"loc":{"start":{"line":26,"column":11},"end":{"line":28,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":2},"end":{"line":17,"column":null}},"type":"if","locations":[{"start":{"line":15,"column":2},"end":{"line":17,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":1},"f":{"0":1,"1":0,"2":0,"3":0},"b":{"0":[1]}}
|
|
6
|
-
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariable.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariable.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":8,"column":2},"end":{"line":8,"column":null}},"2":{"start":{"line":10,"column":14},"end":{"line":10,"column":22}},"3":{"start":{"line":12,"column":2},"end":{"line":12,"column":
|
|
7
|
-
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariation.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariation.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"2":{"start":{"line":9,"column":14},"end":{"line":9,"column":22}},"3":{"start":{"line":11,"column":2},"end":{"line":11,"column":
|
|
6
|
+
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariable.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariable.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":8,"column":2},"end":{"line":8,"column":null}},"2":{"start":{"line":10,"column":14},"end":{"line":10,"column":22}},"3":{"start":{"line":12,"column":2},"end":{"line":12,"column":59}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":16}}},"fnMap":{"0":{"name":"useVariable","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":27}},"loc":{"start":{"line":8,"column":23},"end":{"line":13,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":null}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":8,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1},"b":{"0":[0]}}
|
|
7
|
+
,"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariation.ts": {"path":"/home/runner/work/featurevisor/featurevisor/packages/react/src/useVariation.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":34}},"1":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"2":{"start":{"line":9,"column":14},"end":{"line":9,"column":22}},"3":{"start":{"line":11,"column":2},"end":{"line":11,"column":47}},"4":{"start":{"line":5,"column":0},"end":{"line":5,"column":16}}},"fnMap":{"0":{"name":"useVariation","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":28}},"loc":{"start":{"line":7,"column":23},"end":{"line":12,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":7,"column":null}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":7,"column":null}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1},"f":{"0":1},"b":{"0":[0]}}
|
|
8
8
|
}
|
|
@@ -82,7 +82,7 @@ export const FeaturevisorContext = React.createContext<FeaturevisorInstance |
|
|
|
82
82
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
83
83
|
Code coverage generated by
|
|
84
84
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
85
|
-
at 2023-07-
|
|
85
|
+
at 2023-07-16T19:53:50.701Z
|
|
86
86
|
</div>
|
|
87
87
|
<script src="prettify.js"></script>
|
|
88
88
|
<script>
|
|
@@ -115,7 +115,7 @@ export function FeaturevisorProvider(props: FeaturevisorProviderProps) {
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2023-07-
|
|
118
|
+
at 2023-07-16T19:53:50.701Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
88
88
|
<span class="cline-any cline-yes">1x</span>
|
|
89
89
|
<span class="cline-any cline-neutral"> </span>
|
|
90
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
90
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
91
91
|
|
|
92
92
|
import { useSdk } from "./useSdk";
|
|
93
93
|
|
|
94
94
|
export function activateFeature(
|
|
95
95
|
featureKey: FeatureKey,
|
|
96
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>
|
|
96
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>context: Context = {},
|
|
97
97
|
): VariationValue | undefined {
|
|
98
98
|
const sdk = useSdk();
|
|
99
99
|
|
|
100
|
-
return sdk.activate(featureKey,
|
|
100
|
+
return sdk.activate(featureKey, context);
|
|
101
101
|
}
|
|
102
102
|
</pre></td></tr></table></pre>
|
|
103
103
|
|
|
@@ -106,7 +106,7 @@ export function activateFeature(
|
|
|
106
106
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
107
107
|
Code coverage generated by
|
|
108
108
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
109
|
-
at 2023-07-
|
|
109
|
+
at 2023-07-16T19:53:50.701Z
|
|
110
110
|
</div>
|
|
111
111
|
<script src="prettify.js"></script>
|
|
112
112
|
<script>
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
192
|
Code coverage generated by
|
|
193
193
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2023-07-
|
|
194
|
+
at 2023-07-16T19:53:50.701Z
|
|
195
195
|
</div>
|
|
196
196
|
<script src="prettify.js"></script>
|
|
197
197
|
<script>
|
|
@@ -100,7 +100,7 @@ export function useSdk(): FeaturevisorInstance {
|
|
|
100
100
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
101
101
|
Code coverage generated by
|
|
102
102
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
103
|
-
at 2023-07-
|
|
103
|
+
at 2023-07-16T19:53:50.701Z
|
|
104
104
|
</div>
|
|
105
105
|
<script src="prettify.js"></script>
|
|
106
106
|
<script>
|
|
@@ -166,7 +166,7 @@ export function useStatus(): Status {
|
|
|
166
166
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
167
167
|
Code coverage generated by
|
|
168
168
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
169
|
-
at 2023-07-
|
|
169
|
+
at 2023-07-16T19:53:50.701Z
|
|
170
170
|
</div>
|
|
171
171
|
<script src="prettify.js"></script>
|
|
172
172
|
<script>
|
|
@@ -89,18 +89,18 @@
|
|
|
89
89
|
<span class="cline-any cline-neutral"> </span>
|
|
90
90
|
<span class="cline-any cline-yes">1x</span>
|
|
91
91
|
<span class="cline-any cline-neutral"> </span>
|
|
92
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
92
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Context, FeatureKey, VariableKey, VariableValue } from "@featurevisor/types";
|
|
93
93
|
|
|
94
94
|
import { useSdk } from "./useSdk";
|
|
95
95
|
|
|
96
96
|
export function useVariable(
|
|
97
97
|
featureKey: FeatureKey,
|
|
98
98
|
variableKey: VariableKey,
|
|
99
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>
|
|
99
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>context: Context = {},
|
|
100
100
|
): VariableValue | undefined {
|
|
101
101
|
const sdk = useSdk();
|
|
102
102
|
|
|
103
|
-
return sdk.getVariable(featureKey, variableKey,
|
|
103
|
+
return sdk.getVariable(featureKey, variableKey, context);
|
|
104
104
|
}
|
|
105
105
|
</pre></td></tr></table></pre>
|
|
106
106
|
|
|
@@ -109,7 +109,7 @@ export function useVariable(
|
|
|
109
109
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
110
110
|
Code coverage generated by
|
|
111
111
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
112
|
-
at 2023-07-
|
|
112
|
+
at 2023-07-16T19:53:50.701Z
|
|
113
113
|
</div>
|
|
114
114
|
<script src="prettify.js"></script>
|
|
115
115
|
<script>
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
<span class="cline-any cline-neutral"> </span>
|
|
88
88
|
<span class="cline-any cline-yes">1x</span>
|
|
89
89
|
<span class="cline-any cline-neutral"> </span>
|
|
90
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
90
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
91
91
|
|
|
92
92
|
import { useSdk } from "./useSdk";
|
|
93
93
|
|
|
94
94
|
export function useVariation(
|
|
95
95
|
featureKey: FeatureKey,
|
|
96
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>
|
|
96
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>context: Context = {},
|
|
97
97
|
): VariationValue | undefined {
|
|
98
98
|
const sdk = useSdk();
|
|
99
99
|
|
|
100
|
-
return sdk.getVariation(featureKey,
|
|
100
|
+
return sdk.getVariation(featureKey, context);
|
|
101
101
|
}
|
|
102
102
|
</pre></td></tr></table></pre>
|
|
103
103
|
|
|
@@ -106,7 +106,7 @@ export function useVariation(
|
|
|
106
106
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
107
107
|
Code coverage generated by
|
|
108
108
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
109
|
-
at 2023-07-
|
|
109
|
+
at 2023-07-16T19:53:50.701Z
|
|
110
110
|
</div>
|
|
111
111
|
<script src="prettify.js"></script>
|
|
112
112
|
<script>
|
package/dist/index.js.gz
CHANGED
|
Binary file
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,UACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,SAAUJ,GACQ,iBAAZC,QACdA,QAA2B,kBAAID,EAAQG,QAAQ,UAE/CJ,EAAwB,kBAAIC,EAAQD,EAAY,MACjD,CATD,CASGO,MAAOC,G,qHCTV,aAGa,EAAAC,oBAAsBC,EAAMC,mBAAgDC,E,+FCHzF,aAGA,QAOA,gCAAqCC,GACnC,OACE,gBAAC,EAAAJ,oBAAoBK,SAAQ,CAACC,MAAOF,EAAMG,KAAMH,EAAMI,SAE3D,C,0FCZA,aAEA,2BACEC,EACAC,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDC,SAASH,EAAYC,EAClC,C,0fCVA,WAGA,YAGA,YACA,YACA,UACA,WACA,W,iFCXA,aAGA,QAEA,oBAGE,OAFYT,EAAMY,WAAW,EAAAb,oBAG/B,C,kFCTA,aAEA,SAMA,uBACE,IAAMO,GAAM,IAAAI,UACNG,EAAgBP,EAAIQ,UAEpB,EAAwBd,EAAMe,SAASF,GAAtCC,EAAO,KAAEE,EAAU,KAE1B,OAAIF,GAIJd,EAAMiB,WAAU,WACd,SAASC,IACPF,GAAW,EACb,CAIA,OAFAV,EAAIa,GAAG,QAASD,GAET,WACLZ,EAAIc,IAAI,QAASF,EACnB,CACF,GAAG,IAbM,CAAEJ,QAAO,EAgBpB,C,qFC7BA,aAEA,uBACEN,EACAa,EACAZ,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDY,YAAYd,EAAYa,EAAaZ,EAClD,C,uFCVA,aAEA,wBACED,EACAC,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDa,aAAaf,EAAYC,EACtC,C,UCXAhB,EAAOD,QAAUM,C,GCCb0B,EAA2B,CAAC,E,OAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxB,IAAjByB,EACH,OAAOA,EAAanC,QAGrB,IAAIC,EAAS+B,EAAyBE,GAAY,CAGjDlC,QAAS,CAAC,GAOX,OAHAoC,EAAoBF,GAAUG,KAAKpC,EAAOD,QAASC,EAAQA,EAAOD,QAASiC,GAGpEhC,EAAOD,OACf,CCnB0BiC,CAAoB,G","sources":["webpack://FeaturevisorReact/webpack/universalModuleDefinition","webpack://FeaturevisorReact/./src/FeaturevisorContext.ts","webpack://FeaturevisorReact/./src/FeaturevisorProvider.tsx","webpack://FeaturevisorReact/./src/activateFeature.ts","webpack://FeaturevisorReact/./src/index.ts","webpack://FeaturevisorReact/./src/useSdk.ts","webpack://FeaturevisorReact/./src/useStatus.ts","webpack://FeaturevisorReact/./src/useVariable.ts","webpack://FeaturevisorReact/./src/useVariation.ts","webpack://FeaturevisorReact/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://FeaturevisorReact/webpack/bootstrap","webpack://FeaturevisorReact/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FeaturevisorReact\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"FeaturevisorReact\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__359__) => {\nreturn ","import * as React from \"react\";\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nexport const FeaturevisorContext = React.createContext<FeaturevisorInstance | undefined>(undefined);\n","import * as React from \"react\";\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nimport { FeaturevisorContext } from \"./FeaturevisorContext\";\n\nexport interface FeaturevisorProviderProps {\n sdk: FeaturevisorInstance;\n children: React.ReactNode;\n}\n\nexport function FeaturevisorProvider(props: FeaturevisorProviderProps) {\n return (\n <FeaturevisorContext.Provider value={props.sdk}>{props.children}</FeaturevisorContext.Provider>\n );\n}\n","import {
|
|
1
|
+
{"version":3,"file":"index.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,UACR,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,SAAUJ,GACQ,iBAAZC,QACdA,QAA2B,kBAAID,EAAQG,QAAQ,UAE/CJ,EAAwB,kBAAIC,EAAQD,EAAY,MACjD,CATD,CASGO,MAAOC,G,qHCTV,aAGa,EAAAC,oBAAsBC,EAAMC,mBAAgDC,E,+FCHzF,aAGA,QAOA,gCAAqCC,GACnC,OACE,gBAAC,EAAAJ,oBAAoBK,SAAQ,CAACC,MAAOF,EAAMG,KAAMH,EAAMI,SAE3D,C,0FCZA,aAEA,2BACEC,EACAC,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDC,SAASH,EAAYC,EAClC,C,0fCVA,WAGA,YAGA,YACA,YACA,UACA,WACA,W,iFCXA,aAGA,QAEA,oBAGE,OAFYT,EAAMY,WAAW,EAAAb,oBAG/B,C,kFCTA,aAEA,SAMA,uBACE,IAAMO,GAAM,IAAAI,UACNG,EAAgBP,EAAIQ,UAEpB,EAAwBd,EAAMe,SAASF,GAAtCC,EAAO,KAAEE,EAAU,KAE1B,OAAIF,GAIJd,EAAMiB,WAAU,WACd,SAASC,IACPF,GAAW,EACb,CAIA,OAFAV,EAAIa,GAAG,QAASD,GAET,WACLZ,EAAIc,IAAI,QAASF,EACnB,CACF,GAAG,IAbM,CAAEJ,QAAO,EAgBpB,C,qFC7BA,aAEA,uBACEN,EACAa,EACAZ,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDY,YAAYd,EAAYa,EAAaZ,EAClD,C,uFCVA,aAEA,wBACED,EACAC,GAIA,YAJA,IAAAA,IAAAA,EAAA,KAEY,IAAAC,UAEDa,aAAaf,EAAYC,EACtC,C,UCXAhB,EAAOD,QAAUM,C,GCCb0B,EAA2B,CAAC,E,OAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxB,IAAjByB,EACH,OAAOA,EAAanC,QAGrB,IAAIC,EAAS+B,EAAyBE,GAAY,CAGjDlC,QAAS,CAAC,GAOX,OAHAoC,EAAoBF,GAAUG,KAAKpC,EAAOD,QAASC,EAAQA,EAAOD,QAASiC,GAGpEhC,EAAOD,OACf,CCnB0BiC,CAAoB,G","sources":["webpack://FeaturevisorReact/webpack/universalModuleDefinition","webpack://FeaturevisorReact/./src/FeaturevisorContext.ts","webpack://FeaturevisorReact/./src/FeaturevisorProvider.tsx","webpack://FeaturevisorReact/./src/activateFeature.ts","webpack://FeaturevisorReact/./src/index.ts","webpack://FeaturevisorReact/./src/useSdk.ts","webpack://FeaturevisorReact/./src/useStatus.ts","webpack://FeaturevisorReact/./src/useVariable.ts","webpack://FeaturevisorReact/./src/useVariation.ts","webpack://FeaturevisorReact/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://FeaturevisorReact/webpack/bootstrap","webpack://FeaturevisorReact/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FeaturevisorReact\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"FeaturevisorReact\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__359__) => {\nreturn ","import * as React from \"react\";\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nexport const FeaturevisorContext = React.createContext<FeaturevisorInstance | undefined>(undefined);\n","import * as React from \"react\";\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nimport { FeaturevisorContext } from \"./FeaturevisorContext\";\n\nexport interface FeaturevisorProviderProps {\n sdk: FeaturevisorInstance;\n children: React.ReactNode;\n}\n\nexport function FeaturevisorProvider(props: FeaturevisorProviderProps) {\n return (\n <FeaturevisorContext.Provider value={props.sdk}>{props.children}</FeaturevisorContext.Provider>\n );\n}\n","import { Context, FeatureKey, VariationValue } from \"@featurevisor/types\";\n\nimport { useSdk } from \"./useSdk\";\n\nexport function activateFeature(\n featureKey: FeatureKey,\n context: Context = {},\n): VariationValue | undefined {\n const sdk = useSdk();\n\n return sdk.activate(featureKey, context);\n}\n","// contexts\nexport * from \"./FeaturevisorContext\";\n\n// components\nexport * from \"./FeaturevisorProvider\";\n\n// hooks\nexport * from \"./activateFeature\";\nexport * from \"./useSdk\";\nexport * from \"./useStatus\";\nexport * from \"./useVariable\";\nexport * from \"./useVariation\";\n","import * as React from \"react\";\nimport { FeaturevisorInstance } from \"@featurevisor/sdk\";\n\nimport { FeaturevisorContext } from \"./FeaturevisorContext\";\n\nexport function useSdk(): FeaturevisorInstance {\n const sdk = React.useContext(FeaturevisorContext);\n\n return sdk as FeaturevisorInstance;\n}\n","import * as React from \"react\";\n\nimport { useSdk } from \"./useSdk\";\n\nexport interface Status {\n isReady: boolean;\n}\n\nexport function useStatus(): Status {\n const sdk = useSdk();\n const initialStatus = sdk.isReady();\n\n const [isReady, setIsReady] = React.useState(initialStatus);\n\n if (isReady) {\n return { isReady };\n }\n\n React.useEffect(function () {\n function handleReady() {\n setIsReady(true);\n }\n\n sdk.on(\"ready\", handleReady);\n\n return function () {\n sdk.off(\"ready\", handleReady);\n };\n }, []);\n\n return { isReady };\n}\n","import { Context, FeatureKey, VariableKey, VariableValue } from \"@featurevisor/types\";\n\nimport { useSdk } from \"./useSdk\";\n\nexport function useVariable(\n featureKey: FeatureKey,\n variableKey: VariableKey,\n context: Context = {},\n): VariableValue | undefined {\n const sdk = useSdk();\n\n return sdk.getVariable(featureKey, variableKey, context);\n}\n","import { Context, FeatureKey, VariationValue } from \"@featurevisor/types\";\n\nimport { useSdk } from \"./useSdk\";\n\nexport function useVariation(\n featureKey: FeatureKey,\n context: Context = {},\n): VariationValue | undefined {\n const sdk = useSdk();\n\n return sdk.getVariation(featureKey, context);\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__359__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(97);\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__359__","FeaturevisorContext","React","createContext","undefined","props","Provider","value","sdk","children","featureKey","context","useSdk","activate","useContext","initialStatus","isReady","useState","setIsReady","useEffect","handleReady","on","off","variableKey","getVariable","getVariation","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call"],"sourceRoot":""}
|
package/lib/activateFeature.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function activateFeature(featureKey: FeatureKey,
|
|
1
|
+
import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
2
|
+
export declare function activateFeature(featureKey: FeatureKey, context?: Context): VariationValue | undefined;
|
package/lib/activateFeature.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useSdk } from "./useSdk";
|
|
2
|
-
export function activateFeature(featureKey,
|
|
3
|
-
if (
|
|
2
|
+
export function activateFeature(featureKey, context) {
|
|
3
|
+
if (context === void 0) { context = {}; }
|
|
4
4
|
var sdk = useSdk();
|
|
5
|
-
return sdk.activate(featureKey,
|
|
5
|
+
return sdk.activate(featureKey, context);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=activateFeature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activateFeature.js","sourceRoot":"","sources":["../src/activateFeature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"activateFeature.js","sourceRoot":"","sources":["../src/activateFeature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,OAAqB;IAArB,wBAAA,EAAA,YAAqB;IAErB,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
|
package/lib/useVariable.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function useVariable(featureKey: FeatureKey, variableKey: VariableKey,
|
|
1
|
+
import { Context, FeatureKey, VariableKey, VariableValue } from "@featurevisor/types";
|
|
2
|
+
export declare function useVariable(featureKey: FeatureKey, variableKey: VariableKey, context?: Context): VariableValue | undefined;
|
package/lib/useVariable.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useSdk } from "./useSdk";
|
|
2
|
-
export function useVariable(featureKey, variableKey,
|
|
3
|
-
if (
|
|
2
|
+
export function useVariable(featureKey, variableKey, context) {
|
|
3
|
+
if (context === void 0) { context = {}; }
|
|
4
4
|
var sdk = useSdk();
|
|
5
|
-
return sdk.getVariable(featureKey, variableKey,
|
|
5
|
+
return sdk.getVariable(featureKey, variableKey, context);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=useVariable.js.map
|
package/lib/useVariable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVariable.js","sourceRoot":"","sources":["../src/useVariable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,WAAW,CACzB,UAAsB,EACtB,WAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"useVariable.js","sourceRoot":"","sources":["../src/useVariable.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,WAAW,CACzB,UAAsB,EACtB,WAAwB,EACxB,OAAqB;IAArB,wBAAA,EAAA,YAAqB;IAErB,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,OAAO,GAAG,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC"}
|
package/lib/useVariation.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function useVariation(featureKey: FeatureKey,
|
|
1
|
+
import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
2
|
+
export declare function useVariation(featureKey: FeatureKey, context?: Context): VariationValue | undefined;
|
package/lib/useVariation.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useSdk } from "./useSdk";
|
|
2
|
-
export function useVariation(featureKey,
|
|
3
|
-
if (
|
|
2
|
+
export function useVariation(featureKey, context) {
|
|
3
|
+
if (context === void 0) { context = {}; }
|
|
4
4
|
var sdk = useSdk();
|
|
5
|
-
return sdk.getVariation(featureKey,
|
|
5
|
+
return sdk.getVariation(featureKey, context);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=useVariation.js.map
|
package/lib/useVariation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVariation.js","sourceRoot":"","sources":["../src/useVariation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,YAAY,CAC1B,UAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"useVariation.js","sourceRoot":"","sources":["../src/useVariation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,UAAU,YAAY,CAC1B,UAAsB,EACtB,OAAqB;IAArB,wBAAA,EAAA,YAAqB;IAErB,IAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,OAAO,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@featurevisor/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "React package for Featurevisor",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"url": "https://github.com/fahad19/featurevisor/issues"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@featurevisor/sdk": "^0.
|
|
46
|
-
"@featurevisor/types": "^0.
|
|
45
|
+
"@featurevisor/sdk": "^0.38.0",
|
|
46
|
+
"@featurevisor/types": "^0.38.0"
|
|
47
47
|
},
|
|
48
48
|
"license": "MIT",
|
|
49
49
|
"devDependencies": {
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"@testing-library/react": "^14.0.0",
|
|
52
52
|
"jest-environment-jsdom": "^29.5.0"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "79edc620e398ae8250bd9870e6fbf8e3402e6010"
|
|
55
55
|
}
|
|
@@ -14,17 +14,16 @@ function getNewInstance() {
|
|
|
14
14
|
features: [
|
|
15
15
|
{
|
|
16
16
|
key: "test",
|
|
17
|
-
defaultVariation: false,
|
|
18
17
|
bucketBy: "userId",
|
|
19
|
-
variations: [{ value:
|
|
18
|
+
variations: [{ value: "control" }, { value: "treatment" }],
|
|
20
19
|
traffic: [
|
|
21
20
|
{
|
|
22
21
|
key: "1",
|
|
23
22
|
segments: "*",
|
|
24
23
|
percentage: 100000,
|
|
25
24
|
allocation: [
|
|
26
|
-
{ variation:
|
|
27
|
-
{ variation:
|
|
25
|
+
{ variation: "control", range: [0, 100000] },
|
|
26
|
+
{ variation: "treatment", range: [0, 0] },
|
|
28
27
|
],
|
|
29
28
|
},
|
|
30
29
|
],
|
|
@@ -47,7 +46,7 @@ describe("react: activateFeature", function () {
|
|
|
47
46
|
function TestComponent() {
|
|
48
47
|
const variation = activateFeature("test", { userId: "1" });
|
|
49
48
|
|
|
50
|
-
return variation ===
|
|
49
|
+
return variation === "control" ? <p>True</p> : <p>False</p>;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
render(
|
package/src/activateFeature.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
2
2
|
|
|
3
3
|
import { useSdk } from "./useSdk";
|
|
4
4
|
|
|
5
5
|
export function activateFeature(
|
|
6
6
|
featureKey: FeatureKey,
|
|
7
|
-
|
|
7
|
+
context: Context = {},
|
|
8
8
|
): VariationValue | undefined {
|
|
9
9
|
const sdk = useSdk();
|
|
10
10
|
|
|
11
|
-
return sdk.activate(featureKey,
|
|
11
|
+
return sdk.activate(featureKey, context);
|
|
12
12
|
}
|
package/src/useSdk.spec.tsx
CHANGED
|
@@ -14,17 +14,16 @@ function getNewInstance() {
|
|
|
14
14
|
features: [
|
|
15
15
|
{
|
|
16
16
|
key: "test",
|
|
17
|
-
defaultVariation: false,
|
|
18
17
|
bucketBy: "userId",
|
|
19
|
-
variations: [{ value:
|
|
18
|
+
variations: [{ value: "control" }, { value: "treatment" }],
|
|
20
19
|
traffic: [
|
|
21
20
|
{
|
|
22
21
|
key: "1",
|
|
23
22
|
segments: "*",
|
|
24
23
|
percentage: 100000,
|
|
25
24
|
allocation: [
|
|
26
|
-
{ variation:
|
|
27
|
-
{ variation:
|
|
25
|
+
{ variation: "control", range: [0, 100000] },
|
|
26
|
+
{ variation: "treatment", range: [0, 0] },
|
|
28
27
|
],
|
|
29
28
|
},
|
|
30
29
|
],
|
package/src/useStatus.spec.tsx
CHANGED
|
@@ -14,17 +14,16 @@ function getNewInstance() {
|
|
|
14
14
|
features: [
|
|
15
15
|
{
|
|
16
16
|
key: "test",
|
|
17
|
-
defaultVariation: false,
|
|
18
17
|
bucketBy: "userId",
|
|
19
|
-
variations: [{ value:
|
|
18
|
+
variations: [{ value: "control" }, { value: "treatment" }],
|
|
20
19
|
traffic: [
|
|
21
20
|
{
|
|
22
21
|
key: "1",
|
|
23
22
|
segments: "*",
|
|
24
23
|
percentage: 100000,
|
|
25
24
|
allocation: [
|
|
26
|
-
{ variation:
|
|
27
|
-
{ variation:
|
|
25
|
+
{ variation: "control", range: [0, 100000] },
|
|
26
|
+
{ variation: "treatment", range: [0, 0] },
|
|
28
27
|
],
|
|
29
28
|
},
|
|
30
29
|
],
|
package/src/useVariable.spec.tsx
CHANGED
package/src/useVariable.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, FeatureKey, VariableKey, VariableValue } from "@featurevisor/types";
|
|
2
2
|
|
|
3
3
|
import { useSdk } from "./useSdk";
|
|
4
4
|
|
|
5
5
|
export function useVariable(
|
|
6
6
|
featureKey: FeatureKey,
|
|
7
7
|
variableKey: VariableKey,
|
|
8
|
-
|
|
8
|
+
context: Context = {},
|
|
9
9
|
): VariableValue | undefined {
|
|
10
10
|
const sdk = useSdk();
|
|
11
11
|
|
|
12
|
-
return sdk.getVariable(featureKey, variableKey,
|
|
12
|
+
return sdk.getVariable(featureKey, variableKey, context);
|
|
13
13
|
}
|
|
@@ -14,17 +14,16 @@ function getNewInstance() {
|
|
|
14
14
|
features: [
|
|
15
15
|
{
|
|
16
16
|
key: "test",
|
|
17
|
-
defaultVariation: false,
|
|
18
17
|
bucketBy: "userId",
|
|
19
|
-
variations: [{ value:
|
|
18
|
+
variations: [{ value: "control" }, { value: "treatment" }],
|
|
20
19
|
traffic: [
|
|
21
20
|
{
|
|
22
21
|
key: "1",
|
|
23
22
|
segments: "*",
|
|
24
23
|
percentage: 100000,
|
|
25
24
|
allocation: [
|
|
26
|
-
{ variation:
|
|
27
|
-
{ variation:
|
|
25
|
+
{ variation: "control", range: [0, 100000] },
|
|
26
|
+
{ variation: "treatment", range: [0, 0] },
|
|
28
27
|
],
|
|
29
28
|
},
|
|
30
29
|
],
|
|
@@ -47,7 +46,7 @@ describe("react: useVariation", function () {
|
|
|
47
46
|
function TestComponent() {
|
|
48
47
|
const variation = useVariation("test", { userId: "1" });
|
|
49
48
|
|
|
50
|
-
return variation ===
|
|
49
|
+
return variation === "control" ? <p>True</p> : <p>False</p>;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
render(
|
package/src/useVariation.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, FeatureKey, VariationValue } from "@featurevisor/types";
|
|
2
2
|
|
|
3
3
|
import { useSdk } from "./useSdk";
|
|
4
4
|
|
|
5
5
|
export function useVariation(
|
|
6
6
|
featureKey: FeatureKey,
|
|
7
|
-
|
|
7
|
+
context: Context = {},
|
|
8
8
|
): VariationValue | undefined {
|
|
9
9
|
const sdk = useSdk();
|
|
10
10
|
|
|
11
|
-
return sdk.getVariation(featureKey,
|
|
11
|
+
return sdk.getVariation(featureKey, context);
|
|
12
12
|
}
|