add AsyncInterator support for Managers
This commit is contained in:
parent
30fa9429c5
commit
00dae42f7b
3 changed files with 21 additions and 0 deletions
|
@ -60,6 +60,13 @@ export class BaseManager<T, T2> {
|
||||||
return collection
|
return collection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async *[Symbol.asyncIterator](): AsyncIterableIterator<T2> {
|
||||||
|
const arr = (await this.array()) ?? []
|
||||||
|
const { readable, writable } = new TransformStream()
|
||||||
|
arr.forEach((el) => writable.getWriter().write(el))
|
||||||
|
yield* readable.getIterator()
|
||||||
|
}
|
||||||
|
|
||||||
/** Deletes everything from Cache */
|
/** Deletes everything from Cache */
|
||||||
flush(): any {
|
flush(): any {
|
||||||
return this.client.cache.deleteCache(this.cacheName)
|
return this.client.cache.deleteCache(this.cacheName)
|
||||||
|
|
|
@ -39,4 +39,11 @@ export class BaseChildManager<T, T2> {
|
||||||
}
|
}
|
||||||
return collection
|
return collection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async *[Symbol.asyncIterator](): AsyncIterableIterator<T2> {
|
||||||
|
const arr = (await this.array()) ?? []
|
||||||
|
const { readable, writable } = new TransformStream()
|
||||||
|
arr.forEach((el: unknown) => writable.getWriter().write(el))
|
||||||
|
yield* readable.getIterator()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,6 +227,13 @@ client.on('messageCreate', async (msg: Message) => {
|
||||||
})
|
})
|
||||||
await msg.member?.roles.add(role)
|
await msg.member?.roles.add(role)
|
||||||
}
|
}
|
||||||
|
} else if (msg.content === '!roles') {
|
||||||
|
let buf = 'Roles:'
|
||||||
|
if (msg.member === undefined) return
|
||||||
|
for await (const role of msg.member.roles) {
|
||||||
|
buf += `\n${role.name}`
|
||||||
|
}
|
||||||
|
msg.reply(buf)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue