UNPKG

@rudderstack/integrations-lib

Version:

A comprehensive TypeScript library providing shared utilities, SDKs, and tools for RudderStack integrations and destinations.

38 lines 4.3 kB
"use strict"; 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==