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; }; }