@rudderstack/integrations-lib
Version:
A comprehensive TypeScript library providing shared utilities, SDKs, and tools for RudderStack integrations and destinations.
38 lines • 4.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FeatureFlagRegistry = void 0;
const utils_1 = require("../core/utils");
class FeatureFlagRegistry {
constructor() {
this.flags = new Map();
}
register(definitionOrDefinitions) {
const definitions = Array.isArray(definitionOrDefinitions)
? definitionOrDefinitions
: [definitionOrDefinitions];
definitions.forEach((def) => {
utils_1.FeatureFlagUtils.validateDefinition(def);
this.flags.set(def.key, def);
});
}
get(key) {
return this.flags.get(key);
}
getAll() {
return Array.from(this.flags.values());
}
getByCategory(category) {
return this.getAll().filter((flag) => flag.category === category);
}
getDefaultValue(key) {
return this.flags.get(key)?.defaultValue ?? false;
}
isRegistered(key) {
return this.flags.has(key);
}
clear() {
this.flags.clear();
}
}
exports.FeatureFlagRegistry = FeatureFlagRegistry;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmVhdHVyZS1mbGFncy9mbGFncy9yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBaUQ7QUFFakQsTUFBYSxtQkFBbUI7SUFBaEM7UUFDVSxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7SUFvQzNELENBQUM7SUFsQ0MsUUFBUSxDQUFDLHVCQUF3RTtRQUMvRSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO1lBQ3hELENBQUMsQ0FBQyx1QkFBdUI7WUFDekIsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUU5QixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDMUIsd0JBQWdCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBVztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksSUFBSSxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRjtBQXJDRCxrREFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnRGVmaW5pdGlvbiwgSUZlYXR1cmVGbGFnUmVnaXN0cnkgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1V0aWxzIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1JlZ2lzdHJ5IGltcGxlbWVudHMgSUZlYXR1cmVGbGFnUmVnaXN0cnkge1xuICBwcml2YXRlIGZsYWdzID0gbmV3IE1hcDxzdHJpbmcsIEZlYXR1cmVGbGFnRGVmaW5pdGlvbj4oKTtcblxuICByZWdpc3RlcihkZWZpbml0aW9uT3JEZWZpbml0aW9uczogRmVhdHVyZUZsYWdEZWZpbml0aW9uIHwgRmVhdHVyZUZsYWdEZWZpbml0aW9uW10pOiB2b2lkIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbk9yRGVmaW5pdGlvbnMpXG4gICAgICA/IGRlZmluaXRpb25PckRlZmluaXRpb25zXG4gICAgICA6IFtkZWZpbml0aW9uT3JEZWZpbml0aW9uc107XG5cbiAgICBkZWZpbml0aW9ucy5mb3JFYWNoKChkZWYpID0+IHtcbiAgICAgIEZlYXR1cmVGbGFnVXRpbHMudmFsaWRhdGVEZWZpbml0aW9uKGRlZik7XG4gICAgICB0aGlzLmZsYWdzLnNldChkZWYua2V5LCBkZWYpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0KGtleTogc3RyaW5nKTogRmVhdHVyZUZsYWdEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncy5nZXQoa2V5KTtcbiAgfVxuXG4gIGdldEFsbCgpOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mbGFncy52YWx1ZXMoKSk7XG4gIH1cblxuICBnZXRCeUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpOiBGZWF0dXJlRmxhZ0RlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsKCkuZmlsdGVyKChmbGFnKSA9PiBmbGFnLmNhdGVnb3J5ID09PSBjYXRlZ29yeSk7XG4gIH1cblxuICBnZXREZWZhdWx0VmFsdWUoa2V5OiBzdHJpbmcpOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncy5nZXQoa2V5KT8uZGVmYXVsdFZhbHVlID8/IGZhbHNlO1xuICB9XG5cbiAgaXNSZWdpc3RlcmVkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3MuaGFzKGtleSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdzLmNsZWFyKCk7XG4gIH1cbn1cbiJdfQ==