(specifier: UserSpecifier, users: User[])
| 7 | * resolvable statically without a concrete request to evaluate against. |
| 8 | */ |
| 9 | export const resolveApprovers = (specifier: UserSpecifier, users: User[]): User[] => { |
| 10 | const active = users.filter(u => 'Active' in u.status); |
| 11 | if ('Any' in specifier) return active; |
| 12 | if ('Id' in specifier) { |
| 13 | const wanted = new Set(specifier.Id); |
| 14 | return active.filter(u => wanted.has(u.id)); |
| 15 | } |
| 16 | if ('Group' in specifier) { |
| 17 | const wanted = new Set(specifier.Group); |
| 18 | return active.filter(u => u.groups.some(g => wanted.has(g.id))); |
| 19 | } |
| 20 | return []; |
| 21 | }; |
| 22 | |
| 23 | /** |
| 24 | * Walks the rule graph, calling `visit` on every Quorum / QuorumPercentage |
no outgoing calls
no test coverage detected