@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
17 lines (11 loc) • 660 B
text/typescript
import { Semver } from '../../utils/Semver';
export function inListSemverMatcherContext(ruleAttr: string[]) {
// @TODO ruleAttr validation should be done at the `parser` or `matchersTransform` level to reuse for all matchers
if (!ruleAttr || ruleAttr.length === 0) throw new Error('whitelistMatcherData is required for IN_LIST_SEMVER matcher type');
const listOfSemvers = new Set(ruleAttr.map((version) => new Semver(version).version));
return function inListSemverMatcher(runtimeAttr: string): boolean {
const runtimeSemver = new Semver(runtimeAttr).version;
const isInList = listOfSemvers.has(runtimeSemver);
return isInList;
};
}