diff options
Diffstat (limited to 'gateway/src/opcodes/LazyRequest.ts')
-rw-r--r-- | gateway/src/opcodes/LazyRequest.ts | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gateway/src/opcodes/LazyRequest.ts b/gateway/src/opcodes/LazyRequest.ts index db00157f..5b6ac444 100644 --- a/gateway/src/opcodes/LazyRequest.ts +++ b/gateway/src/opcodes/LazyRequest.ts @@ -39,7 +39,7 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) { const items = []; for (const role of roles) { - const [role_members, other_members] = members.partition((m) => + const [role_members, other_members] = partition(members, (m: Member) => m.roles.find((r) => r.id === role.id) ); const group = { @@ -80,3 +80,14 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) { }, }); } + +function partition<T>(array: T[], isValid: Function) { + return array.reduce( + ([pass, fail], elem) => { + return isValid(elem) + ? [[...pass, elem], fail] + : [pass, [...fail, elem]]; + }, + [[], []] + ); +} |