enable modern JavaScript (ES2016+) for PageTriage (via transpiling/Babel)
Pros
- use modern features like async/await, which
- increases the # of developers that can work on the code, since we can make everything synchronous really easy, and that programming style is straightforward
- increases reliability by eliminating several types of nasty promise bugs
- increases code readability
- makes it easy to convert to TypeScript later
Cons
- step debugging is harder. developers need to learn how to use sourcemaps
- build process is more complicated, need to set up Babel and automatic transpiling
I think @TheDJ mentioned this idea originally, and @Chlod also discussed it with us a bit.
I'd be in favor of exploring this idea more. I was hesitant at first, but as difficult-to-debug Promise bugs keep cropping up, I am changing my mind. I think a refactor of complicated, Promise-heavy files files (such as mark.js, delete.js, and tags.js) to classes + async/await would be a good strategy to get rid of these Promise bugs and improve code health.