refactor(clear): simplify clear() with async iterator + pipeline #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
I'm using this library in a production project β it has been very helpful, thanks for maintaining it! π
While reviewing the internal implementation, I found the
clear()method a bit hard to follow because it mixedPromiseconstruction and event callbacks.This PR refactors
clear()to use a modern async iterator pattern (for await...of) with batched pipeline deletion,making the flow easier to read and maintain without changing the behavior.
Changes
clear()by replacing manualPromiseandstream.on(...)callbacks withfor await...of.pipeline.del()followed bypipeline.exec().Why
The previous version worked fine but relied on nested callbacks and explicit Promise construction,
which made it less straightforward to read.
Using async iteration improves readability and aligns with modern Node.js async I/O practices.
Notes
Thanks again for the great library!