UNPKG

ts-prime

Version:

A utility library for JavaScript and Typescript.

30 lines (29 loc) 796 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var purry_1 = require("./purry"); var _reduceLazy_1 = require("./_reduceLazy"); function uniqBy() { return purry_1.purry(_uniqBy, arguments, lazyUniqBy); } exports.uniqBy = uniqBy; function _uniqBy(array, transformer) { return _reduceLazy_1._reduceLazy(array, lazyUniqBy(transformer)); } function lazyUniqBy(transformer) { var set = new Set(); return function (value) { var appliedItem = transformer(value); if (set.has(appliedItem)) { return { done: false, hasNext: false, }; } set.add(appliedItem); return { done: false, hasNext: true, next: value, }; }; }