New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(eslint-plugin): [require-await] treat yield* asynciterable as an await #4125
fix(eslint-plugin): [require-await] treat yield* asynciterable as an await #4125
Conversation
Thanks for the PR, @danny-may! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitors per day. |
✔️ Deploy Preview for typescript-eslint ready! 🔨 Explore the source changes: 69c34de 🔍 Inspect the deploy log: https://app.netlify.com/sites/typescript-eslint/deploys/618d7e62a62f8d0007feb192 😎 Browse the preview: https://deploy-preview-4125--typescript-eslint.netlify.app |
Codecov Report
@@ Coverage Diff @@
## master #4125 +/- ##
=======================================
Coverage 93.35% 93.35%
=======================================
Files 152 152
Lines 8035 8041 +6
Branches 2579 2581 +2
=======================================
+ Hits 7501 7507 +6
+ Misses 180 179 -1
- Partials 354 355 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed with bradzacher, generators + async iterators is such a bizarre topic to get through. Thanks for taking this on @danny-may! ⭐
PR Checklist
await
#3507Overview
The previous implementation specifically only checked for the
AsyncGenerator
type, however any type that has a[Symbol.asyncIterator]
property is closer to what actually happens at runtime. This change checks for the existance of[Symbol.asyncIterator]
on any of the types (union or intersection types are checked) and declares await as being called if one exists.This also fixes a small related issue where
yield* <some literal>
would cause any previousyield*
's to be ignored, giving a false positive.