3 Object.defineProperty(exports, "__esModule", {
6 exports.default = _filter;
8 var _arrayMap = require('lodash/_arrayMap');
10 var _arrayMap2 = _interopRequireDefault(_arrayMap);
12 var _isArrayLike = require('lodash/isArrayLike');
14 var _isArrayLike2 = _interopRequireDefault(_isArrayLike);
16 var _baseProperty = require('lodash/_baseProperty');
18 var _baseProperty2 = _interopRequireDefault(_baseProperty);
20 var _noop = require('lodash/noop');
22 var _noop2 = _interopRequireDefault(_noop);
24 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26 function filterArray(eachfn, arr, iteratee, callback) {
27 var truthValues = new Array(arr.length);
28 eachfn(arr, function (x, index, callback) {
29 iteratee(x, function (err, v) {
30 truthValues[index] = !!v;
34 if (err) return callback(err);
36 for (var i = 0; i < arr.length; i++) {
37 if (truthValues[i]) results.push(arr[i]);
39 callback(null, results);
43 function filterGeneric(eachfn, coll, iteratee, callback) {
45 eachfn(coll, function (x, index, callback) {
46 iteratee(x, function (err, v) {
51 results.push({ index: index, value: x });
60 callback(null, (0, _arrayMap2.default)(results.sort(function (a, b) {
61 return a.index - b.index;
62 }), (0, _baseProperty2.default)('value')));
67 function _filter(eachfn, coll, iteratee, callback) {
68 var filter = (0, _isArrayLike2.default)(coll) ? filterArray : filterGeneric;
69 filter(eachfn, coll, iteratee, callback || _noop2.default);
71 module.exports = exports['default'];