import {Actor} from 'sentry/types'; // TODO(ts): add the correct type export type Rules = Array | null; /** * Given a list of rule objects returned from the API, locate the matching * rules for a specific owner. */ function findMatchedRules(rules: Rules, owner: Actor) { if (!rules) { return undefined; } const matchOwner = (actorType: Actor['type'], key: string) => (actorType === 'user' && key === owner.email) || (actorType === 'team' && key === owner.name); const actorHasOwner = ([actorType, key]) => actorType === owner.type && matchOwner(actorType, key); return rules .filter(([_, ruleActors]) => ruleActors.find(actorHasOwner)) .map(([rule]) => rule); } export {findMatchedRules};