Skip to content

Instantly share code, notes, and snippets.

@SimenB
Created February 17, 2023 11:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SimenB/6608476192348cc2676dd75e6d76cdf8 to your computer and use it in GitHub Desktop.
Save SimenB/6608476192348cc2676dd75e6d76cdf8 to your computer and use it in GitHub Desktop.
diff --git i/lib/client.js w/lib/client.js
index 6e23515..dfa8a8b 100644
--- i/lib/client.js
+++ w/lib/client.js
@@ -1,69 +1,15 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-var __values = (this && this.__values) || function(o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-};
Object.defineProperty(exports, "__esModule", { value: true });
-var events_1 = require("events");
-var variant_1 = require("./variant");
-var events_2 = require("./events");
-var UnleashClient = /** @class */ (function (_super) {
- __extends(UnleashClient, _super);
- function UnleashClient(repository, strategies) {
- var _this = _super.call(this) || this;
- _this.repository = repository;
- _this.strategies = strategies || [];
- _this.warned = {};
- _this.strategies.forEach(function (strategy) {
+const events_1 = require("events");
+const variant_1 = require("./variant");
+const events_2 = require("./events");
+class UnleashClient extends events_1.EventEmitter {
+ constructor(repository, strategies) {
+ super();
+ this.repository = repository;
+ this.strategies = strategies || [];
+ this.warned = {};
+ this.strategies.forEach((strategy) => {
if (!strategy ||
!strategy.name ||
typeof strategy.name !== 'string' ||
@@ -72,35 +18,30 @@ var UnleashClient = /** @class */ (function (_super) {
throw new Error('Invalid strategy data / interface');
}
});
- return _this;
}
- UnleashClient.prototype.getStrategy = function (name) {
- return this.strategies.find(function (strategy) { return strategy.name === name; });
- };
- UnleashClient.prototype.warnOnce = function (missingStrategy, name, strategies) {
+ getStrategy(name) {
+ return this.strategies.find((strategy) => strategy.name === name);
+ }
+ warnOnce(missingStrategy, name, strategies) {
if (!this.warned[missingStrategy + name]) {
this.warned[missingStrategy + name] = true;
- this.emit(events_2.UnleashEvents.Warn, "Missing strategy \"".concat(missingStrategy, "\" for toggle \"").concat(name, "\". Ensure that \"").concat(strategies
- .map(function (_a) {
- var n = _a.name;
- return n;
- })
- .join(', '), "\" are supported before using this toggle"));
+ this.emit(events_2.UnleashEvents.Warn, `Missing strategy "${missingStrategy}" for toggle "${name}". Ensure that "${strategies
+ .map(({ name: n }) => n)
+ .join(', ')}" are supported before using this toggle`);
}
- };
- UnleashClient.prototype.isEnabled = function (name, context, fallback) {
- var feature = this.repository.getToggle(name);
- var enabled = this.isFeatureEnabled(feature, context, fallback);
+ }
+ isEnabled(name, context, fallback) {
+ const feature = this.repository.getToggle(name);
+ const enabled = this.isFeatureEnabled(feature, context, fallback);
this.emit(events_2.UnleashEvents.Impression, (0, events_2.createImpressionEvent)({
featureName: name,
- context: context,
- enabled: enabled,
+ context,
+ enabled,
eventType: 'isEnabled'
}));
return enabled;
- };
- UnleashClient.prototype.isFeatureEnabled = function (feature, context, fallback) {
- var _this = this;
+ }
+ isFeatureEnabled(feature, context, fallback) {
if (!feature) {
return fallback();
}
@@ -108,7 +49,7 @@ var UnleashClient = /** @class */ (function (_super) {
return false;
}
if (!Array.isArray(feature.strategies)) {
- var msg = "Malformed feature, strategies not an array, is a ".concat(typeof feature.strategies);
+ const msg = `Malformed feature, strategies not an array, is a ${typeof feature.strategies}`;
this.emit(events_2.UnleashEvents.Error, new Error(msg));
return false;
}
@@ -116,138 +57,75 @@ var UnleashClient = /** @class */ (function (_super) {
return feature.enabled;
}
return (feature.strategies.length > 0 &&
- feature.strategies.some(function (strategySelector) {
- var strategy = _this.getStrategy(strategySelector.name);
+ feature.strategies.some((strategySelector) => {
+ const strategy = this.getStrategy(strategySelector.name);
if (!strategy) {
- _this.warnOnce(strategySelector.name, feature.name, feature.strategies);
+ this.warnOnce(strategySelector.name, feature.name, feature.strategies);
return false;
}
- var constraints = _this.yieldConstraintsFor(strategySelector);
+ const constraints = this.yieldConstraintsFor(strategySelector);
return strategy.isEnabledWithConstraints(strategySelector.parameters, context, constraints);
}));
- };
- UnleashClient.prototype.yieldConstraintsFor = function (strategy) {
- var segments;
- var _this = this;
+ }
+ *yieldConstraintsFor(strategy) {
var _a;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- if (!strategy.constraints) return [3 /*break*/, 2];
- return [5 /*yield**/, __values(strategy.constraints)];
- case 1:
- _b.sent();
- _b.label = 2;
- case 2:
- segments = (_a = strategy.segments) === null || _a === void 0 ? void 0 : _a.map(function (segmentId) { return _this.repository.getSegment(segmentId); });
- if (!segments) {
- return [2 /*return*/];
- }
- return [5 /*yield**/, __values(this.yieldSegmentConstraints(segments))];
- case 3:
- _b.sent();
- return [2 /*return*/];
+ if (strategy.constraints) {
+ yield* strategy.constraints;
+ }
+ const segments = (_a = strategy.segments) === null || _a === void 0 ? void 0 : _a.map((segmentId) => this.repository.getSegment(segmentId));
+ if (!segments) {
+ return;
+ }
+ yield* this.yieldSegmentConstraints(segments);
+ }
+ *yieldSegmentConstraints(segments) {
+ // eslint-disable-next-line no-restricted-syntax
+ for (const segment of segments) {
+ if (segment) {
+ // eslint-disable-next-line no-restricted-syntax
+ for (const constraint of segment === null || segment === void 0 ? void 0 : segment.constraints) {
+ yield constraint;
+ }
}
- });
- };
- UnleashClient.prototype.yieldSegmentConstraints = function (segments) {
- var segments_1, segments_1_1, segment, _a, _b, constraint, e_1_1, e_2_1;
- var e_2, _c, e_1, _d;
- return __generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- _e.trys.push([0, 14, 15, 16]);
- segments_1 = __values(segments), segments_1_1 = segments_1.next();
- _e.label = 1;
- case 1:
- if (!!segments_1_1.done) return [3 /*break*/, 13];
- segment = segments_1_1.value;
- if (!segment) return [3 /*break*/, 10];
- _e.label = 2;
- case 2:
- _e.trys.push([2, 7, 8, 9]);
- _a = (e_1 = void 0, __values(segment === null || segment === void 0 ? void 0 : segment.constraints)), _b = _a.next();
- _e.label = 3;
- case 3:
- if (!!_b.done) return [3 /*break*/, 6];
- constraint = _b.value;
- return [4 /*yield*/, constraint];
- case 4:
- _e.sent();
- _e.label = 5;
- case 5:
- _b = _a.next();
- return [3 /*break*/, 3];
- case 6: return [3 /*break*/, 9];
- case 7:
- e_1_1 = _e.sent();
- e_1 = { error: e_1_1 };
- return [3 /*break*/, 9];
- case 8:
- try {
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
- }
- finally { if (e_1) throw e_1.error; }
- return [7 /*endfinally*/];
- case 9: return [3 /*break*/, 12];
- case 10: return [4 /*yield*/, undefined];
- case 11:
- _e.sent();
- _e.label = 12;
- case 12:
- segments_1_1 = segments_1.next();
- return [3 /*break*/, 1];
- case 13: return [3 /*break*/, 16];
- case 14:
- e_2_1 = _e.sent();
- e_2 = { error: e_2_1 };
- return [3 /*break*/, 16];
- case 15:
- try {
- if (segments_1_1 && !segments_1_1.done && (_c = segments_1.return)) _c.call(segments_1);
- }
- finally { if (e_2) throw e_2.error; }
- return [7 /*endfinally*/];
- case 16: return [2 /*return*/];
+ else {
+ yield undefined;
}
- });
- };
- UnleashClient.prototype.getVariant = function (name, context, fallbackVariant) {
- var variant = this.resolveVariant(name, context, true, fallbackVariant);
+ }
+ }
+ getVariant(name, context, fallbackVariant) {
+ const variant = this.resolveVariant(name, context, true, fallbackVariant);
this.emit(events_2.UnleashEvents.Impression, (0, events_2.createImpressionEvent)({
featureName: name,
- context: context,
+ context,
enabled: variant.enabled,
eventType: 'getVariant',
variant: variant.name,
}));
return variant;
- };
+ }
// This function is intended to close an issue in the proxy where feature enabled
// state gets checked twice when resolving a variant with random stickiness and
// gradual rollout. This is not intended for general use, prefer getVariant instead
- UnleashClient.prototype.forceGetVariant = function (name, context, fallbackVariant) {
+ forceGetVariant(name, context, fallbackVariant) {
return this.resolveVariant(name, context, false, fallbackVariant);
- };
- UnleashClient.prototype.resolveVariant = function (name, context, checkToggle, fallbackVariant) {
- var fallback = fallbackVariant || (0, variant_1.getDefaultVariant)();
- var feature = this.repository.getToggle(name);
+ }
+ resolveVariant(name, context, checkToggle, fallbackVariant) {
+ const fallback = fallbackVariant || (0, variant_1.getDefaultVariant)();
+ const feature = this.repository.getToggle(name);
if (typeof feature === 'undefined' ||
!feature.variants ||
!Array.isArray(feature.variants) ||
feature.variants.length === 0) {
return fallback;
}
- var enabled = true;
+ let enabled = true;
if (checkToggle) {
- enabled = this.isFeatureEnabled(feature, context, function () {
- return fallbackVariant ? fallbackVariant.enabled : false;
- });
+ enabled = this.isFeatureEnabled(feature, context, () => fallbackVariant ? fallbackVariant.enabled : false);
if (!enabled) {
return fallback;
}
}
- var variant = (0, variant_1.selectVariant)(feature, context);
+ const variant = (0, variant_1.selectVariant)(feature, context);
if (variant === null) {
return fallback;
}
@@ -256,8 +134,7 @@ var UnleashClient = /** @class */ (function (_super) {
payload: variant.payload,
enabled: !checkToggle || enabled,
};
- };
- return UnleashClient;
-}(events_1.EventEmitter));
+ }
+}
exports.default = UnleashClient;
//# sourceMappingURL=client.js.map
\ No newline at end of file
diff --git i/lib/client.js.map w/lib/client.js.map
index 227c90d..ad6ae31 100644
--- i/lib/client.js.map
+++ w/lib/client.js.map
@@ -1 +1 @@
-{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAItC,qCAAyF;AAGzF,mCAAgE;AAMhE;IAA2C,iCAAY;IAOrD,uBAAY,UAA+B,EAAE,UAAsB;QAAnE,YACE,iBAAO,SAgBR;QAfC,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,KAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,QAAkB;YACzC,IACE,CAAC,QAAQ;gBACT,CAAC,QAAQ,CAAC,IAAI;gBACd,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBACjC,CAAC,QAAQ,CAAC,SAAS;gBACnB,OAAO,QAAQ,CAAC,SAAS,KAAK,UAAU,EACxC;gBACA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;;IACL,CAAC;IAEO,mCAAW,GAAnB,UAAoB,IAAY;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,QAAkB,IAAc,OAAA,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAtB,CAAsB,CAAC,CAAC;IACvF,CAAC;IAED,gCAAQ,GAAR,UAAS,eAAuB,EAAE,IAAY,EAAE,UAAwC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAC3C,IAAI,CAAC,IAAI,CACP,sBAAa,CAAC,IAAI,EAClB,6BAAqB,eAAe,6BAAiB,IAAI,+BAAmB,UAAU;iBACnF,GAAG,CAAC,UAAC,EAAW;oBAAH,CAAC,UAAA;gBAAO,OAAA,CAAC;YAAD,CAAC,CAAC;iBACvB,IAAI,CAAC,IAAI,CAAC,8CAA0C,CACxD,CAAC;SACH;IACH,CAAC;IAED,iCAAS,GAAT,UAAU,IAAY,EAAE,OAAgB,EAAE,QAAkB;QAC1D,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,IAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,UAAU,EAAE,IAAA,8BAAqB,EAAC;YACxD,WAAW,EAAE,IAAI;YACjB,OAAO,SAAA;YACP,OAAO,SAAA;YACP,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,OAAyB,EAAE,OAAgB,EAAE,QAAkB;QAAhF,iBA+BC;QA9BC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,QAAQ,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACtC,IAAM,GAAG,GAAG,2DAAoD,OAAO,OAAO,CAAC,UAAU,CAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,OAAO,OAAO,CAAC,OAAO,CAAC;SACxB;QAED,OAAO,CACL,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,gBAAgB;gBACvC,IAAM,QAAQ,GAAG,KAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,EAAE;oBACb,KAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACvE,OAAO,KAAK,CAAC;iBACd;gBACD,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,OAAO,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9F,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEA,2CAAmB,GAApB,UACE,QAAoC;;QADtC,iBAWC;;;;;yBARK,QAAQ,CAAC,WAAW,EAApB,wBAAoB;oBACtB,sBAAA,SAAO,QAAQ,CAAC,WAAW,CAAA,EAAA;;oBAA3B,SAA2B,CAAC;;;oBAExB,QAAQ,GAAG,MAAA,QAAQ,CAAC,QAAQ,0CAAE,GAAG,CAAC,UAAC,SAAS,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAArC,CAAqC,CAAC,CAAC;oBAC9F,IAAI,CAAC,QAAQ,EAAE;wBACb,sBAAO;qBACR;oBACD,sBAAA,SAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA,EAAA;;oBAA7C,SAA6C,CAAC;;;;KAC/C;IAEA,+CAAuB,GAAxB,UACE,QAAiC;;;;;;;oBAGX,aAAA,SAAA,QAAQ,CAAA;;;;oBAAnB,OAAO;yBACZ,OAAO,EAAP,yBAAO;;;;oBAEgB,oBAAA,SAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,CAAA;;;;oBAAlC,UAAU;oBACnB,qBAAM,UAAU,EAAA;;oBAAhB,SAAgB,CAAC;;;;;;;;;;;;;;;;;yBAGnB,qBAAM,SAAS,EAAA;;oBAAf,SAAe,CAAC;;;;;;;;;;;;;;;;;;;KAGrB;IAED,kCAAU,GAAV,UAAW,IAAY,EAAE,OAAgB,EAAE,eAAyB;QAClE,IAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,UAAU,EAAE,IAAA,8BAAqB,EAAC;YACxD,WAAW,EAAE,IAAI;YACjB,OAAO,SAAA;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,OAAO,CAAC,IAAI;SACtB,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iFAAiF;IACjF,+EAA+E;IAC/E,mFAAmF;IACnF,uCAAe,GAAf,UAAgB,IAAY,EAAE,OAAgB,EAAE,eAAyB;QACvE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAEO,sCAAc,GAAtB,UACE,IAAY,EACZ,OAAgB,EAChB,WAAoB,EACpB,eAAyB;QAEzB,IAAM,QAAQ,GAAG,eAAe,IAAI,IAAA,2BAAiB,GAAE,CAAC;QACxD,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,CAAC,OAAO,CAAC,QAAQ;YACjB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAC7B;YACA,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE;gBAChD,OAAA,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;YAAjD,CAAiD,CAClD,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,IAAM,OAAO,GAA6B,IAAA,uBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,CAAC,WAAW,IAAI,OAAO;SACjC,CAAC;IACJ,CAAC;IACH,oBAAC;AAAD,CAAC,AA7KD,CAA2C,qBAAY,GA6KtD"}
\ No newline at end of file
+{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAItC,uCAAyF;AAGzF,qCAAgE;AAMhE,MAAqB,aAAc,SAAQ,qBAAY;IAOrD,YAAY,UAA+B,EAAE,UAAsB;QACjE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAkB,EAAE,EAAE;YAC7C,IACE,CAAC,QAAQ;gBACT,CAAC,QAAQ,CAAC,IAAI;gBACd,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBACjC,CAAC,QAAQ,CAAC,SAAS;gBACnB,OAAO,QAAQ,CAAC,SAAS,KAAK,UAAU,EACxC;gBACA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;aACtD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAkB,EAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACvF,CAAC;IAED,QAAQ,CAAC,eAAuB,EAAE,IAAY,EAAE,UAAwC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;YAC3C,IAAI,CAAC,IAAI,CACP,sBAAa,CAAC,IAAI,EAClB,qBAAqB,eAAe,iBAAiB,IAAI,mBAAmB,UAAU;iBACnF,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;iBACvB,IAAI,CAAC,IAAI,CAAC,0CAA0C,CACxD,CAAC;SACH;IACH,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,OAAgB,EAAE,QAAkB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,UAAU,EAAE,IAAA,8BAAqB,EAAC;YACxD,WAAW,EAAE,IAAI;YACjB,OAAO;YACP,OAAO;YACP,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gBAAgB,CAAC,OAAyB,EAAE,OAAgB,EAAE,QAAkB;QAC9E,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,QAAQ,EAAE,CAAC;SACnB;QAED,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACtC,MAAM,GAAG,GAAG,oDAAoD,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;SACd;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,OAAO,OAAO,CAAC,OAAO,CAAC;SACxB;QAED,OAAO,CACL,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAW,EAAE;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACvE,OAAO,KAAK,CAAC;iBACd;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,OAAO,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YAC9F,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,CAAC,mBAAmB,CAClB,QAAoC;;QAEpC,IAAI,QAAQ,CAAC,WAAW,EAAE;YACxB,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC7B;QACD,MAAM,QAAQ,GAAG,MAAA,QAAQ,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,CAAC,uBAAuB,CACtB,QAAiC;QAEjC,gDAAgD;QAChD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,OAAO,EAAE;gBACX,gDAAgD;gBAChD,KAAK,MAAM,UAAU,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE;oBAC7C,MAAM,UAAU,CAAC;iBAClB;aACF;iBAAM;gBACL,MAAM,SAAS,CAAC;aACjB;SACF;IACH,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,OAAgB,EAAE,eAAyB;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,sBAAa,CAAC,UAAU,EAAE,IAAA,8BAAqB,EAAC;YACxD,WAAW,EAAE,IAAI;YACjB,OAAO;YACP,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,OAAO,CAAC,IAAI;SACtB,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iFAAiF;IACjF,+EAA+E;IAC/E,mFAAmF;IACnF,eAAe,CAAC,IAAY,EAAE,OAAgB,EAAE,eAAyB;QACvE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IAEO,cAAc,CACpB,IAAY,EACZ,OAAgB,EAChB,WAAoB,EACpB,eAAyB;QAEzB,MAAM,QAAQ,GAAG,eAAe,IAAI,IAAA,2BAAiB,GAAE,CAAC;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,CAAC,OAAO,CAAC,QAAQ;YACjB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAC7B;YACA,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,WAAW,EAAE;YACf,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CACrD,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAClD,CAAC;YACF,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,QAAQ,CAAC;aACjB;SACF;QAED,MAAM,OAAO,GAA6B,IAAA,uBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1E,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC;SACjB;QAED,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,CAAC,WAAW,IAAI,OAAO;SACjC,CAAC;IACJ,CAAC;CACF;AA7KD,gCA6KC"}
\ No newline at end of file
diff --git i/lib/helpers.js w/lib/helpers.js
index d04c612..ca9f21e 100644
--- i/lib/helpers.js
+++ w/lib/helpers.js
@@ -1,16 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAppliedJitter = exports.generateHashOfConfig = exports.generateInstanceId = exports.safeName = exports.resolveContextValue = exports.createFallbackFunction = void 0;
-var os_1 = require("os");
-var murmurHash3 = require("murmurhash3js");
+const os_1 = require("os");
+const murmurHash3 = require("murmurhash3js");
function createFallbackFunction(name, context, fallback) {
if (typeof fallback === 'function') {
- return function () { return fallback(name, context); };
+ return () => fallback(name, context);
}
if (typeof fallback === 'boolean') {
- return function () { return fallback; };
+ return () => fallback;
}
- return function () { return false; };
+ return () => false;
}
exports.createFallbackFunction = createFallbackFunction;
function resolveContextValue(context, field) {
@@ -23,8 +23,7 @@ function resolveContextValue(context, field) {
return undefined;
}
exports.resolveContextValue = resolveContextValue;
-function safeName(str) {
- if (str === void 0) { str = ''; }
+function safeName(str = '') {
return str.replace(/\//g, '_');
}
exports.safeName = safeName;
@@ -32,26 +31,26 @@ function generateInstanceId(instanceId) {
if (instanceId) {
return instanceId;
}
- var info;
+ let info;
try {
info = (0, os_1.userInfo)();
}
catch (e) {
// unable to read info;
}
- var prefix = info
+ const prefix = info
? info.username
- : "generated-".concat(Math.round(Math.random() * 1000000), "-").concat(process.pid);
- return "".concat(prefix, "-").concat((0, os_1.hostname)());
+ : `generated-${Math.round(Math.random() * 1000000)}-${process.pid}`;
+ return `${prefix}-${(0, os_1.hostname)()}`;
}
exports.generateInstanceId = generateInstanceId;
function generateHashOfConfig(o) {
- var oAsString = JSON.stringify(o);
+ const oAsString = JSON.stringify(o);
return murmurHash3.x86.hash128(oAsString);
}
exports.generateHashOfConfig = generateHashOfConfig;
function getAppliedJitter(jitter) {
- var appliedJitter = Math.random() * jitter;
+ const appliedJitter = Math.random() * jitter;
return Math.random() < 0.5 ? -appliedJitter : appliedJitter;
}
exports.getAppliedJitter = getAppliedJitter;
diff --git i/lib/helpers.js.map w/lib/helpers.js.map
index 725e387..5b7a05c 100644
--- i/lib/helpers.js.map
+++ w/lib/helpers.js.map
@@ -1 +1 @@
-{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,yBAAwC;AACxC,2CAA6C;AAK7C,SAAgB,sBAAsB,CACpC,IAAY,EACZ,OAAgB,EAChB,QAAqC;IAErC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAClC,OAAO,cAAM,OAAA,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,EAAvB,CAAuB,CAAC;KACtC;IACD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE;QACjC,OAAO,cAAM,OAAA,QAAQ,EAAR,CAAQ,CAAC;KACvB;IACD,OAAO,cAAM,OAAA,KAAK,EAAL,CAAK,CAAC;AACrB,CAAC;AAZD,wDAYC;AAED,SAAgB,mBAAmB,CAAC,OAAgB,EAAE,KAAa;IACjE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,OAAO,CAAC,KAAK,CAAW,CAAC;KACjC;IACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACnD,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAW,CAAC;KAC5C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,kDAQC;AAED,SAAgB,QAAQ,CAAC,GAAgB;IAAhB,oBAAA,EAAA,QAAgB;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAFD,4BAEC;AAED,SAAgB,kBAAkB,CAAC,UAAmB;IACpD,IAAI,UAAU,EAAE;QACd,OAAO,UAAU,CAAC;KACnB;IACD,IAAI,IAAI,CAAC;IACT,IAAI;QACF,IAAI,GAAG,IAAA,aAAQ,GAAE,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,uBAAuB;KACxB;IAED,IAAM,MAAM,GAAG,IAAI;QACjB,CAAC,CAAC,IAAI,CAAC,QAAQ;QACf,CAAC,CAAC,oBAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,cAAI,OAAO,CAAC,GAAG,CAAE,CAAC;IACtE,OAAO,UAAG,MAAM,cAAI,IAAA,aAAQ,GAAE,CAAE,CAAC;AACnC,CAAC;AAfD,gDAeC;AAED,SAAgB,oBAAoB,CAAC,CAAS;IAC5C,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAHD,oDAGC;AAED,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7C,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;AAC9D,CAAC;AAHD,4CAGC"}
\ No newline at end of file
+{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,2BAAwC;AACxC,6CAA6C;AAK7C,SAAgB,sBAAsB,CACpC,IAAY,EACZ,OAAgB,EAChB,QAAqC;IAErC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;QAClC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACtC;IACD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE;QACjC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC;KACvB;IACD,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC;AACrB,CAAC;AAZD,wDAYC;AAED,SAAgB,mBAAmB,CAAC,OAAgB,EAAE,KAAa;IACjE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,OAAO,OAAO,CAAC,KAAK,CAAW,CAAC;KACjC;IACD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;QACnD,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAW,CAAC;KAC5C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AARD,kDAQC;AAED,SAAgB,QAAQ,CAAC,MAAc,EAAE;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAFD,4BAEC;AAED,SAAgB,kBAAkB,CAAC,UAAmB;IACpD,IAAI,UAAU,EAAE;QACd,OAAO,UAAU,CAAC;KACnB;IACD,IAAI,IAAI,CAAC;IACT,IAAI;QACF,IAAI,GAAG,IAAA,aAAQ,GAAE,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,uBAAuB;KACxB;IAED,MAAM,MAAM,GAAG,IAAI;QACjB,CAAC,CAAC,IAAI,CAAC,QAAQ;QACf,CAAC,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtE,OAAO,GAAG,MAAM,IAAI,IAAA,aAAQ,GAAE,EAAE,CAAC;AACnC,CAAC;AAfD,gDAeC;AAED,SAAgB,oBAAoB,CAAC,CAAS;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAHD,oDAGC;AAED,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC;IAC7C,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;AAC9D,CAAC;AAHD,4CAGC"}
\ No newline at end of file
diff --git i/lib/index.js w/lib/index.js
index f0008d2..50bb81d 100644
--- i/lib/index.js
+++ w/lib/index.js
@@ -1,77 +1,30 @@
"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
Object.defineProperty(exports, "__esModule", { value: true });
exports.destroyWithFlush = exports.flushMetrics = exports.countVariant = exports.count = exports.forceGetVariant = exports.getVariant = exports.getFeatureToggleDefinitions = exports.getFeatureToggleDefinition = exports.destroy = exports.isEnabled = exports.startUnleash = exports.initialize = exports.UnleashEvents = exports.InMemStorageProvider = exports.Unleash = exports.Strategy = void 0;
-var events_1 = require("events");
-var unleash_1 = require("./unleash");
+const events_1 = require("events");
+const unleash_1 = require("./unleash");
Object.defineProperty(exports, "Unleash", { enumerable: true, get: function () { return unleash_1.Unleash; } });
-var variant_1 = require("./variant");
-var events_2 = require("./events");
+const variant_1 = require("./variant");
+const events_2 = require("./events");
Object.defineProperty(exports, "UnleashEvents", { enumerable: true, get: function () { return events_2.UnleashEvents; } });
-var storage_provider_in_mem_1 = require("./repository/storage-provider-in-mem");
+const storage_provider_in_mem_1 = require("./repository/storage-provider-in-mem");
exports.InMemStorageProvider = storage_provider_in_mem_1.default;
// exports
var index_1 = require("./strategy/index");
Object.defineProperty(exports, "Strategy", { enumerable: true, get: function () { return index_1.Strategy; } });
-var instance;
+let instance;
function initialize(options) {
instance = unleash_1.Unleash.getInstance(options);
return instance;
}
exports.initialize = initialize;
-function startUnleash(options) {
- return __awaiter(this, void 0, void 0, function () {
- var unleash;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- unleash = initialize(options);
- return [4 /*yield*/, (0, events_1.once)(unleash, 'synchronized')];
- case 1:
- _a.sent();
- return [2 /*return*/, unleash];
- }
- });
- });
+async function startUnleash(options) {
+ const unleash = initialize(options);
+ await (0, events_1.once)(unleash, 'synchronized');
+ return unleash;
}
exports.startUnleash = startUnleash;
-function isEnabled(name, context, fallbackValue) {
- if (context === void 0) { context = {}; }
+function isEnabled(name, context = {}, fallbackValue) {
return instance ? instance.isEnabled(name, context, fallbackValue) : !!fallbackValue;
}
exports.isEnabled = isEnabled;
@@ -90,15 +43,13 @@ function getFeatureToggleDefinitions() {
return instance && instance.getFeatureToggleDefinitions();
}
exports.getFeatureToggleDefinitions = getFeatureToggleDefinitions;
-function getVariant(name, context, fallbackVariant) {
- if (context === void 0) { context = {}; }
- var variant = fallbackVariant || (0, variant_1.getDefaultVariant)();
+function getVariant(name, context = {}, fallbackVariant) {
+ const variant = fallbackVariant || (0, variant_1.getDefaultVariant)();
return instance ? instance.getVariant(name, context, variant) : variant;
}
exports.getVariant = getVariant;
-function forceGetVariant(name, context, fallbackVariant) {
- if (context === void 0) { context = {}; }
- var variant = fallbackVariant || (0, variant_1.getDefaultVariant)();
+function forceGetVariant(name, context = {}, fallbackVariant) {
+ const variant = fallbackVariant || (0, variant_1.getDefaultVariant)();
return instance ? instance.forceGetVariant(name, context, variant) : variant;
}
exports.forceGetVariant = forceGetVariant;
@@ -110,20 +61,12 @@ function countVariant(toggleName, variantName) {
return instance && instance.countVariant(toggleName, variantName);
}
exports.countVariant = countVariant;
-function flushMetrics() {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2 /*return*/, instance && instance.flushMetrics()];
- });
- });
+async function flushMetrics() {
+ return instance && instance.flushMetrics();
}
exports.flushMetrics = flushMetrics;
-function destroyWithFlush() {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2 /*return*/, instance && instance.destroyWithFlush()];
- });
- });
+async function destroyWithFlush() {
+ return instance && instance.destroyWithFlush();
}
exports.destroyWithFlush = destroyWithFlush;
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git i/lib/index.js.map w/lib/index.js.map
index 398dd0f..bdc8a62 100644
--- i/lib/index.js.map
+++ w/lib/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,uCAAoC;AAWT,wFAXlB,iBAAO,OAWkB;AAVlC,uCAAuD;AAGvD,qCAAyC;AAO4B,8FAP5D,sBAAa,OAO4D;AALlF,kFAAwE;AAKzB,+BALxC,iCAAoB,CAKwC;AAFnE,UAAU;AACV,0CAA4C;AAAnC,iGAAA,QAAQ,OAAA;AAIjB,IAAI,QAA6B,CAAC;AAGlC,SAAgB,UAAU,CAAC,OAAsB;IAC/C,QAAQ,GAAG,iBAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAJD,gCAIC;AAEM,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,IAAA,aAAI,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AAJD,oCAIC;AAED,SAAgB,SAAS,CAAC,IAAY,EAAE,UAAmB,EAAE,EAAE,aAAuB;IACpF,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACvF,CAAC;AAFD,8BAEC;AAED,SAAgB,OAAO;IACrB,IAAI,QAAQ,EAAG;QACb,QAAQ,CAAC,OAAO,EAAE,CAAC;KACpB;IACD,QAAQ,GAAG,SAAS,CAAC;AACvB,CAAC;AALD,0BAKC;AAED,SAAgB,0BAA0B,CAAC,UAAkB;IAC3D,OAAO,QAAQ,IAAI,QAAQ,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;AACrE,CAAC;AAFD,gEAEC;AAED,SAAgB,2BAA2B;IACzC,OAAO,QAAQ,IAAI,QAAQ,CAAC,2BAA2B,EAAE,CAAC;AAC5D,CAAC;AAFD,kEAEC;AAED,SAAgB,UAAU,CACxB,IAAY,EACZ,UAAmB,EAAE,EACrB,eAAyB;IAEzB,MAAM,OAAO,GAAG,eAAe,IAAI,IAAA,2BAAiB,GAAE,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC;AAPD,gCAOC;AAED,SAAgB,eAAe,CAC7B,IAAY,EACZ,UAAmB,EAAE,EACrB,eAAyB;IAEzB,MAAM,OAAO,GAAG,eAAe,IAAI,IAAA,2BAAiB,GAAE,CAAC;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/E,CAAC;AAPD,0CAOC;AAED,SAAgB,KAAK,CAAC,UAAkB,EAAE,OAAgB;IACxD,OAAO,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAFD,sBAEC;AAED,SAAgB,YAAY,CAAC,UAAkB,EAAE,WAAmB;IAClE,OAAO,QAAQ,IAAI,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC7C,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,gBAAgB;IACpC,OAAO,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;AACjD,CAAC;AAFD,4CAEC"}
\ No newline at end of file
diff --git i/lib/metrics.js w/lib/metrics.js
index 2f84786..64d00c2 100644
--- i/lib/metrics.js
+++ w/lib/metrics.js
@@ -1,248 +1,128 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
Object.defineProperty(exports, "__esModule", { value: true });
-var events_1 = require("events");
-var request_1 = require("./request");
-var details_json_1 = require("./details.json");
-var url_utils_1 = require("./url-utils");
-var events_2 = require("./events");
-var helpers_1 = require("./helpers");
-var Metrics = /** @class */ (function (_super) {
- __extends(Metrics, _super);
- function Metrics(_a) {
- var appName = _a.appName, instanceId = _a.instanceId, strategies = _a.strategies, _b = _a.metricsInterval, metricsInterval = _b === void 0 ? 0 : _b, _c = _a.metricsJitter, metricsJitter = _c === void 0 ? 0 : _c, _d = _a.disableMetrics, disableMetrics = _d === void 0 ? false : _d, url = _a.url, headers = _a.headers, customHeadersFunction = _a.customHeadersFunction, timeout = _a.timeout, httpOptions = _a.httpOptions;
- var _this = _super.call(this) || this;
- _this.disabled = disableMetrics;
- _this.metricsInterval = metricsInterval;
- _this.metricsJitter = metricsJitter;
- _this.appName = appName;
- _this.instanceId = instanceId;
- _this.sdkVersion = details_json_1.sdkVersion;
- _this.strategies = strategies;
- _this.url = url;
- _this.headers = headers;
- _this.customHeadersFunction = customHeadersFunction;
- _this.started = new Date();
- _this.timeout = timeout;
- _this.bucket = _this.createBucket();
- _this.httpOptions = httpOptions;
- return _this;
+const events_1 = require("events");
+const request_1 = require("./request");
+const details_json_1 = require("./details.json");
+const url_utils_1 = require("./url-utils");
+const events_2 = require("./events");
+const helpers_1 = require("./helpers");
+class Metrics extends events_1.EventEmitter {
+ constructor({ appName, instanceId, strategies, metricsInterval = 0, metricsJitter = 0, disableMetrics = false, url, headers, customHeadersFunction, timeout, httpOptions, }) {
+ super();
+ this.disabled = disableMetrics;
+ this.metricsInterval = metricsInterval;
+ this.metricsJitter = metricsJitter;
+ this.appName = appName;
+ this.instanceId = instanceId;
+ this.sdkVersion = details_json_1.sdkVersion;
+ this.strategies = strategies;
+ this.url = url;
+ this.headers = headers;
+ this.customHeadersFunction = customHeadersFunction;
+ this.started = new Date();
+ this.timeout = timeout;
+ this.bucket = this.createBucket();
+ this.httpOptions = httpOptions;
}
- Metrics.prototype.getAppliedJitter = function () {
+ getAppliedJitter() {
return (0, helpers_1.getAppliedJitter)(this.metricsJitter);
- };
- Metrics.prototype.startTimer = function () {
- var _this = this;
+ }
+ startTimer() {
if (this.disabled) {
return;
}
- this.timer = setTimeout(function () {
- _this.sendMetrics();
+ this.timer = setTimeout(() => {
+ this.sendMetrics();
}, this.metricsInterval + this.getAppliedJitter());
if (process.env.NODE_ENV !== 'test' && typeof this.timer.unref === 'function') {
this.timer.unref();
}
- };
- Metrics.prototype.start = function () {
+ }
+ start() {
if (typeof this.metricsInterval === 'number' && this.metricsInterval > 0) {
this.startTimer();
this.registerInstance();
}
- };
- Metrics.prototype.stop = function () {
+ }
+ stop() {
if (this.timer) {
clearInterval(this.timer);
delete this.timer;
}
this.disabled = true;
- };
- Metrics.prototype.registerInstance = function () {
- return __awaiter(this, void 0, void 0, function () {
- var url, payload, headers, _a, res, _b, _c, err_1;
- return __generator(this, function (_d) {
- switch (_d.label) {
- case 0:
- if (this.disabled) {
- return [2 /*return*/, false];
- }
- url = (0, url_utils_1.resolveUrl)((0, url_utils_1.suffixSlash)(this.url), './client/register');
- payload = this.getClientData();
- if (!this.customHeadersFunction) return [3 /*break*/, 2];
- return [4 /*yield*/, this.customHeadersFunction()];
- case 1:
- _a = _d.sent();
- return [3 /*break*/, 3];
- case 2:
- _a = this.headers;
- _d.label = 3;
- case 3:
- headers = _a;
- _d.label = 4;
- case 4:
- _d.trys.push([4, 9, , 10]);
- return [4 /*yield*/, (0, request_1.post)({
- url: url,
- json: payload,
- appName: this.appName,
- instanceId: this.instanceId,
- headers: headers,
- timeout: this.timeout,
- httpOptions: this.httpOptions,
- })];
- case 5:
- res = _d.sent();
- if (!!res.ok) return [3 /*break*/, 7];
- // status code outside 200 range
- _b = this.emit;
- _c = [events_2.UnleashEvents.Warn, "".concat(url, " returning ").concat(res.status)];
- return [4 /*yield*/, res.text()];
- case 6:
- // status code outside 200 range
- _b.apply(this, _c.concat([_d.sent()]));
- return [3 /*break*/, 8];
- case 7:
- this.emit(events_2.UnleashEvents.Registered, payload);
- _d.label = 8;
- case 8: return [3 /*break*/, 10];
- case 9:
- err_1 = _d.sent();
- this.emit(events_2.UnleashEvents.Warn, err_1);
- return [3 /*break*/, 10];
- case 10: return [2 /*return*/, true];
- }
+ }
+ async registerInstance() {
+ if (this.disabled) {
+ return false;
+ }
+ const url = (0, url_utils_1.resolveUrl)((0, url_utils_1.suffixSlash)(this.url), './client/register');
+ const payload = this.getClientData();
+ const headers = this.customHeadersFunction ? await this.customHeadersFunction() : this.headers;
+ try {
+ const res = await (0, request_1.post)({
+ url,
+ json: payload,
+ appName: this.appName,
+ instanceId: this.instanceId,
+ headers,
+ timeout: this.timeout,
+ httpOptions: this.httpOptions,
});
- });
- };
- Metrics.prototype.sendMetrics = function () {
- return __awaiter(this, void 0, void 0, function () {
- var url, payload, headers, _a, res, _b, _c, err_2;
- return __generator(this, function (_d) {
- switch (_d.label) {
- case 0:
- if (this.disabled) {
- return [2 /*return*/];
- }
- if (this.bucketIsEmpty()) {
- this.resetBucket();
- this.startTimer();
- return [2 /*return*/];
- }
- url = (0, url_utils_1.resolveUrl)((0, url_utils_1.suffixSlash)(this.url), './client/metrics');
- payload = this.createMetricsData();
- if (!this.customHeadersFunction) return [3 /*break*/, 2];
- return [4 /*yield*/, this.customHeadersFunction()];
- case 1:
- _a = _d.sent();
- return [3 /*break*/, 3];
- case 2:
- _a = this.headers;
- _d.label = 3;
- case 3:
- headers = _a;
- _d.label = 4;
- case 4:
- _d.trys.push([4, 9, , 10]);
- return [4 /*yield*/, (0, request_1.post)({
- url: url,
- json: payload,
- appName: this.appName,
- instanceId: this.instanceId,
- headers: headers,
- timeout: this.timeout,
- httpOptions: this.httpOptions,
- })];
- case 5:
- res = _d.sent();
- this.startTimer();
- if (res.status === 404) {
- this.emit(events_2.UnleashEvents.Warn, "".concat(url, " returning 404, stopping metrics"));
- this.stop();
- }
- if (!!res.ok) return [3 /*break*/, 7];
- this.restoreBucket(payload.bucket);
- _b = this.emit;
- _c = [events_2.UnleashEvents.Warn, "".concat(url, " returning ").concat(res.status)];
- return [4 /*yield*/, res.text()];
- case 6:
- _b.apply(this, _c.concat([_d.sent()]));
- return [3 /*break*/, 8];
- case 7:
- this.emit(events_2.UnleashEvents.Sent, payload);
- _d.label = 8;
- case 8: return [3 /*break*/, 10];
- case 9:
- err_2 = _d.sent();
- this.restoreBucket(payload.bucket);
- this.emit(events_2.UnleashEvents.Warn, err_2);
- this.startTimer();
- return [3 /*break*/, 10];
- case 10: return [2 /*return*/];
- }
+ if (!res.ok) {
+ // status code outside 200 range
+ this.emit(events_2.UnleashEvents.Warn, `${url} returning ${res.status}`, await res.text());
+ }
+ else {
+ this.emit(events_2.UnleashEvents.Registered, payload);
+ }
+ }
+ catch (err) {
+ this.emit(events_2.UnleashEvents.Warn, err);
+ }
+ return true;
+ }
+ async sendMetrics() {
+ if (this.disabled) {
+ return;
+ }
+ if (this.bucketIsEmpty()) {
+ this.resetBucket();
+ this.startTimer();
+ return;
+ }
+ const url = (0, url_utils_1.resolveUrl)((0, url_utils_1.suffixSlash)(this.url), './client/metrics');
+ const payload = this.createMetricsData();
+ const headers = this.customHeadersFunction ? await this.customHeadersFunction() : this.headers;
+ try {
+ const res = await (0, request_1.post)({
+ url,
+ json: payload,
+ appName: this.appName,
+ instanceId: this.instanceId,
+ headers,
+ timeout: this.timeout,
+ httpOptions: this.httpOptions,
});
- });
- };
- Metrics.prototype.assertBucket = function (name) {
+ this.startTimer();
+ if (res.status === 404) {
+ this.emit(events_2.UnleashEvents.Warn, `${url} returning 404, stopping metrics`);
+ this.stop();
+ }
+ if (!res.ok) {
+ this.restoreBucket(payload.bucket);
+ this.emit(events_2.UnleashEvents.Warn, `${url} returning ${res.status}`, await res.text());
+ }
+ else {
+ this.emit(events_2.UnleashEvents.Sent, payload);
+ }
+ }
+ catch (err) {
+ this.restoreBucket(payload.bucket);
+ this.emit(events_2.UnleashEvents.Warn, err);
+ this.startTimer();
+ }
+ }
+ assertBucket(name) {
if (this.disabled) {
return;
}
@@ -253,31 +133,29 @@ var Metrics = /** @class */ (function (_super) {
variants: {},
};
}
- };
- Metrics.prototype.count = function (name, enabled) {
+ }
+ count(name, enabled) {
if (this.disabled) {
return;
}
this.increaseCounter(name, enabled, 1);
this.emit(events_2.UnleashEvents.Count, name, enabled);
- };
- Metrics.prototype.countVariant = function (name, variantName) {
+ }
+ countVariant(name, variantName) {
if (this.disabled) {
return;
}
this.increaseVariantCounter(name, variantName, 1);
this.emit(events_2.UnleashEvents.CountVariant, name, variantName);
- };
- Metrics.prototype.increaseCounter = function (name, enabled, inc) {
- if (inc === void 0) { inc = 1; }
+ }
+ increaseCounter(name, enabled, inc = 1) {
if (inc === 0) {
return;
}
this.assertBucket(name);
this.bucket.toggles[name][enabled ? 'yes' : 'no'] += inc;
- };
- Metrics.prototype.increaseVariantCounter = function (name, variantName, inc) {
- if (inc === void 0) { inc = 1; }
+ }
+ increaseVariantCounter(name, variantName, inc = 1) {
this.assertBucket(name);
if (this.bucket.toggles[name].variants[variantName]) {
this.bucket.toggles[name].variants[variantName] += inc;
@@ -285,46 +163,45 @@ var Metrics = /** @class */ (function (_super) {
else {
this.bucket.toggles[name].variants[variantName] = inc;
}
- };
- Metrics.prototype.bucketIsEmpty = function () {
+ }
+ bucketIsEmpty() {
return Object.keys(this.bucket.toggles).length === 0;
- };
- Metrics.prototype.createBucket = function () {
+ }
+ createBucket() {
return {
start: new Date(),
stop: undefined,
toggles: {},
};
- };
- Metrics.prototype.resetBucket = function () {
+ }
+ resetBucket() {
this.bucket = this.createBucket();
- };
- Metrics.prototype.createMetricsData = function () {
- var bucket = __assign(__assign({}, this.bucket), { stop: new Date() });
+ }
+ createMetricsData() {
+ const bucket = { ...this.bucket, stop: new Date() };
this.resetBucket();
return {
appName: this.appName,
instanceId: this.instanceId,
- bucket: bucket,
+ bucket,
};
- };
- Metrics.prototype.restoreBucket = function (bucket) {
- var _this = this;
+ }
+ restoreBucket(bucket) {
if (this.disabled) {
return;
}
this.bucket.start = bucket.start;
- var toggles = bucket.toggles;
- Object.keys(toggles).forEach(function (toggleName) {
- var toggle = toggles[toggleName];
- _this.increaseCounter(toggleName, true, toggle.yes);
- _this.increaseCounter(toggleName, false, toggle.no);
- Object.keys(toggle.variants).forEach(function (variant) {
- _this.increaseVariantCounter(toggleName, variant, toggle.variants[variant]);
+ const { toggles } = bucket;
+ Object.keys(toggles).forEach(toggleName => {
+ const toggle = toggles[toggleName];
+ this.increaseCounter(toggleName, true, toggle.yes);
+ this.increaseCounter(toggleName, false, toggle.no);
+ Object.keys(toggle.variants).forEach(variant => {
+ this.increaseVariantCounter(toggleName, variant, toggle.variants[variant]);
});
});
- };
- Metrics.prototype.getClientData = function () {
+ }
+ getClientData() {
return {
appName: this.appName,
instanceId: this.instanceId,
@@ -333,8 +210,7 @@ var Metrics = /** @class */ (function (_super) {
started: this.started,
interval: this.metricsInterval,
};
- };
- return Metrics;
-}(events_1.EventEmitter));
+ }
+}
exports.default = Metrics;
//# sourceMappingURL=metrics.js.map
\ No newline at end of file
diff --git i/lib/metrics.js.map w/lib/metrics.js.map
index 8751f41..a54df74 100644
--- i/lib/metrics.js.map
+++ w/lib/metrics.js.map
@@ -1 +1 @@
-{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git i/lib/repository/bootstrap-provider.js w/lib/repository/bootstrap-provider.js
index 7cf75bc..0037a63 100644
--- i/lib/repository/bootstrap-provider.js
+++ w/lib/repository/bootstrap-provider.js
@@ -1,72 +1,11 @@
"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-var __read = (this && this.__read) || function (o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
-};
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveBootstrapProvider = exports.DefaultBootstrapProvider = void 0;
-var fs_1 = require("fs");
-var fetch = require("make-fetch-happen");
-var request_1 = require("../request");
-var DefaultBootstrapProvider = /** @class */ (function () {
- function DefaultBootstrapProvider(options, appName, instanceId) {
+const fs_1 = require("fs");
+const fetch = require("make-fetch-happen");
+const request_1 = require("../request");
+class DefaultBootstrapProvider {
+ constructor(options, appName, instanceId) {
this.url = options.url;
this.urlHeaders = options.urlHeaders;
this.filePath = options.filePath;
@@ -75,61 +14,38 @@ var DefaultBootstrapProvider = /** @class */ (function () {
this.appName = appName;
this.instanceId = instanceId;
}
- DefaultBootstrapProvider.prototype.loadFromUrl = function (bootstrapUrl) {
- return __awaiter(this, void 0, void 0, function () {
- var response;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, fetch(bootstrapUrl, {
- method: 'GET',
- timeout: 10000,
- headers: (0, request_1.buildHeaders)(this.appName, this.instanceId, undefined, undefined, this.urlHeaders),
- retry: {
- retries: 2,
- maxTimeout: 10000,
- },
- })];
- case 1:
- response = _a.sent();
- if (response.ok) {
- return [2 /*return*/, response.json()];
- }
- return [2 /*return*/, undefined];
- }
- });
- });
- };
- DefaultBootstrapProvider.prototype.loadFromFile = function (filePath) {
- return __awaiter(this, void 0, void 0, function () {
- var fileContent;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, fs_1.promises.readFile(filePath, 'utf8')];
- case 1:
- fileContent = _a.sent();
- return [2 /*return*/, JSON.parse(fileContent)];
- }
- });
- });
- };
- DefaultBootstrapProvider.prototype.readBootstrap = function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- if (this.data) {
- return [2 /*return*/, { version: 2, segments: this.segments, features: __spreadArray([], __read(this.data), false) }];
- }
- if (this.url) {
- return [2 /*return*/, this.loadFromUrl(this.url)];
- }
- if (this.filePath) {
- return [2 /*return*/, this.loadFromFile(this.filePath)];
- }
- return [2 /*return*/, undefined];
- });
+ async loadFromUrl(bootstrapUrl) {
+ const response = await fetch(bootstrapUrl, {
+ method: 'GET',
+ timeout: 10000,
+ headers: (0, request_1.buildHeaders)(this.appName, this.instanceId, undefined, undefined, this.urlHeaders),
+ retry: {
+ retries: 2,
+ maxTimeout: 10000,
+ },
});
- };
- return DefaultBootstrapProvider;
-}());
+ if (response.ok) {
+ return response.json();
+ }
+ return undefined;
+ }
+ async loadFromFile(filePath) {
+ const fileContent = await fs_1.promises.readFile(filePath, 'utf8');
+ return JSON.parse(fileContent);
+ }
+ async readBootstrap() {
+ if (this.data) {
+ return { version: 2, segments: this.segments, features: [...this.data] };
+ }
+ if (this.url) {
+ return this.loadFromUrl(this.url);
+ }
+ if (this.filePath) {
+ return this.loadFromFile(this.filePath);
+ }
+ return undefined;
+ }
+}
exports.DefaultBootstrapProvider = DefaultBootstrapProvider;
function resolveBootstrapProvider(options, appName, instanceId) {
return options.bootstrapProvider || new DefaultBootstrapProvider(options, appName, instanceId);
diff --git i/lib/repository/bootstrap-provider.js.map w/lib/repository/bootstrap-provider.js.map
index c018a7d..8264733 100644
--- i/lib/repository/bootstrap-provider.js.map
+++ w/lib/repository/bootstrap-provider.js.map
@@ -1 +1 @@
-{"version":3,"file":"bootstrap-provider.js","sourceRoot":"","sources":["../../src/repository/bootstrap-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA8B;AAC9B,yCAA2C;AAG3C,sCAA0C;AAgB1C;IAeE,kCAAY,OAAyB,EAAE,OAAe,EAAE,UAAkB;QACxE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEa,8CAAW,GAAzB,UAA0B,YAAoB;;;;;4BAC3B,qBAAM,KAAK,CAAC,YAAY,EAAE;4BACzC,MAAM,EAAE,KAAK;4BACb,OAAO,EAAE,KAAM;4BACf,OAAO,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;4BAC3F,KAAK,EAAE;gCACL,OAAO,EAAE,CAAC;gCACV,UAAU,EAAE,KAAM;6BACnB;yBACF,CAAC,EAAA;;wBARI,QAAQ,GAAG,SAQf;wBACF,IAAI,QAAQ,CAAC,EAAE,EAAE;4BACf,sBAAO,QAAQ,CAAC,IAAI,EAAE,EAAC;yBACxB;wBACD,sBAAO,SAAS,EAAC;;;;KAClB;IAEa,+CAAY,GAA1B,UAA2B,QAAgB;;;;;4BACrB,qBAAM,aAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAA;;wBAAvD,WAAW,GAAG,SAAyC;wBAC7D,sBAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAC;;;;KAChC;IAEK,gDAAa,GAAnB;;;gBACE,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,sBAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,2BAAM,IAAI,CAAC,IAAI,SAAC,EAAE,EAAC;iBAC1E;gBACD,IAAI,IAAI,CAAC,GAAG,EAAE;oBACZ,sBAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;iBACnC;gBACD,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,sBAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC;iBACzC;gBAED,sBAAO,SAAS,EAAC;;;KAClB;IACH,+BAAC;AAAD,CAAC,AA5DD,IA4DC;AA5DY,4DAAwB;AA8DrC,SAAgB,wBAAwB,CACtC,OAAyB,EACzB,OAAe,EACf,UAAkB;IAElB,OAAO,OAAO,CAAC,iBAAiB,IAAI,IAAI,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACjG,CAAC;AAND,4DAMC"}
\ No newline at end of file
+{"version":3,"file":"bootstrap-provider.js","sourceRoot":"","sources":["../../src/repository/bootstrap-provider.ts"],"names":[],"mappings":";;;AAAA,2BAA8B;AAC9B,2CAA2C;AAG3C,wCAA0C;AAgB1C,MAAa,wBAAwB;IAenC,YAAY,OAAyB,EAAE,OAAe,EAAE,UAAkB;QACxE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB;QAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE;YACzC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAM;YACf,OAAO,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;YAC3F,KAAK,EAAE;gBACL,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,KAAM;aACnB;SACF,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,MAAM,WAAW,GAAG,MAAM,aAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1E;QACD,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA5DD,4DA4DC;AAED,SAAgB,wBAAwB,CACtC,OAAyB,EACzB,OAAe,EACf,UAAkB;IAElB,OAAO,OAAO,CAAC,iBAAiB,IAAI,IAAI,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACjG,CAAC;AAND,4DAMC"}
\ No newline at end of file
diff --git i/lib/repository/index.js w/lib/repository/index.js
index baf3366..39c4940 100644
--- i/lib/repository/index.js
+++ w/lib/repository/index.js
@@ -1,380 +1,215 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
-var __read = (this && this.__read) || function (o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m) return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
- }
- catch (error) { e = { error: error }; }
- finally {
- try {
- if (r && !r.done && (m = i["return"])) m.call(i);
- }
- finally { if (e) throw e.error; }
- }
- return ar;
-};
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
- if (ar || !(i in from)) {
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
- ar[i] = from[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from));
-};
Object.defineProperty(exports, "__esModule", { value: true });
-var events_1 = require("events");
-var request_1 = require("../request");
-var url_utils_1 = require("../url-utils");
-var events_2 = require("../events");
-var SUPPORTED_SPEC_VERSION = '4.2.0';
-var Repository = /** @class */ (function (_super) {
- __extends(Repository, _super);
- function Repository(_a) {
- var url = _a.url, appName = _a.appName, instanceId = _a.instanceId, projectName = _a.projectName, _b = _a.refreshInterval, refreshInterval = _b === void 0 ? 15000 : _b, timeout = _a.timeout, headers = _a.headers, customHeadersFunction = _a.customHeadersFunction, httpOptions = _a.httpOptions, namePrefix = _a.namePrefix, tags = _a.tags, bootstrapProvider = _a.bootstrapProvider, _c = _a.bootstrapOverride, bootstrapOverride = _c === void 0 ? true : _c, storageProvider = _a.storageProvider;
- var _this = _super.call(this) || this;
- _this.stopped = false;
- _this.ready = false;
- _this.connected = false;
- _this.data = {};
- _this.url = url;
- _this.refreshInterval = refreshInterval;
- _this.instanceId = instanceId;
- _this.appName = appName;
- _this.projectName = projectName;
- _this.headers = headers;
- _this.timeout = timeout;
- _this.customHeadersFunction = customHeadersFunction;
- _this.httpOptions = httpOptions;
- _this.namePrefix = namePrefix;
- _this.tags = tags;
- _this.bootstrapProvider = bootstrapProvider;
- _this.bootstrapOverride = bootstrapOverride;
- _this.storageProvider = storageProvider;
- _this.segments = new Map();
- return _this;
+const events_1 = require("events");
+const request_1 = require("../request");
+const url_utils_1 = require("../url-utils");
+const events_2 = require("../events");
+const SUPPORTED_SPEC_VERSION = '4.2.0';
+class Repository extends events_1.EventEmitter {
+ constructor({ url, appName, instanceId, projectName, refreshInterval = 15000, timeout, headers, customHeadersFunction, httpOptions, namePrefix, tags, bootstrapProvider, bootstrapOverride = true, storageProvider, }) {
+ super();
+ this.stopped = false;
+ this.ready = false;
+ this.connected = false;
+ this.data = {};
+ this.url = url;
+ this.refreshInterval = refreshInterval;
+ this.instanceId = instanceId;
+ this.appName = appName;
+ this.projectName = projectName;
+ this.headers = headers;
+ this.timeout = timeout;
+ this.customHeadersFunction = customHeadersFunction;
+ this.httpOptions = httpOptions;
+ this.namePrefix = namePrefix;
+ this.tags = tags;
+ this.bootstrapProvider = bootstrapProvider;
+ this.bootstrapOverride = bootstrapOverride;
+ this.storageProvider = storageProvider;
+ this.segments = new Map();
}
- Repository.prototype.timedFetch = function (interval) {
- var _this = this;
+ timedFetch(interval) {
if (interval > 0) {
- this.timer = setTimeout(function () { return _this.fetch(); }, interval);
+ this.timer = setTimeout(() => this.fetch(), interval);
if (process.env.NODE_ENV !== 'test' && typeof this.timer.unref === 'function') {
this.timer.unref();
}
}
- };
- Repository.prototype.validateFeature = function (feature) {
- var errors = [];
+ }
+ validateFeature(feature) {
+ const errors = [];
if (!Array.isArray(feature.strategies)) {
- errors.push("feature.strategies should be an array, but was ".concat(typeof feature.strategies));
+ errors.push(`feature.strategies should be an array, but was ${typeof feature.strategies}`);
}
if (feature.variants && !Array.isArray(feature.variants)) {
- errors.push("feature.variants should be an array, but was ".concat(typeof feature.variants));
+ errors.push(`feature.variants should be an array, but was ${typeof feature.variants}`);
}
if (typeof feature.enabled !== 'boolean') {
- errors.push("feature.enabled should be an boolean, but was ".concat(typeof feature.enabled));
+ errors.push(`feature.enabled should be an boolean, but was ${typeof feature.enabled}`);
}
if (errors.length > 0) {
- var err = new Error(errors.join(', '));
+ const err = new Error(errors.join(', '));
this.emit(events_2.UnleashEvents.Error, err);
}
- };
- Repository.prototype.start = function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, Promise.all([this.fetch(), this.loadBackup(), this.loadBootstrap()])];
- case 1:
- _a.sent();
- return [2 /*return*/];
- }
- });
- });
- };
- Repository.prototype.loadBackup = function () {
- return __awaiter(this, void 0, void 0, function () {
- var content, err_1;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 2, , 3]);
- return [4 /*yield*/, this.storageProvider.get(this.appName)];
- case 1:
- content = _a.sent();
- if (this.ready) {
- return [2 /*return*/];
- }
- if (content && this.notEmpty(content)) {
- this.data = this.convertToMap(content.features);
- this.segments = this.createSegmentLookup(content.segments);
- this.setReady();
- }
- return [3 /*break*/, 3];
- case 2:
- err_1 = _a.sent();
- this.emit(events_2.UnleashEvents.Warn, err_1);
- return [3 /*break*/, 3];
- case 3: return [2 /*return*/];
- }
- });
- });
- };
- Repository.prototype.setReady = function () {
- var _this = this;
- var doEmitReady = this.ready === false;
+ }
+ async start() {
+ await Promise.all([this.fetch(), this.loadBackup(), this.loadBootstrap()]);
+ }
+ async loadBackup() {
+ try {
+ const content = await this.storageProvider.get(this.appName);
+ if (this.ready) {
+ return;
+ }
+ if (content && this.notEmpty(content)) {
+ this.data = this.convertToMap(content.features);
+ this.segments = this.createSegmentLookup(content.segments);
+ this.setReady();
+ }
+ }
+ catch (err) {
+ this.emit(events_2.UnleashEvents.Warn, err);
+ }
+ }
+ setReady() {
+ const doEmitReady = this.ready === false;
this.ready = true;
if (doEmitReady) {
- process.nextTick(function () {
- _this.emit(events_2.UnleashEvents.Ready);
+ process.nextTick(() => {
+ this.emit(events_2.UnleashEvents.Ready);
});
}
- };
- Repository.prototype.createSegmentLookup = function (segments) {
+ }
+ createSegmentLookup(segments) {
if (!segments) {
return new Map();
}
- return new Map(segments.map(function (segment) { return [segment.id, segment]; }));
- };
- Repository.prototype.save = function (response, fromApi) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- if (fromApi) {
- this.connected = true;
- this.data = this.convertToMap(response.features);
- this.segments = this.createSegmentLookup(response.segments);
- }
- else if (!this.connected) {
- // Only allow bootstrap if not connected
- this.data = this.convertToMap(response.features);
- this.segments = this.createSegmentLookup(response.segments);
- }
- this.setReady();
- this.emit(events_2.UnleashEvents.Changed, __spreadArray([], __read(response.features), false));
- return [4 /*yield*/, this.storageProvider.set(this.appName, response)];
- case 1:
- _a.sent();
- return [2 /*return*/];
- }
- });
- });
- };
- Repository.prototype.notEmpty = function (content) {
+ return new Map(segments.map((segment) => [segment.id, segment]));
+ }
+ async save(response, fromApi) {
+ if (fromApi) {
+ this.connected = true;
+ this.data = this.convertToMap(response.features);
+ this.segments = this.createSegmentLookup(response.segments);
+ }
+ else if (!this.connected) {
+ // Only allow bootstrap if not connected
+ this.data = this.convertToMap(response.features);
+ this.segments = this.createSegmentLookup(response.segments);
+ }
+ this.setReady();
+ this.emit(events_2.UnleashEvents.Changed, [...response.features]);
+ await this.storageProvider.set(this.appName, response);
+ }
+ notEmpty(content) {
return content.features.length > 0;
- };
- Repository.prototype.loadBootstrap = function () {
- return __awaiter(this, void 0, void 0, function () {
- var content, err_2;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- _a.trys.push([0, 4, , 5]);
- return [4 /*yield*/, this.bootstrapProvider.readBootstrap()];
- case 1:
- content = _a.sent();
- if (!this.bootstrapOverride && this.ready) {
- // early exit if we already have backup data and should not override it.
- return [2 /*return*/];
- }
- if (!(content && this.notEmpty(content))) return [3 /*break*/, 3];
- return [4 /*yield*/, this.save(content, false)];
- case 2:
- _a.sent();
- _a.label = 3;
- case 3: return [3 /*break*/, 5];
- case 4:
- err_2 = _a.sent();
- this.emit(events_2.UnleashEvents.Warn, "Unleash SDK was unable to load bootstrap.\nMessage: ".concat(err_2.message));
- return [3 /*break*/, 5];
- case 5: return [2 /*return*/];
- }
- });
- });
- };
- Repository.prototype.convertToMap = function (features) {
- var _this = this;
- var obj = features.reduce(function (o, feature) {
- var a = __assign({}, o);
- _this.validateFeature(feature);
+ }
+ async loadBootstrap() {
+ try {
+ const content = await this.bootstrapProvider.readBootstrap();
+ if (!this.bootstrapOverride && this.ready) {
+ // early exit if we already have backup data and should not override it.
+ return;
+ }
+ if (content && this.notEmpty(content)) {
+ await this.save(content, false);
+ }
+ }
+ catch (err) {
+ this.emit(events_2.UnleashEvents.Warn, `Unleash SDK was unable to load bootstrap.
+Message: ${err.message}`);
+ }
+ }
+ convertToMap(features) {
+ const obj = features.reduce((o, feature) => {
+ const a = { ...o };
+ this.validateFeature(feature);
a[feature.name] = feature;
return a;
}, {});
return obj;
- };
- Repository.prototype.fetch = function () {
- return __awaiter(this, void 0, void 0, function () {
- var nextFetch, mergedTags, url, headers, _a, res, error, data, err_3, err_4, e;
- return __generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- if (this.stopped || !(this.refreshInterval > 0)) {
- return [2 /*return*/];
- }
- nextFetch = this.refreshInterval;
- _b.label = 1;
- case 1:
- _b.trys.push([1, 12, 13, 14]);
- mergedTags = void 0;
- if (this.tags) {
- mergedTags = this.mergeTagsToStringArray(this.tags);
- }
- url = (0, url_utils_1.default)(this.url, this.projectName, this.namePrefix, mergedTags);
- if (!this.customHeadersFunction) return [3 /*break*/, 3];
- return [4 /*yield*/, this.customHeadersFunction()];
- case 2:
- _a = _b.sent();
- return [3 /*break*/, 4];
- case 3:
- _a = this.headers;
- _b.label = 4;
- case 4:
- headers = _a;
- return [4 /*yield*/, (0, request_1.get)({
- url: url,
- etag: this.etag,
- appName: this.appName,
- timeout: this.timeout,
- instanceId: this.instanceId,
- headers: headers,
- httpOptions: this.httpOptions,
- supportedSpecVersion: SUPPORTED_SPEC_VERSION,
- })];
- case 5:
- res = _b.sent();
- if (!(res.status === 304)) return [3 /*break*/, 6];
- // No new data
- this.emit(events_2.UnleashEvents.Unchanged);
- return [3 /*break*/, 11];
- case 6:
- if (!!res.ok) return [3 /*break*/, 7];
- error = new Error("Response was not statusCode 2XX, but was ".concat(res.status));
- this.emit(events_2.UnleashEvents.Error, error);
- return [3 /*break*/, 11];
- case 7:
- _b.trys.push([7, 10, , 11]);
- return [4 /*yield*/, res.json()];
- case 8:
- data = _b.sent();
- if (res.headers.get('etag') !== null) {
- this.etag = res.headers.get('etag');
- }
- else {
- this.etag = undefined;
- }
- return [4 /*yield*/, this.save(data, true)];
- case 9:
- _b.sent();
- return [3 /*break*/, 11];
- case 10:
- err_3 = _b.sent();
- this.emit(events_2.UnleashEvents.Error, err_3);
- return [3 /*break*/, 11];
- case 11: return [3 /*break*/, 14];
- case 12:
- err_4 = _b.sent();
- e = err_4;
- if (e.code === 'ECONNRESET') {
- nextFetch = Math.max(Math.floor(this.refreshInterval / 2), 1000);
- this.emit(events_2.UnleashEvents.Warn, "Socket keep alive error, retrying in ".concat(nextFetch, "ms"));
- }
- else {
- this.emit(events_2.UnleashEvents.Error, err_4);
- }
- return [3 /*break*/, 14];
- case 13:
- this.timedFetch(nextFetch);
- return [7 /*endfinally*/];
- case 14: return [2 /*return*/];
- }
+ }
+ async fetch() {
+ if (this.stopped || !(this.refreshInterval > 0)) {
+ return;
+ }
+ let nextFetch = this.refreshInterval;
+ try {
+ let mergedTags;
+ if (this.tags) {
+ mergedTags = this.mergeTagsToStringArray(this.tags);
+ }
+ const url = (0, url_utils_1.default)(this.url, this.projectName, this.namePrefix, mergedTags);
+ const headers = this.customHeadersFunction
+ ? await this.customHeadersFunction()
+ : this.headers;
+ const res = await (0, request_1.get)({
+ url,
+ etag: this.etag,
+ appName: this.appName,
+ timeout: this.timeout,
+ instanceId: this.instanceId,
+ headers,
+ httpOptions: this.httpOptions,
+ supportedSpecVersion: SUPPORTED_SPEC_VERSION,
});
- });
- };
- Repository.prototype.mergeTagsToStringArray = function (tags) {
- return tags.map(function (tag) { return "".concat(tag.name, ":").concat(tag.value); });
- };
- Repository.prototype.stop = function () {
+ if (res.status === 304) {
+ // No new data
+ this.emit(events_2.UnleashEvents.Unchanged);
+ }
+ else if (!res.ok) {
+ const error = new Error(`Response was not statusCode 2XX, but was ${res.status}`);
+ this.emit(events_2.UnleashEvents.Error, error);
+ }
+ else {
+ try {
+ const data = await res.json();
+ if (res.headers.get('etag') !== null) {
+ this.etag = res.headers.get('etag');
+ }
+ else {
+ this.etag = undefined;
+ }
+ await this.save(data, true);
+ }
+ catch (err) {
+ this.emit(events_2.UnleashEvents.Error, err);
+ }
+ }
+ }
+ catch (err) {
+ const e = err;
+ if (e.code === 'ECONNRESET') {
+ nextFetch = Math.max(Math.floor(this.refreshInterval / 2), 1000);
+ this.emit(events_2.UnleashEvents.Warn, `Socket keep alive error, retrying in ${nextFetch}ms`);
+ }
+ else {
+ this.emit(events_2.UnleashEvents.Error, err);
+ }
+ }
+ finally {
+ this.timedFetch(nextFetch);
+ }
+ }
+ mergeTagsToStringArray(tags) {
+ return tags.map((tag) => `${tag.name}:${tag.value}`);
+ }
+ stop() {
this.stopped = true;
if (this.timer) {
clearTimeout(this.timer);
}
this.removeAllListeners();
- };
- Repository.prototype.getSegment = function (segmentId) {
+ }
+ getSegment(segmentId) {
return this.segments.get(segmentId);
- };
- Repository.prototype.getToggle = function (name) {
+ }
+ getToggle(name) {
return this.data[name];
- };
- Repository.prototype.getToggles = function () {
- var _this = this;
- return Object.keys(this.data).map(function (key) { return _this.data[key]; });
- };
- return Repository;
-}(events_1.EventEmitter));
+ }
+ getToggles() {
+ return Object.keys(this.data).map((key) => this.data[key]);
+ }
+}
exports.default = Repository;
//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git i/lib/repository/index.js.map w/lib/repository/index.js.map
index 473f69b..fa19d43 100644
--- i/lib/repository/index.js.map
+++ w/lib/repository/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git i/lib/repository/storage-provider-file.js w/lib/repository/storage-provider-file.js
index 939b6ab..9821432 100644
--- i/lib/repository/storage-provider-file.js
+++ w/lib/repository/storage-provider-file.js
@@ -1,104 +1,49 @@
"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
Object.defineProperty(exports, "__esModule", { value: true });
-var path_1 = require("path");
-var fs_1 = require("fs");
-var helpers_1 = require("../helpers");
-var writeFile = fs_1.promises.writeFile, readFile = fs_1.promises.readFile;
-var FileStorageProvider = /** @class */ (function () {
- function FileStorageProvider(backupPath) {
+const path_1 = require("path");
+const fs_1 = require("fs");
+const helpers_1 = require("../helpers");
+const { writeFile, readFile } = fs_1.promises;
+class FileStorageProvider {
+ constructor(backupPath) {
if (!backupPath) {
throw new Error('backup Path is required');
}
this.backupPath = backupPath;
}
- FileStorageProvider.prototype.getPath = function (key) {
- return (0, path_1.join)(this.backupPath, "/unleash-backup-".concat((0, helpers_1.safeName)(key), ".json"));
- };
- FileStorageProvider.prototype.set = function (key, data) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2 /*return*/, writeFile(this.getPath(key), JSON.stringify(data))];
- });
- });
- };
- FileStorageProvider.prototype.get = function (key) {
- return __awaiter(this, void 0, void 0, function () {
- var path, data, error_1;
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0:
- path = this.getPath(key);
- _a.label = 1;
- case 1:
- _a.trys.push([1, 3, , 4]);
- return [4 /*yield*/, readFile(path, 'utf8')];
- case 2:
- data = _a.sent();
- return [3 /*break*/, 4];
- case 3:
- error_1 = _a.sent();
- if (error_1.code !== 'ENOENT') {
- throw error_1;
- }
- else {
- return [2 /*return*/, undefined];
- }
- return [3 /*break*/, 4];
- case 4:
- if (!data || data.trim().length === 0) {
- return [2 /*return*/, undefined];
- }
- try {
- return [2 /*return*/, JSON.parse(data)];
- }
- catch (error) {
- if (error instanceof Error) {
- error.message = "Unleash storage failed parsing file ".concat(path, ": ").concat(error.message);
- }
- throw error;
- }
- return [2 /*return*/];
- }
- });
- });
- };
- return FileStorageProvider;
-}());
+ getPath(key) {
+ return (0, path_1.join)(this.backupPath, `/unleash-backup-${(0, helpers_1.safeName)(key)}.json`);
+ }
+ async set(key, data) {
+ return writeFile(this.getPath(key), JSON.stringify(data));
+ }
+ async get(key) {
+ const path = this.getPath(key);
+ let data;
+ try {
+ data = await readFile(path, 'utf8');
+ }
+ catch (error) {
+ if (error.code !== 'ENOENT') {
+ throw error;
+ }
+ else {
+ return undefined;
+ }
+ }
+ if (!data || data.trim().length === 0) {
+ return undefined;
+ }
+ try {
+ return JSON.parse(data);
+ }
+ catch (error) {
+ if (error instanceof Error) {
+ error.message = `Unleash storage failed parsing file ${path}: ${error.message}`;
+ }
+ throw error;
+ }
+ }
+}
exports.default = FileStorageProvider;
//# sourceMappingURL=storage-provider-file.js.map
\ No newline at end of file
diff --git i/lib/repository/storage-provider-file.js.map w/lib/repository/storage-provider-file.js.map
index 0038548..0c76ca6 100644
--- i/lib/repository/storage-provider-file.js.map
+++ w/lib/repository/storage-provider-file.js.map
@@ -1 +1 @@
-{"version":3,"file":"storage-provider-file.js","sourceRoot":"","sources":["../../src/repository/storage-provider-file.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA4B;AAC5B,yBAA8B;AAC9B,sCAAsC;AAG9B,IAAA,SAAS,GAAe,aAAQ,UAAvB,EAAE,QAAQ,GAAK,aAAQ,SAAb,CAAc;AAEzC;IAGI,6BAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEO,qCAAO,GAAf,UAAgB,GAAW;QACzB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,0BAAmB,IAAA,kBAAQ,EAAC,GAAG,CAAC,UAAO,CAAC,CAAC;IACxE,CAAC;IAEK,iCAAG,GAAT,UAAU,GAAW,EAAE,IAAO;;;gBAC5B,sBAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC;;;KAC3D;IAEK,iCAAG,GAAT,UAAU,GAAW;;;;;;wBACb,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;;;wBAGtB,qBAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAAA;;wBAAnC,IAAI,GAAG,SAA4B,CAAC;;;;wBAEpC,IAAI,OAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;4BAC3B,MAAM,OAAK,CAAC;yBACb;6BAAM;4BACL,sBAAO,SAAS,EAAC;yBAClB;;;wBAGH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;4BACrC,sBAAO,SAAS,EAAC;yBAClB;wBAED,IAAI;4BACF,sBAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;yBACzB;wBAAC,OAAO,KAAU,EAAE;4BACnB,IAAI,KAAK,YAAY,KAAK,EAAE;gCAC1B,KAAK,CAAC,OAAO,GAAG,8CAAuC,IAAI,eAAK,KAAK,CAAC,OAAO,CAAE,CAAC;6BACjF;4BACD,MAAM,KAAK,CAAC;yBACb;;;;;KACF;IACH,0BAAC;AAAD,CAAC,AA5CH,IA4CG"}
\ No newline at end of file
+{"version":3,"file":"storage-provider-file.js","sourceRoot":"","sources":["../../src/repository/storage-provider-file.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,2BAA8B;AAC9B,wCAAsC;AAGtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAQ,CAAC;AAEzC,MAAqB,mBAAmB;IAGpC,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAEO,OAAO,CAAC,GAAW;QACzB,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,IAAA,kBAAQ,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAO;QAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC;QACT,IAAI;YACF,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SACrC;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC3B,MAAM,KAAK,CAAC;aACb;iBAAM;gBACL,OAAO,SAAS,CAAC;aAClB;SACF;QAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YACrC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzB;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,KAAK,CAAC,OAAO,GAAG,uCAAuC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACjF;YACD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF;AA5CH,sCA4CG"}
\ No newline at end of file
diff --git i/lib/repository/storage-provider-in-mem.js w/lib/repository/storage-provider-in-mem.js
index 1aaaf8a..5fc5497 100644
--- i/lib/repository/storage-provider-in-mem.js
+++ w/lib/repository/storage-provider-in-mem.js
@@ -1,61 +1,16 @@
"use strict";
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
Object.defineProperty(exports, "__esModule", { value: true });
-var InMemStorageProvider = /** @class */ (function () {
- function InMemStorageProvider() {
+class InMemStorageProvider {
+ constructor() {
this.store = new Map();
}
- InMemStorageProvider.prototype.set = function (key, data) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- this.store.set(key, data);
- return [2 /*return*/, Promise.resolve()];
- });
- });
- };
- InMemStorageProvider.prototype.get = function (key) {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- return [2 /*return*/, Promise.resolve(this.store.get(key))];
- });
- });
- };
- return InMemStorageProvider;
-}());
+ async set(key, data) {
+ this.store.set(key, data);
+ return Promise.resolve();
+ }
+ async get(key) {
+ return Promise.resolve(this.store.get(key));
+ }
+}
exports.default = InMemStorageProvider;
//# sourceMappingURL=storage-provider-in-mem.js.map
\ No newline at end of file
diff --git i/lib/repository/storage-provider-in-mem.js.map w/lib/repository/storage-provider-in-mem.js.map
index f9af165..70b8fe4 100644
--- i/lib/repository/storage-provider-in-mem.js.map
+++ w/lib/repository/storage-provider-in-mem.js.map
@@ -1 +1 @@
-{"version":3,"file":"storage-provider-in-mem.js","sourceRoot":"","sources":["../../src/repository/storage-provider-in-mem.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;IAAA;QACU,UAAK,GAAmB,IAAI,GAAG,EAAa,CAAC;IAUvD,CAAC;IARO,kCAAG,GAAT,UAAU,GAAW,EAAE,IAAO;;;gBAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC1B,sBAAO,OAAO,CAAC,OAAO,EAAE,EAAC;;;KAC1B;IAEK,kCAAG,GAAT,UAAU,GAAW;;;gBACnB,sBAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAC;;;KAC7C;IACH,2BAAC;AAAD,CAAC,AAXD,IAWC"}
\ No newline at end of file
+{"version":3,"file":"storage-provider-in-mem.js","sourceRoot":"","sources":["../../src/repository/storage-provider-in-mem.ts"],"names":[],"mappings":";;AAEA,MAAqB,oBAAoB;IAAzC;QACU,UAAK,GAAmB,IAAI,GAAG,EAAa,CAAC;IAUvD,CAAC;IARC,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAO;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF;AAXD,uCAWC"}
\ No newline at end of file
diff --git i/lib/request.js w/lib/request.js
index 0fb3da4..96b2b39 100644
--- i/lib/request.js
+++ w/lib/request.js
@@ -1,23 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.get = exports.post = exports.buildHeaders = exports.getDefaultAgent = void 0;
-var fetch = require("make-fetch-happen");
-var http = require("http");
-var https = require("https");
-var httpAgent = new http.Agent({
+const fetch = require("make-fetch-happen");
+const http = require("http");
+const https = require("https");
+const httpAgent = new http.Agent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
timeout: 10 * 1000,
});
-var httpsAgent = new https.Agent({
+const httpsAgent = new https.Agent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
timeout: 10 * 1000,
});
-var getDefaultAgent = function (url) { return (url.protocol === 'https:' ? httpsAgent : httpAgent); };
+const getDefaultAgent = (url) => (url.protocol === 'https:' ? httpsAgent : httpAgent);
exports.getDefaultAgent = getDefaultAgent;
-var buildHeaders = function (appName, instanceId, etag, contentType, custom, specVersionSupported) {
- var head = {};
+const buildHeaders = (appName, instanceId, etag, contentType, custom, specVersionSupported) => {
+ const head = {};
if (appName) {
head['UNLEASH-APPNAME'] = appName;
head['User-Agent'] = appName;
@@ -40,31 +40,25 @@ var buildHeaders = function (appName, instanceId, etag, contentType, custom, spe
return head;
};
exports.buildHeaders = buildHeaders;
-var post = function (_a) {
- var url = _a.url, appName = _a.appName, timeout = _a.timeout, instanceId = _a.instanceId, headers = _a.headers, json = _a.json, httpOptions = _a.httpOptions;
- return fetch(url, {
- timeout: timeout || 10000,
- method: 'POST',
- agent: (httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.agent) || exports.getDefaultAgent,
- headers: (0, exports.buildHeaders)(appName, instanceId, undefined, 'application/json', headers),
- body: JSON.stringify(json),
- strictSSL: httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.rejectUnauthorized,
- });
-};
+const post = ({ url, appName, timeout, instanceId, headers, json, httpOptions, }) => fetch(url, {
+ timeout: timeout || 10000,
+ method: 'POST',
+ agent: (httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.agent) || exports.getDefaultAgent,
+ headers: (0, exports.buildHeaders)(appName, instanceId, undefined, 'application/json', headers),
+ body: JSON.stringify(json),
+ strictSSL: httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.rejectUnauthorized,
+});
exports.post = post;
-var get = function (_a) {
- var url = _a.url, etag = _a.etag, appName = _a.appName, timeout = _a.timeout, instanceId = _a.instanceId, headers = _a.headers, httpOptions = _a.httpOptions, supportedSpecVersion = _a.supportedSpecVersion;
- return fetch(url, {
- method: 'GET',
- timeout: timeout || 10000,
- agent: (httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.agent) || exports.getDefaultAgent,
- headers: (0, exports.buildHeaders)(appName, instanceId, etag, undefined, headers, supportedSpecVersion),
- retry: {
- retries: 2,
- maxTimeout: timeout || 10000,
- },
- strictSSL: httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.rejectUnauthorized,
- });
-};
+const get = ({ url, etag, appName, timeout, instanceId, headers, httpOptions, supportedSpecVersion, }) => fetch(url, {
+ method: 'GET',
+ timeout: timeout || 10000,
+ agent: (httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.agent) || exports.getDefaultAgent,
+ headers: (0, exports.buildHeaders)(appName, instanceId, etag, undefined, headers, supportedSpecVersion),
+ retry: {
+ retries: 2,
+ maxTimeout: timeout || 10000,
+ },
+ strictSSL: httpOptions === null || httpOptions === void 0 ? void 0 : httpOptions.rejectUnauthorized,
+});
exports.get = get;
//# sourceMappingURL=request.js.map
\ No newline at end of file
diff --git i/lib/request.js.map w/lib/request.js.map
index a0e6823..1bfa777 100644
--- i/lib/request.js.map
+++ w/lib/request.js.map
@@ -1 +1 @@
-{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git i/lib/strategy/application-hostname-strategy.js w/lib/strategy/application-hostname-strategy.js
index f0edd9f..1a75812 100644
--- i/lib/strategy/application-hostname-strategy.js
+++ w/lib/strategy/application-hostname-strategy.js
@@ -1,30 +1,13 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var os_1 = require("os");
-var strategy_1 = require("./strategy");
-var ApplicationHostnameStrategy = /** @class */ (function (_super) {
- __extends(ApplicationHostnameStrategy, _super);
- function ApplicationHostnameStrategy() {
- var _this = _super.call(this, 'applicationHostname') || this;
- _this.hostname = (process.env.HOSTNAME || (0, os_1.hostname)() || 'undefined').toLowerCase();
- return _this;
+const os_1 = require("os");
+const strategy_1 = require("./strategy");
+class ApplicationHostnameStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('applicationHostname');
+ this.hostname = (process.env.HOSTNAME || (0, os_1.hostname)() || 'undefined').toLowerCase();
}
- ApplicationHostnameStrategy.prototype.isEnabled = function (parameters) {
+ isEnabled(parameters) {
if (!parameters.hostNames) {
return false;
}
@@ -32,8 +15,7 @@ var ApplicationHostnameStrategy = /** @class */ (function (_super) {
.toLowerCase()
.split(/\s*,\s*/)
.includes(this.hostname);
- };
- return ApplicationHostnameStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = ApplicationHostnameStrategy;
//# sourceMappingURL=application-hostname-strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/application-hostname-strategy.js.map w/lib/strategy/application-hostname-strategy.js.map
index af2097d..d1f1524 100644
--- i/lib/strategy/application-hostname-strategy.js.map
+++ w/lib/strategy/application-hostname-strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"application-hostname-strategy.js","sourceRoot":"","sources":["../../src/strategy/application-hostname-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yBAA8B;AAC9B,uCAAsC;AAEtC;IAAyD,+CAAQ;IAG/D;QAAA,YACE,kBAAM,qBAAqB,CAAC,SAE7B;QADC,KAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAA,aAAQ,GAAE,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;;IACpF,CAAC;IAED,+CAAS,GAAT,UAAU,UAAe;QACvB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,UAAU,CAAC,SAAS;aACxB,WAAW,EAAE;aACb,KAAK,CAAC,SAAS,CAAC;aAChB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACH,kCAAC;AAAD,CAAC,AAlBD,CAAyD,mBAAQ,GAkBhE"}
\ No newline at end of file
+{"version":3,"file":"application-hostname-strategy.js","sourceRoot":"","sources":["../../src/strategy/application-hostname-strategy.ts"],"names":[],"mappings":";;AAAA,2BAA8B;AAC9B,yCAAsC;AAEtC,MAAqB,2BAA4B,SAAQ,mBAAQ;IAG/D;QACE,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAA,aAAQ,GAAE,IAAI,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACpF,CAAC;IAED,SAAS,CAAC,UAAe;QACvB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,UAAU,CAAC,SAAS;aACxB,WAAW,EAAE;aACb,KAAK,CAAC,SAAS,CAAC;aAChB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AAlBD,8CAkBC"}
\ No newline at end of file
diff --git i/lib/strategy/default-strategy.js w/lib/strategy/default-strategy.js
index 56d59be..72e1e7b 100644
--- i/lib/strategy/default-strategy.js
+++ w/lib/strategy/default-strategy.js
@@ -1,30 +1,13 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var DefaultStrategy = /** @class */ (function (_super) {
- __extends(DefaultStrategy, _super);
- function DefaultStrategy() {
- return _super.call(this, 'default') || this;
+const strategy_1 = require("./strategy");
+class DefaultStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('default');
}
- DefaultStrategy.prototype.isEnabled = function () {
+ isEnabled() {
return true;
- };
- return DefaultStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = DefaultStrategy;
//# sourceMappingURL=default-strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/default-strategy.js.map w/lib/strategy/default-strategy.js.map
index dd5b9ca..6a417a7 100644
--- i/lib/strategy/default-strategy.js.map
+++ w/lib/strategy/default-strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"default-strategy.js","sourceRoot":"","sources":["../../src/strategy/default-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAEtC;IAA6C,mCAAQ;IACnD;eACE,kBAAM,SAAS,CAAC;IAClB,CAAC;IAED,mCAAS,GAAT;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IACH,sBAAC;AAAD,CAAC,AARD,CAA6C,mBAAQ,GAQpD"}
\ No newline at end of file
+{"version":3,"file":"default-strategy.js","sourceRoot":"","sources":["../../src/strategy/default-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,MAAqB,eAAgB,SAAQ,mBAAQ;IACnD;QACE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AARD,kCAQC"}
\ No newline at end of file
diff --git i/lib/strategy/flexible-rollout-strategy.js w/lib/strategy/flexible-rollout-strategy.js
index 00d2e70..e17471a 100644
--- i/lib/strategy/flexible-rollout-strategy.js
+++ w/lib/strategy/flexible-rollout-strategy.js
@@ -1,38 +1,21 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var util_1 = require("./util");
-var helpers_1 = require("../helpers");
-var STICKINESS = {
+const strategy_1 = require("./strategy");
+const util_1 = require("./util");
+const helpers_1 = require("../helpers");
+const STICKINESS = {
default: 'default',
random: 'random',
};
-var FlexibleRolloutStrategy = /** @class */ (function (_super) {
- __extends(FlexibleRolloutStrategy, _super);
- function FlexibleRolloutStrategy(randomGenerator) {
- var _this = _super.call(this, 'flexibleRollout') || this;
- _this.randomGenerator = function () { return "".concat(Math.round(Math.random() * 10000) + 1); };
+class FlexibleRolloutStrategy extends strategy_1.Strategy {
+ constructor(randomGenerator) {
+ super('flexibleRollout');
+ this.randomGenerator = () => `${Math.round(Math.random() * 10000) + 1}`;
if (randomGenerator) {
- _this.randomGenerator = randomGenerator;
+ this.randomGenerator = randomGenerator;
}
- return _this;
}
- FlexibleRolloutStrategy.prototype.resolveStickiness = function (stickiness, context) {
+ resolveStickiness(stickiness, context) {
switch (stickiness) {
case STICKINESS.default:
return context.userId || context.sessionId || this.randomGenerator();
@@ -41,19 +24,18 @@ var FlexibleRolloutStrategy = /** @class */ (function (_super) {
default:
return (0, helpers_1.resolveContextValue)(context, stickiness);
}
- };
- FlexibleRolloutStrategy.prototype.isEnabled = function (parameters, context) {
- var groupId = parameters.groupId || context.featureToggle || '';
- var percentage = Number(parameters.rollout);
- var stickiness = parameters.stickiness || STICKINESS.default;
- var stickinessId = this.resolveStickiness(stickiness, context);
+ }
+ isEnabled(parameters, context) {
+ const groupId = parameters.groupId || context.featureToggle || '';
+ const percentage = Number(parameters.rollout);
+ const stickiness = parameters.stickiness || STICKINESS.default;
+ const stickinessId = this.resolveStickiness(stickiness, context);
if (!stickinessId) {
return false;
}
- var normalizedUserId = (0, util_1.default)(stickinessId, groupId);
+ const normalizedUserId = (0, util_1.default)(stickinessId, groupId);
return percentage > 0 && normalizedUserId <= percentage;
- };
- return FlexibleRolloutStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = FlexibleRolloutStrategy;
//# sourceMappingURL=flexible-rollout-strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/flexible-rollout-strategy.js.map w/lib/strategy/flexible-rollout-strategy.js.map
index e9aad7e..890ad25 100644
--- i/lib/strategy/flexible-rollout-strategy.js.map
+++ w/lib/strategy/flexible-rollout-strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"flexible-rollout-strategy.js","sourceRoot":"","sources":["../../src/strategy/flexible-rollout-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAEtC,+BAAqC;AACrC,sCAAiD;AAEjD,IAAM,UAAU,GAAG;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF;IAAqD,2CAAQ;IAG3D,iCAAY,eAA0B;QAAtC,YACE,kBAAM,iBAAiB,CAAC,SAIzB;QAPO,qBAAe,GAAa,cAAM,OAAA,UAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAE,EAA1C,CAA0C,CAAC;QAInF,IAAI,eAAe,EAAE;YACnB,KAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC;;IACH,CAAC;IAED,mDAAiB,GAAjB,UAAkB,UAAkB,EAAE,OAAgB;QACpD,QAAQ,UAAU,EAAE;YAClB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvE,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC;gBACE,OAAO,IAAA,6BAAmB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACnD;IACH,CAAC;IAED,2CAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACzC,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAClE,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAM,UAAU,GAAW,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;QACvE,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QACD,IAAM,gBAAgB,GAAG,IAAA,cAAe,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC1D,CAAC;IACH,8BAAC;AAAD,CAAC,AAjCD,CAAqD,mBAAQ,GAiC5D"}
\ No newline at end of file
+{"version":3,"file":"flexible-rollout-strategy.js","sourceRoot":"","sources":["../../src/strategy/flexible-rollout-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,iCAAqC;AACrC,wCAAiD;AAEjD,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAqB,uBAAwB,SAAQ,mBAAQ;IAG3D,YAAY,eAA0B;QACpC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAHnB,oBAAe,GAAa,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAInF,IAAI,eAAe,EAAE;YACnB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC;IACH,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,OAAgB;QACpD,QAAQ,UAAU,EAAE;YAClB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvE,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC;gBACE,OAAO,IAAA,6BAAmB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SACnD;IACH,CAAC;IAED,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAW,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,OAAO,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,gBAAgB,GAAG,IAAA,cAAe,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC1D,CAAC;CACF;AAjCD,0CAiCC"}
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-random.js w/lib/strategy/gradual-rollout-random.js
index ab1e1b1..84285db 100644
--- i/lib/strategy/gradual-rollout-random.js
+++ w/lib/strategy/gradual-rollout-random.js
@@ -1,36 +1,18 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var GradualRolloutRandomStrategy = /** @class */ (function (_super) {
- __extends(GradualRolloutRandomStrategy, _super);
- function GradualRolloutRandomStrategy(randomGenerator) {
- var _this = _super.call(this, 'gradualRolloutRandom') || this;
- _this.randomGenerator = function () { return Math.floor(Math.random() * 100) + 1; };
- _this.randomGenerator = randomGenerator || _this.randomGenerator;
- return _this;
+const strategy_1 = require("./strategy");
+class GradualRolloutRandomStrategy extends strategy_1.Strategy {
+ constructor(randomGenerator) {
+ super('gradualRolloutRandom');
+ this.randomGenerator = () => Math.floor(Math.random() * 100) + 1;
+ this.randomGenerator = randomGenerator || this.randomGenerator;
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
- GradualRolloutRandomStrategy.prototype.isEnabled = function (parameters, context) {
- var percentage = Number(parameters.percentage);
- var random = this.randomGenerator();
+ isEnabled(parameters, context) {
+ const percentage = Number(parameters.percentage);
+ const random = this.randomGenerator();
return percentage >= random;
- };
- return GradualRolloutRandomStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = GradualRolloutRandomStrategy;
//# sourceMappingURL=gradual-rollout-random.js.map
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-random.js.map w/lib/strategy/gradual-rollout-random.js.map
index f924ed9..a795109 100644
--- i/lib/strategy/gradual-rollout-random.js.map
+++ w/lib/strategy/gradual-rollout-random.js.map
@@ -1 +1 @@
-{"version":3,"file":"gradual-rollout-random.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-random.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAGtC;IAA0D,gDAAQ;IAGhE,sCAAY,eAA0B;QAAtC,YACE,kBAAM,sBAAsB,CAAC,SAE9B;QALO,qBAAe,GAAa,cAAM,OAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAnC,CAAmC,CAAC;QAI5E,KAAI,CAAC,eAAe,GAAG,eAAe,IAAI,KAAI,CAAC,eAAe,CAAC;;IACjE,CAAC;IAED,6DAA6D;IAC7D,gDAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACzC,IAAM,UAAU,GAAW,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzD,IAAM,MAAM,GAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,OAAO,UAAU,IAAI,MAAM,CAAC;IAC9B,CAAC;IACH,mCAAC;AAAD,CAAC,AAdD,CAA0D,mBAAQ,GAcjE"}
\ No newline at end of file
+{"version":3,"file":"gradual-rollout-random.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-random.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAGtC,MAAqB,4BAA6B,SAAQ,mBAAQ;IAGhE,YAAY,eAA0B;QACpC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAHxB,oBAAe,GAAa,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAI5E,IAAI,CAAC,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC;IACjE,CAAC;IAED,6DAA6D;IAC7D,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,MAAM,UAAU,GAAW,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,MAAM,GAAW,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,OAAO,UAAU,IAAI,MAAM,CAAC;IAC9B,CAAC;CACF;AAdD,+CAcC"}
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-session-id.js w/lib/strategy/gradual-rollout-session-id.js
index 88ecb48..a4fad40 100644
--- i/lib/strategy/gradual-rollout-session-id.js
+++ w/lib/strategy/gradual-rollout-session-id.js
@@ -1,38 +1,21 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var util_1 = require("./util");
-var GradualRolloutSessionIdStrategy = /** @class */ (function (_super) {
- __extends(GradualRolloutSessionIdStrategy, _super);
- function GradualRolloutSessionIdStrategy() {
- return _super.call(this, 'gradualRolloutSessionId') || this;
+const strategy_1 = require("./strategy");
+const util_1 = require("./util");
+class GradualRolloutSessionIdStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('gradualRolloutSessionId');
}
- GradualRolloutSessionIdStrategy.prototype.isEnabled = function (parameters, context) {
- var sessionId = context.sessionId;
+ isEnabled(parameters, context) {
+ const { sessionId } = context;
if (!sessionId) {
return false;
}
- var percentage = Number(parameters.percentage);
- var groupId = parameters.groupId || '';
- var normalizedId = (0, util_1.default)(sessionId, groupId);
+ const percentage = Number(parameters.percentage);
+ const groupId = parameters.groupId || '';
+ const normalizedId = (0, util_1.default)(sessionId, groupId);
return percentage > 0 && normalizedId <= percentage;
- };
- return GradualRolloutSessionIdStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = GradualRolloutSessionIdStrategy;
//# sourceMappingURL=gradual-rollout-session-id.js.map
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-session-id.js.map w/lib/strategy/gradual-rollout-session-id.js.map
index eac8ea2..3231587 100644
--- i/lib/strategy/gradual-rollout-session-id.js.map
+++ w/lib/strategy/gradual-rollout-session-id.js.map
@@ -1 +1 @@
-{"version":3,"file":"gradual-rollout-session-id.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-session-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,+BAAqC;AAGrC;IAA6D,mDAAQ;IACnE;eACE,kBAAM,yBAAyB,CAAC;IAClC,CAAC;IAED,mDAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACjC,IAAA,SAAS,GAAK,OAAO,UAAZ,CAAa;QAC9B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QAED,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjD,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAEzC,IAAM,YAAY,GAAG,IAAA,cAAe,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,UAAU,GAAG,CAAC,IAAI,YAAY,IAAI,UAAU,CAAC;IACtD,CAAC;IACH,sCAAC;AAAD,CAAC,AAlBD,CAA6D,mBAAQ,GAkBpE"}
\ No newline at end of file
+{"version":3,"file":"gradual-rollout-session-id.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-session-id.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AACtC,iCAAqC;AAGrC,MAAqB,+BAAgC,SAAQ,mBAAQ;IACnE;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAA,cAAe,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,UAAU,GAAG,CAAC,IAAI,YAAY,IAAI,UAAU,CAAC;IACtD,CAAC;CACF;AAlBD,kDAkBC"}
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-user-id.js w/lib/strategy/gradual-rollout-user-id.js
index 48a9bce..71402c0 100644
--- i/lib/strategy/gradual-rollout-user-id.js
+++ w/lib/strategy/gradual-rollout-user-id.js
@@ -1,38 +1,21 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var util_1 = require("./util");
-var GradualRolloutUserIdStrategy = /** @class */ (function (_super) {
- __extends(GradualRolloutUserIdStrategy, _super);
- function GradualRolloutUserIdStrategy() {
- return _super.call(this, 'gradualRolloutUserId') || this;
+const strategy_1 = require("./strategy");
+const util_1 = require("./util");
+class GradualRolloutUserIdStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('gradualRolloutUserId');
}
- GradualRolloutUserIdStrategy.prototype.isEnabled = function (parameters, context) {
- var userId = context.userId;
+ isEnabled(parameters, context) {
+ const { userId } = context;
if (!userId) {
return false;
}
- var percentage = Number(parameters.percentage);
- var groupId = parameters.groupId || '';
- var normalizedUserId = (0, util_1.default)(userId, groupId);
+ const percentage = Number(parameters.percentage);
+ const groupId = parameters.groupId || '';
+ const normalizedUserId = (0, util_1.default)(userId, groupId);
return percentage > 0 && normalizedUserId <= percentage;
- };
- return GradualRolloutUserIdStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = GradualRolloutUserIdStrategy;
//# sourceMappingURL=gradual-rollout-user-id.js.map
\ No newline at end of file
diff --git i/lib/strategy/gradual-rollout-user-id.js.map w/lib/strategy/gradual-rollout-user-id.js.map
index 409e90d..215a564 100644
--- i/lib/strategy/gradual-rollout-user-id.js.map
+++ w/lib/strategy/gradual-rollout-user-id.js.map
@@ -1 +1 @@
-{"version":3,"file":"gradual-rollout-user-id.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-user-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAEtC,+BAAqC;AAErC;IAA0D,gDAAQ;IAChE;eACE,kBAAM,sBAAsB,CAAC;IAC/B,CAAC;IAED,gDAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACjC,IAAA,MAAM,GAAK,OAAO,OAAZ,CAAa;QAC3B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QAED,IAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjD,IAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAEzC,IAAM,gBAAgB,GAAG,IAAA,cAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE1D,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC1D,CAAC;IACH,mCAAC;AAAD,CAAC,AAlBD,CAA0D,mBAAQ,GAkBjE"}
\ No newline at end of file
+{"version":3,"file":"gradual-rollout-user-id.js","sourceRoot":"","sources":["../../src/strategy/gradual-rollout-user-id.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,iCAAqC;AAErC,MAAqB,4BAA6B,SAAQ,mBAAQ;IAChE;QACE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,KAAK,CAAC;SACd;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC;QAEzC,MAAM,gBAAgB,GAAG,IAAA,cAAe,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE1D,OAAO,UAAU,GAAG,CAAC,IAAI,gBAAgB,IAAI,UAAU,CAAC;IAC1D,CAAC;CACF;AAlBD,+CAkBC"}
\ No newline at end of file
diff --git i/lib/strategy/index.js w/lib/strategy/index.js
index 052d569..b114e0d 100644
--- i/lib/strategy/index.js
+++ w/lib/strategy/index.js
@@ -1,14 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultStrategies = exports.Strategy = void 0;
-var default_strategy_1 = require("./default-strategy");
-var application_hostname_strategy_1 = require("./application-hostname-strategy");
-var gradual_rollout_random_1 = require("./gradual-rollout-random");
-var gradual_rollout_user_id_1 = require("./gradual-rollout-user-id");
-var gradual_rollout_session_id_1 = require("./gradual-rollout-session-id");
-var user_with_id_strategy_1 = require("./user-with-id-strategy");
-var remote_addresss_strategy_1 = require("./remote-addresss-strategy");
-var flexible_rollout_strategy_1 = require("./flexible-rollout-strategy");
+const default_strategy_1 = require("./default-strategy");
+const application_hostname_strategy_1 = require("./application-hostname-strategy");
+const gradual_rollout_random_1 = require("./gradual-rollout-random");
+const gradual_rollout_user_id_1 = require("./gradual-rollout-user-id");
+const gradual_rollout_session_id_1 = require("./gradual-rollout-session-id");
+const user_with_id_strategy_1 = require("./user-with-id-strategy");
+const remote_addresss_strategy_1 = require("./remote-addresss-strategy");
+const flexible_rollout_strategy_1 = require("./flexible-rollout-strategy");
var strategy_1 = require("./strategy");
Object.defineProperty(exports, "Strategy", { enumerable: true, get: function () { return strategy_1.Strategy; } });
exports.defaultStrategies = [
diff --git i/lib/strategy/index.js.map w/lib/strategy/index.js.map
index 0bbc7aa..13f7d04 100644
--- i/lib/strategy/index.js.map
+++ w/lib/strategy/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":";;;AAAA,uDAAiD;AACjD,iFAA0E;AAC1E,mEAAoE;AACpE,qEAAqE;AACrE,2EAA2E;AAC3E,iEAAyD;AACzD,uEAA+D;AAC/D,yEAAkE;AAGlE,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGJ,QAAA,iBAAiB,GAAoB;IAChD,IAAI,0BAAe,EAAE;IACrB,IAAI,uCAA2B,EAAE;IACjC,IAAI,gCAA4B,EAAE;IAClC,IAAI,iCAA4B,EAAE;IAClC,IAAI,oCAA+B,EAAE;IACrC,IAAI,+BAAkB,EAAE;IACxB,IAAI,kCAAqB,EAAE;IAC3B,IAAI,mCAAuB,EAAE;CAC9B,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/strategy/index.ts"],"names":[],"mappings":";;;AAAA,yDAAiD;AACjD,mFAA0E;AAC1E,qEAAoE;AACpE,uEAAqE;AACrE,6EAA2E;AAC3E,mEAAyD;AACzD,yEAA+D;AAC/D,2EAAkE;AAGlE,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGJ,QAAA,iBAAiB,GAAoB;IAChD,IAAI,0BAAe,EAAE;IACrB,IAAI,uCAA2B,EAAE;IACjC,IAAI,gCAA4B,EAAE;IAClC,IAAI,iCAA4B,EAAE;IAClC,IAAI,oCAA+B,EAAE;IACrC,IAAI,+BAAkB,EAAE;IACxB,IAAI,kCAAqB,EAAE;IAC3B,IAAI,mCAAuB,EAAE;CAC9B,CAAC"}
\ No newline at end of file
diff --git i/lib/strategy/remote-addresss-strategy.js w/lib/strategy/remote-addresss-strategy.js
index 147ab44..5c5388c 100644
--- i/lib/strategy/remote-addresss-strategy.js
+++ w/lib/strategy/remote-addresss-strategy.js
@@ -1,32 +1,16 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var ip = require('ip');
-var RemoteAddressStrategy = /** @class */ (function (_super) {
- __extends(RemoteAddressStrategy, _super);
- function RemoteAddressStrategy() {
- return _super.call(this, 'remoteAddress') || this;
+const strategy_1 = require("./strategy");
+const ip = require('ip');
+class RemoteAddressStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('remoteAddress');
}
- RemoteAddressStrategy.prototype.isEnabled = function (parameters, context) {
+ isEnabled(parameters, context) {
if (!parameters.IPs) {
return false;
}
- return parameters.IPs.split(/\s*,\s*/).some(function (range) {
+ return parameters.IPs.split(/\s*,\s*/).some((range) => {
if (range === context.remoteAddress) {
return true;
}
@@ -40,8 +24,7 @@ var RemoteAddressStrategy = /** @class */ (function (_super) {
}
return false;
});
- };
- return RemoteAddressStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = RemoteAddressStrategy;
//# sourceMappingURL=remote-addresss-strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/remote-addresss-strategy.js.map w/lib/strategy/remote-addresss-strategy.js.map
index 02d0201..3d2e926 100644
--- i/lib/strategy/remote-addresss-strategy.js.map
+++ w/lib/strategy/remote-addresss-strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"remote-addresss-strategy.js","sourceRoot":"","sources":["../../src/strategy/remote-addresss-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAGtC,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB;IAAmD,yCAAQ;IACzD;eACE,kBAAM,eAAe,CAAC;IACxB,CAAC;IAED,yCAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAC,KAAa;YACxD,IAAI,KAAK,KAAK,OAAO,CAAC,aAAa,EAAE;gBACnC,OAAO,IAAI,CAAC;aACb;YACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI;oBACF,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBAC7D;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IACH,4BAAC;AAAD,CAAC,AAvBD,CAAmD,mBAAQ,GAuB1D"}
\ No newline at end of file
+{"version":3,"file":"remote-addresss-strategy.js","sourceRoot":"","sources":["../../src/strategy/remote-addresss-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAGtC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEzB,MAAqB,qBAAsB,SAAQ,mBAAQ;IACzD;QACE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE;YACrE,IAAI,KAAK,KAAK,OAAO,CAAC,aAAa,EAAE;gBACnC,OAAO,IAAI,CAAC;aACb;YACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI;oBACF,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBAC7D;gBAAC,OAAO,GAAG,EAAE;oBACZ,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvBD,wCAuBC"}
\ No newline at end of file
diff --git i/lib/strategy/strategy.js w/lib/strategy/strategy.js
index 6113939..42c001e 100644
--- i/lib/strategy/strategy.js
+++ w/lib/strategy/strategy.js
@@ -1,19 +1,8 @@
"use strict";
-var __values = (this && this.__values) || function(o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m) return m.call(o);
- if (o && typeof o.length === "number") return {
- next: function () {
- if (o && i >= o.length) o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Strategy = exports.Operator = void 0;
-var semver_1 = require("semver");
-var helpers_1 = require("../helpers");
+const semver_1 = require("semver");
+const helpers_1 = require("../helpers");
var Operator;
(function (Operator) {
Operator["IN"] = "IN";
@@ -32,41 +21,41 @@ var Operator;
Operator["SEMVER_GT"] = "SEMVER_GT";
Operator["SEMVER_LT"] = "SEMVER_LT";
})(Operator = exports.Operator || (exports.Operator = {}));
-var cleanValues = function (values) { return values.filter(function (v) { return !!v; }).map(function (v) { return v.trim(); }); };
-var isStrictSemver = function (version) { return (0, semver_1.clean)(version) === version; };
-var InOperator = function (constraint, context) {
- var field = constraint.contextName;
- var values = cleanValues(constraint.values);
- var contextValue = (0, helpers_1.resolveContextValue)(context, field);
- var isIn = values.some(function (val) { return val === contextValue; });
+const cleanValues = (values) => values.filter((v) => !!v).map((v) => v.trim());
+const isStrictSemver = (version) => (0, semver_1.clean)(version) === version;
+const InOperator = (constraint, context) => {
+ const field = constraint.contextName;
+ const values = cleanValues(constraint.values);
+ const contextValue = (0, helpers_1.resolveContextValue)(context, field);
+ const isIn = values.some((val) => val === contextValue);
return constraint.operator === Operator.IN ? isIn : !isIn;
};
-var StringOperator = function (constraint, context) {
- var contextName = constraint.contextName, operator = constraint.operator, caseInsensitive = constraint.caseInsensitive;
- var values = cleanValues(constraint.values);
- var contextValue = (0, helpers_1.resolveContextValue)(context, contextName);
+const StringOperator = (constraint, context) => {
+ const { contextName, operator, caseInsensitive } = constraint;
+ let values = cleanValues(constraint.values);
+ let contextValue = (0, helpers_1.resolveContextValue)(context, contextName);
if (caseInsensitive) {
- values = values.map(function (v) { return v.toLocaleLowerCase(); });
+ values = values.map((v) => v.toLocaleLowerCase());
contextValue = contextValue === null || contextValue === void 0 ? void 0 : contextValue.toLocaleLowerCase();
}
if (typeof contextValue !== 'string') {
return false;
}
if (operator === Operator.STR_STARTS_WITH) {
- return values.some(function (val) { return contextValue === null || contextValue === void 0 ? void 0 : contextValue.startsWith(val); });
+ return values.some((val) => contextValue === null || contextValue === void 0 ? void 0 : contextValue.startsWith(val));
}
if (operator === Operator.STR_ENDS_WITH) {
- return values.some(function (val) { return contextValue === null || contextValue === void 0 ? void 0 : contextValue.endsWith(val); });
+ return values.some((val) => contextValue === null || contextValue === void 0 ? void 0 : contextValue.endsWith(val));
}
if (operator === Operator.STR_CONTAINS) {
- return values.some(function (val) { return contextValue === null || contextValue === void 0 ? void 0 : contextValue.includes(val); });
+ return values.some((val) => contextValue === null || contextValue === void 0 ? void 0 : contextValue.includes(val));
}
return false;
};
-var SemverOperator = function (constraint, context) {
- var contextName = constraint.contextName, operator = constraint.operator;
- var value = constraint.value;
- var contextValue = (0, helpers_1.resolveContextValue)(context, contextName);
+const SemverOperator = (constraint, context) => {
+ const { contextName, operator } = constraint;
+ const value = constraint.value;
+ const contextValue = (0, helpers_1.resolveContextValue)(context, contextName);
if (!contextValue || !isStrictSemver(contextValue)) {
return false;
}
@@ -86,10 +75,10 @@ var SemverOperator = function (constraint, context) {
}
return false;
};
-var DateOperator = function (constraint, context) {
- var operator = constraint.operator;
- var value = new Date(constraint.value);
- var currentTime = context.currentTime ? new Date(context.currentTime) : new Date();
+const DateOperator = (constraint, context) => {
+ const { operator } = constraint;
+ const value = new Date(constraint.value);
+ const currentTime = context.currentTime ? new Date(context.currentTime) : new Date();
if (operator === Operator.DATE_AFTER) {
return currentTime > value;
}
@@ -98,11 +87,11 @@ var DateOperator = function (constraint, context) {
}
return false;
};
-var NumberOperator = function (constraint, context) {
- var field = constraint.contextName;
- var operator = constraint.operator;
- var value = Number(constraint.value);
- var contextValue = Number((0, helpers_1.resolveContextValue)(context, field));
+const NumberOperator = (constraint, context) => {
+ const field = constraint.contextName;
+ const { operator } = constraint;
+ const value = Number(constraint.value);
+ const contextValue = Number((0, helpers_1.resolveContextValue)(context, field));
if (Number.isNaN(value) || Number.isNaN(contextValue)) {
return false;
}
@@ -123,7 +112,7 @@ var NumberOperator = function (constraint, context) {
}
return false;
};
-var operators = new Map();
+const operators = new Map();
operators.set(Operator.IN, InOperator);
operators.set(Operator.NOT_IN, InOperator);
operators.set(Operator.STR_STARTS_WITH, StringOperator);
@@ -139,14 +128,13 @@ operators.set(Operator.DATE_BEFORE, DateOperator);
operators.set(Operator.SEMVER_EQ, SemverOperator);
operators.set(Operator.SEMVER_GT, SemverOperator);
operators.set(Operator.SEMVER_LT, SemverOperator);
-var Strategy = /** @class */ (function () {
- function Strategy(name, returnValue) {
- if (returnValue === void 0) { returnValue = false; }
+class Strategy {
+ constructor(name, returnValue = false) {
this.name = name || 'unknown';
this.returnValue = returnValue;
}
- Strategy.prototype.checkConstraint = function (constraint, context) {
- var evaluator = operators.get(constraint.operator);
+ checkConstraint(constraint, context) {
+ const evaluator = operators.get(constraint.operator);
if (!evaluator) {
return false;
}
@@ -154,38 +142,26 @@ var Strategy = /** @class */ (function () {
return !evaluator(constraint, context);
}
return evaluator(constraint, context);
- };
- Strategy.prototype.checkConstraints = function (context, constraints) {
- var e_1, _a;
+ }
+ checkConstraints(context, constraints) {
if (!constraints) {
return true;
}
- try {
- // eslint-disable-next-line no-restricted-syntax
- for (var constraints_1 = __values(constraints), constraints_1_1 = constraints_1.next(); !constraints_1_1.done; constraints_1_1 = constraints_1.next()) {
- var constraint = constraints_1_1.value;
- if (!constraint || !this.checkConstraint(constraint, context)) {
- return false;
- }
- }
- }
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
- finally {
- try {
- if (constraints_1_1 && !constraints_1_1.done && (_a = constraints_1.return)) _a.call(constraints_1);
+ // eslint-disable-next-line no-restricted-syntax
+ for (const constraint of constraints) {
+ if (!constraint || !this.checkConstraint(constraint, context)) {
+ return false;
}
- finally { if (e_1) throw e_1.error; }
}
return true;
- };
+ }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
- Strategy.prototype.isEnabled = function (parameters, context) {
+ isEnabled(parameters, context) {
return this.returnValue;
- };
- Strategy.prototype.isEnabledWithConstraints = function (parameters, context, constraints) {
+ }
+ isEnabledWithConstraints(parameters, context, constraints) {
return this.checkConstraints(context, constraints) && this.isEnabled(parameters, context);
- };
- return Strategy;
-}());
+ }
+}
exports.Strategy = Strategy;
//# sourceMappingURL=strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/strategy.js.map w/lib/strategy/strategy.js.map
index bc505a5..790bb38 100644
--- i/lib/strategy/strategy.js.map
+++ w/lib/strategy/strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/strategy/strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iCAA8F;AAE9F,sCAAiD;AA2BjD,IAAY,QAgBX;AAhBD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,6BAAiB,CAAA;IACjB,2CAA+B,CAAA;IAC/B,+CAAmC,CAAA;IACnC,yCAA6B,CAAA;IAC7B,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,+BAAmB,CAAA;IACnB,qCAAyB,CAAA;IACzB,uCAA2B,CAAA;IAC3B,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;IACvB,mCAAuB,CAAA;AACzB,CAAC,EAhBW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAgBnB;AAID,IAAM,WAAW,GAAG,UAAC,MAAgB,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,EAA9C,CAA8C,CAAC;AACzF,IAAM,cAAc,GAAG,UAAC,OAAe,IAAK,OAAA,IAAA,cAAW,EAAC,OAAO,CAAC,KAAK,OAAO,EAAhC,CAAgC,CAAC;AAE7E,IAAM,UAAU,GAAG,UAAC,UAAsB,EAAE,OAAgB;IAC1D,IAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC;IACrC,IAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAM,YAAY,GAAG,IAAA,6BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEzD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,YAAY,EAApB,CAAoB,CAAC,CAAC;IAExD,OAAO,UAAU,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5D,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UAAC,UAAsB,EAAE,OAAgB;IACtD,IAAA,WAAW,GAAgC,UAAU,YAA1C,EAAE,QAAQ,GAAsB,UAAU,SAAhC,EAAE,eAAe,GAAK,UAAU,gBAAf,CAAgB;IAC9D,IAAI,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,YAAY,GAAG,IAAA,6BAAmB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAE7D,IAAI,eAAe,EAAE;QACnB,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,iBAAiB,EAAE,EAArB,CAAqB,CAAC,CAAC;QAClD,YAAY,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,iBAAiB,EAAE,CAAC;KAClD;IAED,IAAG,OAAO,YAAY,KAAK,QAAQ,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,eAAe,EAAE;QACzC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,CAAC,GAAG,CAAC,EAA7B,CAA6B,CAAC,CAAC;KAC5D;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,aAAa,EAAE;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC,EAA3B,CAA2B,CAAC,CAAC;KAC1D;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,YAAY,EAAE;QACtC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC,EAA3B,CAA2B,CAAC,CAAC;KAC1D;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UAAC,UAAsB,EAAE,OAAgB;IACtD,IAAA,WAAW,GAAe,UAAU,YAAzB,EAAE,QAAQ,GAAK,UAAU,SAAf,CAAgB;IAC7C,IAAM,KAAK,GAAG,UAAU,CAAC,KAAe,CAAC;IACzC,IAAM,YAAY,GAAG,IAAA,6BAAmB,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;QAClD,OAAO,KAAK,CAAC;KACd;IAED,IAAI;QACF,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,EAAE;YACnC,OAAO,IAAA,WAAQ,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,EAAE;YACnC,OAAO,IAAA,WAAQ,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SACtC;QACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,SAAS,EAAE;YACnC,OAAO,IAAA,WAAQ,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SACtC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,YAAY,GAAG,UAAC,UAAsB,EAAE,OAAgB;IACpD,IAAA,QAAQ,GAAK,UAAU,SAAf,CAAgB;IAChC,IAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC;IACnD,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAErF,IAAI,QAAQ,KAAK,QAAQ,CAAC,UAAU,EAAE;QACpC,OAAO,WAAW,GAAG,KAAK,CAAC;KAC5B;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE;QACrC,OAAO,WAAW,GAAG,KAAK,CAAC;KAC5B;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,cAAc,GAAG,UAAC,UAAsB,EAAE,OAAgB;IAC9D,IAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC;IAC7B,IAAA,QAAQ,GAAK,UAAU,SAAf,CAAgB;IAChC,IAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvC,IAAM,YAAY,GAAG,MAAM,CAAC,IAAA,6BAAmB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QACrD,OAAO,KAAK,CAAC;KACd;IAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE;QAChC,OAAO,YAAY,KAAK,KAAK,CAAC;KAC/B;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE;QAChC,OAAO,YAAY,GAAG,KAAK,CAAC;KAC7B;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE;QACjC,OAAO,YAAY,IAAI,KAAK,CAAC;KAC9B;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE;QAChC,OAAO,YAAY,GAAG,KAAK,CAAC;KAC7B;IACD,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE;QACjC,OAAO,YAAY,IAAI,KAAK,CAAC;KAC9B;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,IAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;AACpD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AACvC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;AACxD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACrD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAChD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAChD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACjD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAClD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAClD;IAKE,kBAAY,IAAY,EAAE,WAA4B;QAA5B,4BAAA,EAAA,mBAA4B;QACpD,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,kCAAe,GAAf,UAAgB,UAAsB,EAAE,OAAgB;QACtD,IAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE;YACvB,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;SACxC;QAED,OAAO,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,mCAAgB,GAAhB,UAAiB,OAAgB,EAAE,WAAsD;;QACvF,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;;YACD,gDAAgD;YAChD,KAAyB,IAAA,gBAAA,SAAA,WAAW,CAAA,wCAAA,iEAAE;gBAAjC,IAAM,UAAU,wBAAA;gBACnB,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;oBAC7D,OAAO,KAAK,CAAC;iBACd;aACF;;;;;;;;;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6DAA6D;IAC7D,4BAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,2CAAwB,GAAxB,UACE,UAAe,EACf,OAAgB,EAChB,WAAqD;QAErD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5F,CAAC;IACH,eAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,4BAAQ"}
\ No newline at end of file
+{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/strategy/strategy.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git i/lib/strategy/user-with-id-strategy.js w/lib/strategy/user-with-id-strategy.js
index 16e4c33..b7d7c50 100644
--- i/lib/strategy/user-with-id-strategy.js
+++ w/lib/strategy/user-with-id-strategy.js
@@ -1,31 +1,14 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
Object.defineProperty(exports, "__esModule", { value: true });
-var strategy_1 = require("./strategy");
-var UserWithIdStrategy = /** @class */ (function (_super) {
- __extends(UserWithIdStrategy, _super);
- function UserWithIdStrategy() {
- return _super.call(this, 'userWithId') || this;
+const strategy_1 = require("./strategy");
+class UserWithIdStrategy extends strategy_1.Strategy {
+ constructor() {
+ super('userWithId');
}
- UserWithIdStrategy.prototype.isEnabled = function (parameters, context) {
- var userIdList = parameters.userIds ? parameters.userIds.split(/\s*,\s*/) : [];
+ isEnabled(parameters, context) {
+ const userIdList = parameters.userIds ? parameters.userIds.split(/\s*,\s*/) : [];
return userIdList.includes(context.userId);
- };
- return UserWithIdStrategy;
-}(strategy_1.Strategy));
+ }
+}
exports.default = UserWithIdStrategy;
//# sourceMappingURL=user-with-id-strategy.js.map
\ No newline at end of file
diff --git i/lib/strategy/user-with-id-strategy.js.map w/lib/strategy/user-with-id-strategy.js.map
index 7b53e81..036e36e 100644
--- i/lib/strategy/user-with-id-strategy.js.map
+++ w/lib/strategy/user-with-id-strategy.js.map
@@ -1 +1 @@
-{"version":3,"file":"user-with-id-strategy.js","sourceRoot":"","sources":["../../src/strategy/user-with-id-strategy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAsC;AAGtC;IAAgD,sCAAQ;IACtD;eACE,kBAAM,YAAY,CAAC;IACrB,CAAC;IAED,sCAAS,GAAT,UAAU,UAAe,EAAE,OAAgB;QACzC,IAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACH,yBAAC;AAAD,CAAC,AATD,CAAgD,mBAAQ,GASvD"}
\ No newline at end of file
+{"version":3,"file":"user-with-id-strategy.js","sourceRoot":"","sources":["../../src/strategy/user-with-id-strategy.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAGtC,MAAqB,kBAAmB,SAAQ,mBAAQ;IACtD;QACE,KAAK,CAAC,YAAY,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,UAAe,EAAE,OAAgB;QACzC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,OAAO,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF;AATD,qCASC"}
\ No newline at end of file
diff --git i/lib/strategy/util.js w/lib/strategy/util.js
index a9eb8d7..544ae90 100644
--- i/lib/strategy/util.js
+++ w/lib/strategy/util.js
@@ -1,9 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var murmurHash3 = require("murmurhash3js");
-function normalizedValue(id, groupId, normalizer) {
- if (normalizer === void 0) { normalizer = 100; }
- return (murmurHash3.x86.hash32("".concat(groupId, ":").concat(id)) % normalizer) + 1;
+const murmurHash3 = require("murmurhash3js");
+function normalizedValue(id, groupId, normalizer = 100) {
+ return (murmurHash3.x86.hash32(`${groupId}:${id}`) % normalizer) + 1;
}
exports.default = normalizedValue;
//# sourceMappingURL=util.js.map
\ No newline at end of file
diff --git i/lib/strategy/util.js.map w/lib/strategy/util.js.map
index d558ef3..5a59494 100644
--- i/lib/strategy/util.js.map
+++ w/lib/strategy/util.js.map
@@ -1 +1 @@
-{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/strategy/util.ts"],"names":[],"mappings":";;AAAA,2CAA6C;AAE7C,SAAwB,eAAe,CAAC,EAAU,EAAE,OAAe,EAAE,UAAgB;IAAhB,2BAAA,EAAA,gBAAgB;IACnF,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAG,OAAO,cAAI,EAAE,CAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAFD,kCAEC"}
\ No newline at end of file
+{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/strategy/util.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAE7C,SAAwB,eAAe,CAAC,EAAU,EAAE,OAAe,EAAE,UAAU,GAAG,GAAG;IACnF,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAFD,kCAEC"}
\ No newline at end of file
diff --git i/lib/unleash.js w/lib/unleash.js
index 3e3b981..5e007e5 100644
--- i/lib/unleash.js
+++ w/lib/unleash.js
@@ -1,100 +1,36 @@
"use strict";
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-};
-var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
- function verb(n) { return function (v) { return step([n, v]); }; }
- function step(op) {
- if (f) throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
- if (y = 0, t) op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0: case 1: t = op; break;
- case 4: _.label++; return { value: op[1], done: false };
- case 5: _.label++; y = op[1]; op = [0]; continue;
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
- if (t[2]) _.ops.pop();
- _.trys.pop(); continue;
- }
- op = body.call(thisArg, _);
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
- }
-};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Unleash = exports.UnleashEvents = exports.Strategy = void 0;
-var os_1 = require("os");
-var events_1 = require("events");
-var client_1 = require("./client");
-var repository_1 = require("./repository");
-var metrics_1 = require("./metrics");
-var strategy_1 = require("./strategy");
+const os_1 = require("os");
+const events_1 = require("events");
+const client_1 = require("./client");
+const repository_1 = require("./repository");
+const metrics_1 = require("./metrics");
+const strategy_1 = require("./strategy");
Object.defineProperty(exports, "Strategy", { enumerable: true, get: function () { return strategy_1.Strategy; } });
-var variant_1 = require("./variant");
-var helpers_1 = require("./helpers");
-var bootstrap_provider_1 = require("./repository/bootstrap-provider");
-var events_2 = require("./events");
+const variant_1 = require("./variant");
+const helpers_1 = require("./helpers");
+const bootstrap_provider_1 = require("./repository/bootstrap-provider");
+const events_2 = require("./events");
Object.defineProperty(exports, "UnleashEvents", { enumerable: true, get: function () { return events_2.UnleashEvents; } });
-var storage_provider_file_1 = require("./repository/storage-provider-file");
-var BACKUP_PATH = (0, os_1.tmpdir)();
-var Unleash = /** @class */ (function (_super) {
- __extends(Unleash, _super);
- function Unleash(_a) {
- var appName = _a.appName, _b = _a.environment, environment = _b === void 0 ? 'default' : _b, projectName = _a.projectName, instanceId = _a.instanceId, url = _a.url, _c = _a.refreshInterval, refreshInterval = _c === void 0 ? 15 * 1000 : _c, _d = _a.metricsInterval, metricsInterval = _d === void 0 ? 60 * 1000 : _d, _e = _a.metricsJitter, metricsJitter = _e === void 0 ? 0 : _e, _f = _a.disableMetrics, disableMetrics = _f === void 0 ? false : _f, _g = _a.backupPath, backupPath = _g === void 0 ? BACKUP_PATH : _g, _h = _a.strategies, strategies = _h === void 0 ? [] : _h, repository = _a.repository, namePrefix = _a.namePrefix, customHeaders = _a.customHeaders, customHeadersFunction = _a.customHeadersFunction, timeout = _a.timeout, httpOptions = _a.httpOptions, tags = _a.tags, _j = _a.bootstrap, bootstrap = _j === void 0 ? {} : _j, bootstrapOverride = _a.bootstrapOverride, storageProvider = _a.storageProvider, _k = _a.disableAutoStart, disableAutoStart = _k === void 0 ? false : _k, _l = _a.skipInstanceCountWarning, skipInstanceCountWarning = _l === void 0 ? false : _l;
- var _this = _super.call(this) || this;
- _this.synchronized = false;
- _this.ready = false;
+const storage_provider_file_1 = require("./repository/storage-provider-file");
+const BACKUP_PATH = (0, os_1.tmpdir)();
+class Unleash extends events_1.EventEmitter {
+ constructor({ appName, environment = 'default', projectName, instanceId, url, refreshInterval = 15 * 1000, metricsInterval = 60 * 1000, metricsJitter = 0, disableMetrics = false, backupPath = BACKUP_PATH, strategies = [], repository, namePrefix, customHeaders, customHeadersFunction, timeout, httpOptions, tags, bootstrap = {}, bootstrapOverride, storageProvider, disableAutoStart = false, skipInstanceCountWarning = false, }) {
+ super();
+ this.synchronized = false;
+ this.ready = false;
Unleash.instanceCount++;
- _this.on(events_2.UnleashEvents.Error, function (error) {
+ this.on(events_2.UnleashEvents.Error, (error) => {
// Only if there does not exist other listeners for this event.
- if (_this.listenerCount(events_2.UnleashEvents.Error) === 1) {
+ if (this.listenerCount(events_2.UnleashEvents.Error) === 1) {
console.error(error);
}
});
if (!skipInstanceCountWarning && Unleash.instanceCount > 10) {
- process.nextTick(function () {
- var error = new Error('The unleash SDK has been initialized more than 10 times');
- _this.emit(events_2.UnleashEvents.Error, error);
+ process.nextTick(() => {
+ const error = new Error('The unleash SDK has been initialized more than 10 times');
+ this.emit(events_2.UnleashEvents.Error, error);
});
}
if (!url) {
@@ -103,88 +39,83 @@ var Unleash = /** @class */ (function (_super) {
if (!appName) {
throw new Error('Unleash client "appName" is required');
}
- var unleashUrl = _this.cleanUnleashUrl(url);
- var unleashInstanceId = (0, helpers_1.generateInstanceId)(instanceId);
- _this.staticContext = { appName: appName, environment: environment };
- var bootstrapProvider = (0, bootstrap_provider_1.resolveBootstrapProvider)(bootstrap, appName, unleashInstanceId);
- _this.repository =
+ const unleashUrl = this.cleanUnleashUrl(url);
+ const unleashInstanceId = (0, helpers_1.generateInstanceId)(instanceId);
+ this.staticContext = { appName, environment };
+ const bootstrapProvider = (0, bootstrap_provider_1.resolveBootstrapProvider)(bootstrap, appName, unleashInstanceId);
+ this.repository =
repository ||
new repository_1.default({
- projectName: projectName,
+ projectName,
url: unleashUrl,
- appName: appName,
+ appName,
instanceId: unleashInstanceId,
- refreshInterval: refreshInterval,
+ refreshInterval,
headers: customHeaders,
- customHeadersFunction: customHeadersFunction,
- timeout: timeout,
- httpOptions: httpOptions,
- namePrefix: namePrefix,
- tags: tags,
- bootstrapProvider: bootstrapProvider,
- bootstrapOverride: bootstrapOverride,
+ customHeadersFunction,
+ timeout,
+ httpOptions,
+ namePrefix,
+ tags,
+ bootstrapProvider,
+ bootstrapOverride,
storageProvider: storageProvider || new storage_provider_file_1.default(backupPath),
});
- _this.repository.on(events_2.UnleashEvents.Ready, function () {
- _this.ready = true;
- process.nextTick(function () {
- _this.emit(events_2.UnleashEvents.Ready);
+ this.repository.on(events_2.UnleashEvents.Ready, () => {
+ this.ready = true;
+ process.nextTick(() => {
+ this.emit(events_2.UnleashEvents.Ready);
});
});
- _this.repository.on(events_2.UnleashEvents.Error, function (err) {
+ this.repository.on(events_2.UnleashEvents.Error, (err) => {
// eslint-disable-next-line no-param-reassign
- err.message = "Unleash Repository error: ".concat(err.message);
- _this.emit(events_2.UnleashEvents.Error, err);
+ err.message = `Unleash Repository error: ${err.message}`;
+ this.emit(events_2.UnleashEvents.Error, err);
});
- _this.repository.on(events_2.UnleashEvents.Warn, function (msg) { return _this.emit(events_2.UnleashEvents.Warn, msg); });
- _this.repository.on(events_2.UnleashEvents.Unchanged, function (msg) { return _this.emit(events_2.UnleashEvents.Unchanged, msg); });
- _this.repository.on(events_2.UnleashEvents.Changed, function (data) {
- _this.emit(events_2.UnleashEvents.Changed, data);
+ this.repository.on(events_2.UnleashEvents.Warn, (msg) => this.emit(events_2.UnleashEvents.Warn, msg));
+ this.repository.on(events_2.UnleashEvents.Unchanged, (msg) => this.emit(events_2.UnleashEvents.Unchanged, msg));
+ this.repository.on(events_2.UnleashEvents.Changed, (data) => {
+ this.emit(events_2.UnleashEvents.Changed, data);
// Only emit the fully synchronized event the first time.
- if (!_this.synchronized) {
- _this.synchronized = true;
- process.nextTick(function () { return _this.emit(events_2.UnleashEvents.Synchronized); });
+ if (!this.synchronized) {
+ this.synchronized = true;
+ process.nextTick(() => this.emit(events_2.UnleashEvents.Synchronized));
}
});
// setup client
- var supportedStrategies = strategies.concat(strategy_1.defaultStrategies);
- _this.client = new client_1.default(_this.repository, supportedStrategies);
- _this.client.on(events_2.UnleashEvents.Error, function (err) { return _this.emit(events_2.UnleashEvents.Error, err); });
- _this.client.on(events_2.UnleashEvents.Impression, function (e) {
- return _this.emit(events_2.UnleashEvents.Impression, e);
- });
- _this.metrics = new metrics_1.default({
- disableMetrics: disableMetrics,
- appName: appName,
+ const supportedStrategies = strategies.concat(strategy_1.defaultStrategies);
+ this.client = new client_1.default(this.repository, supportedStrategies);
+ this.client.on(events_2.UnleashEvents.Error, (err) => this.emit(events_2.UnleashEvents.Error, err));
+ this.client.on(events_2.UnleashEvents.Impression, (e) => this.emit(events_2.UnleashEvents.Impression, e));
+ this.metrics = new metrics_1.default({
+ disableMetrics,
+ appName,
instanceId: unleashInstanceId,
- strategies: supportedStrategies.map(function (strategy) { return strategy.name; }),
- metricsInterval: metricsInterval,
- metricsJitter: metricsJitter,
+ strategies: supportedStrategies.map((strategy) => strategy.name),
+ metricsInterval,
+ metricsJitter,
url: unleashUrl,
headers: customHeaders,
- customHeadersFunction: customHeadersFunction,
- timeout: timeout,
- httpOptions: httpOptions,
+ customHeadersFunction,
+ timeout,
+ httpOptions,
});
- _this.metrics.on(events_2.UnleashEvents.Error, function (err) {
+ this.metrics.on(events_2.UnleashEvents.Error, (err) => {
// eslint-disable-next-line no-param-reassign
- err.message = "Unleash Metrics error: ".concat(err.message);
- _this.emit(events_2.UnleashEvents.Error, err);
+ err.message = `Unleash Metrics error: ${err.message}`;
+ this.emit(events_2.UnleashEvents.Error, err);
});
- _this.metrics.on(events_2.UnleashEvents.Warn, function (msg) { return _this.emit(events_2.UnleashEvents.Warn, msg); });
- _this.metrics.on(events_2.UnleashEvents.Sent, function (payload) { return _this.emit(events_2.UnleashEvents.Sent, payload); });
- _this.metrics.on(events_2.UnleashEvents.Count, function (name, enabled) {
- _this.emit(events_2.UnleashEvents.Count, name, enabled);
+ this.metrics.on(events_2.UnleashEvents.Warn, (msg) => this.emit(events_2.UnleashEvents.Warn, msg));
+ this.metrics.on(events_2.UnleashEvents.Sent, (payload) => this.emit(events_2.UnleashEvents.Sent, payload));
+ this.metrics.on(events_2.UnleashEvents.Count, (name, enabled) => {
+ this.emit(events_2.UnleashEvents.Count, name, enabled);
});
- _this.metrics.on(events_2.UnleashEvents.Registered, function (payload) {
- _this.emit(events_2.UnleashEvents.Registered, payload);
+ this.metrics.on(events_2.UnleashEvents.Registered, (payload) => {
+ this.emit(events_2.UnleashEvents.Registered, payload);
});
if (!disableAutoStart) {
- process.nextTick(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
- return [2 /*return*/, this.start()];
- }); }); });
+ process.nextTick(async () => this.start());
}
- return _this;
}
/**
* Will only give you an instance the first time you call the method,
@@ -192,136 +123,115 @@ var Unleash = /** @class */ (function (_super) {
* @param config The Unleash Config.
* @returns the Unleash instance
*/
- Unleash.getInstance = function (config) {
- var cleanConfig = __assign(__assign({}, config), {
+ static getInstance(config) {
+ const cleanConfig = {
+ ...config,
// Remove complex objects
- repository: undefined, customHeadersFunction: undefined, storageProvider: undefined });
- var configSignature = (0, helpers_1.generateHashOfConfig)(cleanConfig);
+ repository: undefined,
+ customHeadersFunction: undefined,
+ storageProvider: undefined
+ };
+ const configSignature = (0, helpers_1.generateHashOfConfig)(cleanConfig);
if (Unleash.instance) {
if (configSignature !== Unleash.configSignature) {
throw new Error('You already have an Unleash instance with a different configuration.');
}
return Unleash.instance;
}
- var instance = new Unleash(config);
+ const instance = new Unleash(config);
Unleash.instance = instance;
Unleash.configSignature = configSignature;
return instance;
- };
- Unleash.prototype.cleanUnleashUrl = function (url) {
- var _this = this;
- var unleashUrl = url;
+ }
+ cleanUnleashUrl(url) {
+ let unleashUrl = url;
if (unleashUrl.endsWith('/features')) {
- var oldUrl_1 = unleashUrl;
- process.nextTick(function () {
- return _this.emit(events_2.UnleashEvents.Warn, "Unleash server URL \"".concat(oldUrl_1, "\" should no longer link directly to /features"));
- });
+ const oldUrl = unleashUrl;
+ process.nextTick(() => this.emit(events_2.UnleashEvents.Warn, `Unleash server URL "${oldUrl}" should no longer link directly to /features`));
unleashUrl = unleashUrl.replace(/\/features$/, '');
}
if (!unleashUrl.endsWith('/')) {
unleashUrl += '/';
}
return unleashUrl;
- };
- Unleash.prototype.start = function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, Promise.all([this.repository.start(), this.metrics.start()])];
- case 1:
- _a.sent();
- return [2 /*return*/];
- }
- });
- });
- };
- Unleash.prototype.destroy = function () {
+ }
+ async start() {
+ await Promise.all([this.repository.start(), this.metrics.start()]);
+ }
+ destroy() {
this.repository.stop();
this.metrics.stop();
Unleash.instance = undefined;
Unleash.configSignature = undefined;
Unleash.instanceCount--;
- };
- Unleash.prototype.isEnabled = function (name, context, fallback) {
- if (context === void 0) { context = {}; }
- var enhancedContext = __assign(__assign({}, this.staticContext), context);
- var fallbackFunc = (0, helpers_1.createFallbackFunction)(name, enhancedContext, fallback);
- var result;
+ }
+ isEnabled(name, context = {}, fallback) {
+ const enhancedContext = { ...this.staticContext, ...context };
+ const fallbackFunc = (0, helpers_1.createFallbackFunction)(name, enhancedContext, fallback);
+ let result;
if (this.ready) {
result = this.client.isEnabled(name, enhancedContext, fallbackFunc);
}
else {
result = fallbackFunc();
- this.emit(events_2.UnleashEvents.Warn, "Unleash has not been initialized yet. isEnabled(".concat(name, ") defaulted to ").concat(result));
+ this.emit(events_2.UnleashEvents.Warn, `Unleash has not been initialized yet. isEnabled(${name}) defaulted to ${result}`);
}
this.count(name, result);
return result;
- };
- Unleash.prototype.getVariant = function (name, context, fallbackVariant) {
- if (context === void 0) { context = {}; }
- var enhancedContext = __assign(__assign({}, this.staticContext), context);
- var result;
+ }
+ getVariant(name, context = {}, fallbackVariant) {
+ const enhancedContext = { ...this.staticContext, ...context };
+ let result;
if (this.ready) {
result = this.client.getVariant(name, enhancedContext, fallbackVariant);
}
else {
result = typeof fallbackVariant !== 'undefined' ? fallbackVariant : (0, variant_1.getDefaultVariant)();
- this.emit(events_2.UnleashEvents.Warn, "Unleash has not been initialized yet. isEnabled(".concat(name, ") defaulted to ").concat(result));
+ this.emit(events_2.UnleashEvents.Warn, `Unleash has not been initialized yet. isEnabled(${name}) defaulted to ${result}`);
}
if (result.name) {
this.countVariant(name, result.name);
}
this.count(name, result.enabled);
return result;
- };
- Unleash.prototype.forceGetVariant = function (name, context, fallbackVariant) {
- if (context === void 0) { context = {}; }
- var enhancedContext = __assign(__assign({}, this.staticContext), context);
- var result;
+ }
+ forceGetVariant(name, context = {}, fallbackVariant) {
+ const enhancedContext = { ...this.staticContext, ...context };
+ let result;
if (this.ready) {
result = this.client.forceGetVariant(name, enhancedContext, fallbackVariant);
}
else {
result = typeof fallbackVariant !== 'undefined' ? fallbackVariant : (0, variant_1.getDefaultVariant)();
- this.emit(events_2.UnleashEvents.Warn, "Unleash has not been initialized yet. isEnabled(".concat(name, ") defaulted to ").concat(result));
+ this.emit(events_2.UnleashEvents.Warn, `Unleash has not been initialized yet. isEnabled(${name}) defaulted to ${result}`);
}
if (result.name) {
this.countVariant(name, result.name);
}
this.count(name, result.enabled);
return result;
- };
- Unleash.prototype.getFeatureToggleDefinition = function (toggleName) {
+ }
+ getFeatureToggleDefinition(toggleName) {
return this.repository.getToggle(toggleName);
- };
- Unleash.prototype.getFeatureToggleDefinitions = function () {
+ }
+ getFeatureToggleDefinitions() {
return this.repository.getToggles();
- };
- Unleash.prototype.count = function (toggleName, enabled) {
+ }
+ count(toggleName, enabled) {
this.metrics.count(toggleName, enabled);
- };
- Unleash.prototype.countVariant = function (toggleName, variantName) {
+ }
+ countVariant(toggleName, variantName) {
this.metrics.countVariant(toggleName, variantName);
- };
- Unleash.prototype.flushMetrics = function () {
+ }
+ flushMetrics() {
return this.metrics.sendMetrics();
- };
- Unleash.prototype.destroyWithFlush = function () {
- return __awaiter(this, void 0, void 0, function () {
- return __generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.flushMetrics()];
- case 1:
- _a.sent();
- this.destroy();
- return [2 /*return*/];
- }
- });
- });
- };
- Unleash.instanceCount = 0;
- return Unleash;
-}(events_1.EventEmitter));
+ }
+ async destroyWithFlush() {
+ await this.flushMetrics();
+ this.destroy();
+ }
+}
exports.Unleash = Unleash;
+Unleash.instanceCount = 0;
;
//# sourceMappingURL=unleash.js.map
\ No newline at end of file
diff --git i/lib/unleash.js.map w/lib/unleash.js.map
index 83dc291..2e37f3f 100644
--- i/lib/unleash.js.map
+++ w/lib/unleash.js.map
@@ -1 +1 @@
-{"version":3,"file":"unleash.js","sourceRoot":"","sources":["../src/unleash.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"unleash.js","sourceRoot":"","sources":["../src/unleash.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git i/lib/url-utils.js w/lib/url-utils.js
index bf3d176..36b415e 100644
--- i/lib/url-utils.js
+++ w/lib/url-utils.js
@@ -2,18 +2,18 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.suffixSlash = exports.resolveUrl = void 0;
function resolveUrl(from, to) {
- var resolvedUrl = new URL(to, new URL(from, 'resolve://'));
+ const resolvedUrl = new URL(to, new URL(from, 'resolve://'));
if (resolvedUrl.protocol === 'resolve:') {
// `from` is a relative URL.
- var pathname = resolvedUrl.pathname, search = resolvedUrl.search, hash = resolvedUrl.hash;
+ const { pathname, search, hash } = resolvedUrl;
return pathname + search + hash;
}
return resolvedUrl.toString();
}
exports.resolveUrl = resolveUrl;
-var getUrl = function (base, projectName, namePrefix, tags) {
- var url = resolveUrl(base, './client/features');
- var params = new URLSearchParams();
+const getUrl = (base, projectName, namePrefix, tags) => {
+ const url = resolveUrl(base, './client/features');
+ const params = new URLSearchParams();
if (projectName) {
params.append('project', projectName);
}
@@ -21,14 +21,14 @@ var getUrl = function (base, projectName, namePrefix, tags) {
params.append('namePrefix', namePrefix);
}
if (tags) {
- tags.forEach(function (tag) { return params.append('tag', tag); });
+ tags.forEach((tag) => params.append('tag', tag));
}
if (params.toString().length > 0) {
- return "".concat(url, "?").concat(params.toString());
+ return `${url}?${params.toString()}`;
}
return url;
};
-var suffixSlash = function (url) { return (url.endsWith('/') ? url : "".concat(url, "/")); };
+const suffixSlash = (url) => (url.endsWith('/') ? url : `${url}/`);
exports.suffixSlash = suffixSlash;
exports.default = getUrl;
//# sourceMappingURL=url-utils.js.map
\ No newline at end of file
diff --git i/lib/url-utils.js.map w/lib/url-utils.js.map
index 91b97b9..dc81eae 100644
--- i/lib/url-utils.js.map
+++ w/lib/url-utils.js.map
@@ -1 +1 @@
-{"version":3,"file":"url-utils.js","sourceRoot":"","sources":["../src/url-utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY,EAAE,EAAU;IACjD,IAAM,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,IAAI,WAAW,CAAC,QAAQ,KAAK,UAAU,EAAE;QACvC,4BAA4B;QACpB,IAAA,QAAQ,GAAmB,WAAW,SAA9B,EAAE,MAAM,GAAW,WAAW,OAAtB,EAAE,IAAI,GAAK,WAAW,KAAhB,CAAiB;QAC/C,OAAO,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;KACjC;IACD,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AARD,gCAQC;AAED,IAAM,MAAM,GAAG,UACb,IAAY,EACZ,WAAoB,EACpB,UAAmB,EACnB,IAAoB;IAEpB,IAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAClD,IAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,WAAW,EAAE;QACf,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;KACvC;IACD,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KACzC;IACD,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC;KAClD;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,OAAO,UAAG,GAAG,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAC;KACtC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,IAAM,WAAW,GAAG,UAAC,GAAW,IAAa,OAAA,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAG,GAAG,MAAG,CAAC,EAArC,CAAqC,CAAC;AAA7E,QAAA,WAAW,eAAkE;AAE1F,kBAAe,MAAM,CAAC"}
\ No newline at end of file
+{"version":3,"file":"url-utils.js","sourceRoot":"","sources":["../src/url-utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,IAAY,EAAE,EAAU;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAC7D,IAAI,WAAW,CAAC,QAAQ,KAAK,UAAU,EAAE;QACvC,4BAA4B;QAC5B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAC/C,OAAO,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;KACjC;IACD,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AARD,gCAQC;AAED,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,WAAoB,EACpB,UAAmB,EACnB,IAAoB,EACZ,EAAE;IACV,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,WAAW,EAAE;QACf,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;KACvC;IACD,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KACzC;IACD,IAAI,IAAI,EAAE;QACR,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;KAClD;IACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;QAChC,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;KACtC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AAA7E,QAAA,WAAW,eAAkE;AAE1F,kBAAe,MAAM,CAAC"}
\ No newline at end of file
diff --git i/lib/variant.js w/lib/variant.js
index 3616966..38c7450 100644
--- i/lib/variant.js
+++ w/lib/variant.js
@@ -1,8 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.selectVariant = exports.getDefaultVariant = void 0;
-var util_1 = require("./strategy/util");
-var helpers_1 = require("./helpers");
+const util_1 = require("./strategy/util");
+const helpers_1 = require("./helpers");
var PayloadType;
(function (PayloadType) {
PayloadType["STRING"] = "string";
@@ -17,16 +17,15 @@ exports.getDefaultVariant = getDefaultVariant;
function randomString() {
return String(Math.round(Math.random() * 100000));
}
-var stickinessSelectors = ['userId', 'sessionId', 'remoteAddress'];
-function getSeed(context, stickiness) {
- if (stickiness === void 0) { stickiness = 'default'; }
+const stickinessSelectors = ['userId', 'sessionId', 'remoteAddress'];
+function getSeed(context, stickiness = 'default') {
if (stickiness !== 'default') {
- var value = (0, helpers_1.resolveContextValue)(context, stickiness);
+ const value = (0, helpers_1.resolveContextValue)(context, stickiness);
return value ? value.toString() : randomString();
}
- var result;
- stickinessSelectors.some(function (key) {
- var value = context[key];
+ let result;
+ stickinessSelectors.some((key) => {
+ const value = context[key];
if (typeof value === 'string' && value !== '') {
result = value;
return true;
@@ -36,28 +35,26 @@ function getSeed(context, stickiness) {
return result || randomString();
}
function overrideMatchesContext(context) {
- return function (o) {
- return o.values.some(function (value) { return value === (0, helpers_1.resolveContextValue)(context, o.contextName); });
- };
+ return (o) => o.values.some((value) => value === (0, helpers_1.resolveContextValue)(context, o.contextName));
}
function findOverride(feature, context) {
return feature.variants
- .filter(function (variant) { return variant.overrides; })
- .find(function (variant) { return variant.overrides.some(overrideMatchesContext(context)); });
+ .filter((variant) => variant.overrides)
+ .find((variant) => variant.overrides.some(overrideMatchesContext(context)));
}
function selectVariant(feature, context) {
- var totalWeight = feature.variants.reduce(function (acc, v) { return acc + v.weight; }, 0);
+ const totalWeight = feature.variants.reduce((acc, v) => acc + v.weight, 0);
if (totalWeight <= 0) {
return null;
}
- var variantOverride = findOverride(feature, context);
+ const variantOverride = findOverride(feature, context);
if (variantOverride) {
return variantOverride;
}
- var stickiness = feature.variants[0].stickiness;
- var target = (0, util_1.default)(getSeed(context, stickiness), feature.name, totalWeight);
- var counter = 0;
- var variant = feature.variants.find(function (v) {
+ const { stickiness } = feature.variants[0];
+ const target = (0, util_1.default)(getSeed(context, stickiness), feature.name, totalWeight);
+ let counter = 0;
+ const variant = feature.variants.find((v) => {
if (v.weight === 0) {
return undefined;
}
diff --git i/lib/variant.js.map w/lib/variant.js.map
index 235db1a..371b27b 100644
--- i/lib/variant.js.map
+++ w/lib/variant.js.map
@@ -1 +1 @@
-{"version":3,"file":"variant.js","sourceRoot":"","sources":["../src/variant.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"variant.js","sourceRoot":"","sources":["../src/variant.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment