
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Generic, variadic, iterable zip.
Sometimes you want to iterate over several ES6 Iterables at once, but writing your own zip function can be annoying and it's hard to get it to work with TypeScript well. it-zip is a tiny package that does exactly this so that you don't have to think about it.
The source code is 25 lines of code and the package has no dependencies. You need TypeScript 4.0+ and downlevelIteration must be enabled if your target is ES5 or earlier.
npm i ziterable
The package exports a function zip that takes arbitrarily many ES6 iterables, and returns an iterable of typed tuples. The iterable that zip returns yields iterators that terminate when the first of its component iterators terminates.
For example, if you pass zip three arguments of type Iterable<string>, Iterable<number>, and Iterable<boolean>, it will return an iterable of type Iterable<[string, number, boolean, number]>. The last tuple slot is the iteration index.
import { zip } from "it-zip"
const A = [4, 5, 1, 9]
const B = ["foo", "bar", "baz"]
const C = [true, true, false]
const print = (a: number, b: string, c: boolean) => console.log(a, b, c)
for (const [a, b, c, i] of zip(A, B, C)) {
console.log("index", i)
print(a, b, c)
}
There is also a zipAsync function that does the does the same thing for async iterables.
import { zipAsync } from "it-zip"
async function* A(): AsyncIterable<number> {
yield 1
yield 2
}
async function* B(): AsyncIterable<string> {
yield "hello"
yield "world"
}
for await (const [a, b] of zipAsync(A(), B())) {
// [a: number, b: string]
}
it-zip is meant to be a minimal utility library - it's unlikely that I'll want to add new features to it, but if you find bugs, have interface or API suggestions, or general feedback, feel free to open an issue to discuss it!
MIT © 2020 Joel Gustafson
FAQs
Generic, variadic, iterable zip
We found that it-zip demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.