feature-toggle-client 2.1.0 → 2.1.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/README.md +31 -0
- package/dist/FeatureToggleInstanceFactory.js +24 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -34,6 +34,27 @@ const init = () => {
|
|
|
34
34
|
name: 'Application name',
|
|
35
35
|
}, 'YOUR-LAUNCH-DARKLY-KEY')
|
|
36
36
|
|
|
37
|
+
// Initialize multi-context (user + application + contract)
|
|
38
|
+
FeatureToggleClientService
|
|
39
|
+
.getInstance()
|
|
40
|
+
.initializeWithContext(
|
|
41
|
+
'YOUR-LAUNCH-DARKLY-KEY',
|
|
42
|
+
{
|
|
43
|
+
user: {
|
|
44
|
+
fullName: 'My incredible name',
|
|
45
|
+
email: 'user@email.com',
|
|
46
|
+
},
|
|
47
|
+
application: {
|
|
48
|
+
shortName: 'applicationShortName',
|
|
49
|
+
name: 'Application name',
|
|
50
|
+
},
|
|
51
|
+
contract: {
|
|
52
|
+
tenantId: 'tenant-id',
|
|
53
|
+
cluster: 'cluster-name',
|
|
54
|
+
},
|
|
55
|
+
}
|
|
56
|
+
)
|
|
57
|
+
|
|
37
58
|
// Initialize api service
|
|
38
59
|
FeatureToggleClientService
|
|
39
60
|
.initializeApiService({
|
|
@@ -75,6 +96,16 @@ export class MyFeaturesDecisions {
|
|
|
75
96
|
.getInstance()
|
|
76
97
|
.isFeatureEnabled(myFeatureFlagKey)
|
|
77
98
|
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Checking for multi-context (user + application + contract)
|
|
102
|
+
* Note: isFeatureEnabled() automatically prefers multi-context when initialized
|
|
103
|
+
**/
|
|
104
|
+
public static someFeatureMultiContextEnabled(): Promise<any> {
|
|
105
|
+
return FeatureToggleClientService
|
|
106
|
+
.getInstance()
|
|
107
|
+
.isMultiContextFeatureEnabled(myFeatureFlagKey)
|
|
108
|
+
}
|
|
78
109
|
}
|
|
79
110
|
```
|
|
80
111
|
|
|
@@ -60,6 +60,27 @@ var getContractData = function (contract) {
|
|
|
60
60
|
}
|
|
61
61
|
return context;
|
|
62
62
|
};
|
|
63
|
+
var lowerCaseObject = function (obj) {
|
|
64
|
+
var result = {};
|
|
65
|
+
Object.keys(obj).forEach(function (key) {
|
|
66
|
+
var value = obj[key];
|
|
67
|
+
result[key.toLowerCase()] = typeof value === 'string' ? value.toLowerCase() : value;
|
|
68
|
+
});
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
var toLowerCaseContext = function (context) {
|
|
72
|
+
var result = { kind: context.kind };
|
|
73
|
+
if (context.user) {
|
|
74
|
+
result.user = lowerCaseObject(context.user);
|
|
75
|
+
}
|
|
76
|
+
if (context.bot) {
|
|
77
|
+
result.bot = lowerCaseObject(context.bot);
|
|
78
|
+
}
|
|
79
|
+
if (context.contract) {
|
|
80
|
+
result.contract = lowerCaseObject(context.contract);
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
};
|
|
63
84
|
var getContext = function (user, application, contract) {
|
|
64
85
|
var contexts = {};
|
|
65
86
|
if (user) {
|
|
@@ -76,10 +97,10 @@ var getContext = function (user, application, contract) {
|
|
|
76
97
|
}
|
|
77
98
|
if (Object.keys(contexts).length === 1) {
|
|
78
99
|
var singleContext = Object.values(contexts)[0];
|
|
79
|
-
return singleContext;
|
|
100
|
+
return lowerCaseObject(singleContext);
|
|
80
101
|
}
|
|
81
102
|
var multiContext = __assign({ kind: 'multi' }, contexts);
|
|
82
|
-
return multiContext;
|
|
103
|
+
return toLowerCaseContext(multiContext);
|
|
83
104
|
};
|
|
84
105
|
var FeatureToggleInstanceFactory = (function () {
|
|
85
106
|
function FeatureToggleInstanceFactory(ldclientSdkKey, context, options) {
|
|
@@ -109,4 +130,4 @@ var FeatureToggleInstanceFactory = (function () {
|
|
|
109
130
|
return FeatureToggleInstanceFactory;
|
|
110
131
|
}());
|
|
111
132
|
exports.FeatureToggleInstanceFactory = FeatureToggleInstanceFactory;
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmVhdHVyZVRvZ2dsZUluc3RhbmNlRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GZWF0dXJlVG9nZ2xlSW5zdGFuY2VGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXdGO0FBSXhGLDJCQUE2QjtBQUU3QixJQUFNLGtCQUFrQixHQUFHLFVBQUMsQ0FBTTtJQUNoQyxJQUFNLE9BQU8sR0FBRztRQUNkLElBQUksRUFBRSxLQUFLO1FBQ1gsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTTtRQUMxQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxNQUFNO1FBQ3RCLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFHLENBQUMsQ0FBQyxTQUFTLGdCQUFhLENBQUMsQ0FBQyxDQUFDLGVBQWU7S0FDbkUsQ0FBQztJQUVELElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtRQUNoQixPQUFlLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQyxPQUFlLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDcEMsT0FBZSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0tBQ2xFO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBTUYsSUFBTSxXQUFXLEdBQUcsVUFBQyxDQUFNO0lBQ3pCLElBQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxTQUFTO1FBQ3pCLENBQUMsWUFDQyxJQUFJLEVBQUUsTUFBTSxFQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQ2QsU0FBUyxFQUFFLElBQUksSUFDWixDQUFDLEVBRU4sQ0FBQyxD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
|