hypertune
Version:
[Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Opt
33 lines • 1.17 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = getOverrideFromOverridesList;
const constants_1 = require("../shared/constants");
const merge_1 = __importDefault(require("./merge"));
function getOverrideFromOverridesList(values) {
if (values.length === 0) {
return null;
}
const override = (0, merge_1.default)({}, ...values.flatMap(([flagPath, value]) => {
if (value === null) {
return [];
}
const flagPathSteps = flagPath.split(".").reverse();
const flagName = flagPathSteps.pop();
return [
{
[flagName]: flagPathSteps.reduce((current, step) => ({ [step]: current }), value),
},
];
}));
if (Object.keys(override).length === 0) {
return null;
}
if (!(constants_1.rootFieldName in override)) {
return { [constants_1.rootFieldName]: override };
}
return override;
}
//# sourceMappingURL=getOverrideFromOverridesList.js.map