gensync

Allows users to use generators in order to write common functions that can be both sync or async.

@jcoreio/async-throttle

throttle async and promise-returning functions. Other packages don't do it right.