UNPKG

1.23 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = _createTester;
7
8var _breakLoop = require('./breakLoop.js');
9
10var _breakLoop2 = _interopRequireDefault(_breakLoop);
11
12var _wrapAsync = require('./wrapAsync.js');
13
14var _wrapAsync2 = _interopRequireDefault(_wrapAsync);
15
16function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18function _createTester(check, getResult) {
19 return (eachfn, arr, _iteratee, cb) => {
20 var testPassed = false;
21 var testResult;
22 const iteratee = (0, _wrapAsync2.default)(_iteratee);
23 eachfn(arr, (value, _, callback) => {
24 iteratee(value, (err, result) => {
25 if (err || err === false) return callback(err);
26
27 if (check(result) && !testResult) {
28 testPassed = true;
29 testResult = getResult(true, value);
30 return callback(null, _breakLoop2.default);
31 }
32 callback();
33 });
34 }, err => {
35 if (err) return cb(err);
36 cb(null, testPassed ? testResult : getResult(false));
37 });
38 };
39}
40module.exports = exports['default'];
\No newline at end of file