postalsys / imapflow

IMAP Client library for EmailEngine Email API (https://emailengine.app)
https://imapflow.com
Other
350 stars 59 forks source link

Add `fetchAll` method #207

Closed Remscar closed 2 months ago

Remscar commented 2 months ago

Adds a new fetchAll public method.

fetchAll just calls fetch but will drain the async generator and return an array of results.

It appears users commonly hit the issue with this library where they are unable to make IMAP commands while using fetchAll not realizing that it causes a deadlock. Without the library automatically detecting misusage like this, time will be wasted by developers while they learn about this edge case. Unfortunately a single comment in some example code for the documentation of the .fetch function is not enough.

Having a .fetchAll method provides an easy to use interface for the library which will help new users and increase library adoption.

Related Issues: https://github.com/postalsys/imapflow/issues/206 https://github.com/postalsys/imapflow/issues/159 https://github.com/postalsys/imapflow/issues/130 https://github.com/postalsys/imapflow/issues/110

CLAassistant commented 2 months ago

CLA assistant check
All committers have signed the CLA.