UNPKG

iter-tools-es

Version:
25 lines (20 loc) 509 B
const { asyncIterableCurry } = require('../../internal/async-iterable.js'); async function* __asyncDistinct(source, selector) { const set = new Set(); for await (const value of source) { const key = selector ? selector(value) : value; if (set.has(key)) { continue; } set.add(key); yield value; } } exports.__asyncDistinct = __asyncDistinct; const asyncDistinct = asyncIterableCurry(__asyncDistinct, { minArgs: 0, maxArgs: 1 }); exports.asyncDistinct = asyncDistinct;