// the take
A tiny, zero-dependency set of helpers (isIterable, forEach, forAwaitEach, createIterator, etc.) for working with ES2015 Iterables and the then-unofficial AsyncIterator proposal across any JS environment, including pre-ES2015 browsers like IE11. It's aimed at library authors who want to accept Iterables/Array-likes instead of hard-coding Array, not at application developers.
Genuinely tiny (under 1KB min+gzip) with no dependencies, so it's cheap to vendor into another library. forEach delegates straight to native Array#forEach and uses a plain for-loop for Array-likes, so you don't pay iterator-protocol overhead on the common case. Ships Flow and TypeScript definitions out of the box, and the API faithfully mirrors the ECMAScript spec's iterator semantics (including skipping holes like Array#forEach does) rather than inventing its own behavior.
The README itself opens with a note that all of this is now natively supported by every browser in use and tells you to just use native Symbol.iterator/for-await-of instead — the project is explicitly saying it's obsolete for anything but legacy-environment support. Last push was Feb 2023 and the bulk of the design dates to the ES2017 AsyncIterator stage-3 proposal era, so it's effectively frozen, not actively maintained. forAwaitEach has no built-in way to break early; the README's own answer is a throw/try-catch sentinel hack, which is awkward compared to native for-await-of's break statement. If you're not targeting IE11 or very old Node, there's no real reason to take this as a dependency today.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →