expf-sigma-node.js 0.1.5 → 0.1.6

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/sigma.js +18 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expf-sigma-node.js",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "expf-sigma-node.js lets you manage features flags and remote config across web, server side applications. Deliver true Continuous Integration. Get builds out faster. Control who has access to new features.",
5
5
  "main": "public/sigma.js",
6
6
  "keywords": [
package/public/sigma.js CHANGED
@@ -6095,10 +6095,28 @@ var Sigma = class {
6095
6095
  break;
6096
6096
  }
6097
6097
  }
6098
+ if (!flag) {
6099
+ let expName = this.getExperimentByFeatureFlag(cacheKey, flagName);
6100
+ if (!expName)
6101
+ return flag;
6102
+ return await this.getExperiment(expName).then((res) => res.getFeatureValue(flagName));
6103
+ }
6098
6104
  if (!flag)
6099
6105
  return null;
6100
6106
  return this.findingSpotCondition(flag, this.sigmaUserData);
6101
6107
  }
6108
+ getExperimentByFeatureFlag(cache, flagName) {
6109
+ for (let i = 0; i < cache.experiments.length; i++) {
6110
+ if (cache.experiments[i].feature_flags.length) {
6111
+ for (let j in cache.experiments[i].feature_flags) {
6112
+ if (cache.experiments[i].feature_flags[j].name === flagName) {
6113
+ return cache.experiments[i].name;
6114
+ }
6115
+ }
6116
+ }
6117
+ }
6118
+ return null;
6119
+ }
6102
6120
  getFlag(key) {
6103
6121
  if (!key) {
6104
6122
  return false;