glance-selector
Version:
Glance selector library
36 lines (31 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.reduce = reduce;
exports.unique = unique;
function reduce(collection, memo, iteratee, resultHandler) {
function process(i, collection, memo, iteratee, handler) {
if (i < collection.length) {
return iteratee(memo, collection[i], function (err, result) {
if (err) {
return handler(err, memo);
}
return process(++i, collection, result, iteratee, handler);
});
}
return handler(null, memo);
}
return process(0, collection, memo, iteratee, resultHandler);
}
function unique(array, resultHandler) {
return browserExecute(function (array, handler) {
try {
return handler(null, array.filter(function (x, i) {
return array.indexOf(x) === i;
}));
} catch (err) {
return handler(err, []);
}
}, array, resultHandler);
}