UNPKG

1.47 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = _createTester;
7
8var _noop = require('lodash/noop');
9
10var _noop2 = _interopRequireDefault(_noop);
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14function _createTester(eachfn, check, getResult) {
15 return function (arr, limit, iteratee, cb) {
16 function done(err) {
17 if (cb) {
18 if (err) {
19 cb(err);
20 } else {
21 cb(null, getResult(false));
22 }
23 }
24 }
25 function wrappedIteratee(x, _, callback) {
26 if (!cb) return callback();
27 iteratee(x, function (err, v) {
28 if (cb) {
29 if (err) {
30 cb(err);
31 cb = iteratee = false;
32 } else if (check(v)) {
33 cb(null, getResult(true, x));
34 cb = iteratee = false;
35 }
36 }
37 callback();
38 });
39 }
40 if (arguments.length > 3) {
41 cb = cb || _noop2.default;
42 eachfn(arr, limit, wrappedIteratee, done);
43 } else {
44 cb = iteratee;
45 cb = cb || _noop2.default;
46 iteratee = limit;
47 eachfn(arr, wrappedIteratee, done);
48 }
49 };
50}
51module.exports = exports['default'];
\No newline at end of file