Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

asyncbox

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asyncbox - npm Package Compare versions

Comparing version 2.5.0 to 2.5.1

623

build/lib/asyncbox.js

@@ -1,189 +0,121 @@

require('source-map-support').install();
"use strict";
'use strict';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _slicedToArray = require('babel-runtime/helpers/sliced-to-array')['default'];
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];
var _regeneratorRuntime = require('babel-runtime/regenerator')['default'];
var _getIterator = require('babel-runtime/core-js/get-iterator')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sleep = sleep;
exports.retry = retry;
exports.nodeify = nodeify;
exports.nodeifyAll = nodeifyAll;
exports.retryInterval = retryInterval;
exports.asyncify = asyncify;
exports.parallel = parallel;
exports.asyncmap = asyncmap;
exports.asyncfilter = asyncfilter;
exports.waitForCondition = waitForCondition;
var _bluebird = require('bluebird');
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _bluebird2 = _interopRequireDefault(_bluebird);
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _es6Mapify = require('es6-mapify');
var _bluebird = _interopRequireDefault(require("bluebird"));
var _lodash = require('lodash');
var _es6Mapify = require("es6-mapify");
var _lodash2 = _interopRequireDefault(_lodash);
var _lodash = _interopRequireDefault(require("lodash"));
function sleep(ms) {
return _regeneratorRuntime.async(function sleep$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(_bluebird2['default'].delay(ms));
function sleep(_x) {
return _sleep.apply(this, arguments);
}
case 2:
return context$1$0.abrupt('return', context$1$0.sent);
function _sleep() {
_sleep = (0, _asyncToGenerator2.default)(function* (ms) {
return yield _bluebird.default.delay(ms);
});
return _sleep.apply(this, arguments);
}
case 3:
case 'end':
return context$1$0.stop();
}
}, null, this);
function retry(_x2, _x3) {
return _retry.apply(this, arguments);
}
function retry(times, fn) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
function _retry() {
_retry = (0, _asyncToGenerator2.default)(function* (times, fn, ...args) {
let tries = 0;
let done = false;
let res = null;
var tries, done, res;
return _regeneratorRuntime.async(function retry$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
tries = 0;
done = false;
res = null;
while (!done && tries < times) {
tries++;
case 3:
if (!(!done && tries < times)) {
context$1$0.next = 18;
break;
}
tries++;
context$1$0.prev = 5;
context$1$0.next = 8;
return _regeneratorRuntime.awrap(fn.apply(undefined, args));
case 8:
res = context$1$0.sent;
try {
res = yield fn(...args);
done = true;
context$1$0.next = 16;
break;
case 12:
context$1$0.prev = 12;
context$1$0.t0 = context$1$0['catch'](5);
if (!(tries >= times)) {
context$1$0.next = 16;
break;
} catch (err) {
if (tries >= times) {
throw err;
}
}
}
throw context$1$0.t0;
return res;
});
return _retry.apply(this, arguments);
}
case 16:
context$1$0.next = 3;
break;
case 18:
return context$1$0.abrupt('return', res);
case 19:
case 'end':
return context$1$0.stop();
}
}, null, this, [[5, 12]]);
function retryInterval(_x4, _x5, _x6) {
return _retryInterval.apply(this, arguments);
}
function retryInterval(times, sleepMs, fn) {
for (var _len2 = arguments.length, args = Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {
args[_key2 - 3] = arguments[_key2];
}
function _retryInterval() {
_retryInterval = (0, _asyncToGenerator2.default)(function* (times, sleepMs, fn, ...args) {
let count = 0;
var count, wrapped;
return _regeneratorRuntime.async(function retryInterval$(context$1$0) {
var _this = this;
let wrapped = function () {
var _ref = (0, _asyncToGenerator2.default)(function* () {
count++;
let res;
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
count = 0;
try {
res = yield fn(...args);
} catch (e) {
if (count !== times) {
yield sleep(sleepMs);
}
wrapped = function wrapped() {
var res;
return _regeneratorRuntime.async(function wrapped$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
count++;
res = undefined;
context$2$0.prev = 2;
context$2$0.next = 5;
return _regeneratorRuntime.awrap(fn.apply(undefined, args));
throw e;
}
case 5:
res = context$2$0.sent;
context$2$0.next = 14;
break;
return res;
});
case 8:
context$2$0.prev = 8;
context$2$0.t0 = context$2$0['catch'](2);
return function wrapped() {
return _ref.apply(this, arguments);
};
}();
if (!(count !== times)) {
context$2$0.next = 13;
break;
}
return yield retry(times, wrapped);
});
return _retryInterval.apply(this, arguments);
}
context$2$0.next = 13;
return _regeneratorRuntime.awrap(sleep(sleepMs));
case 13:
throw context$2$0.t0;
case 14:
return context$2$0.abrupt('return', res);
case 15:
case 'end':
return context$2$0.stop();
}
}, null, _this, [[2, 8]]);
};
return context$1$0.abrupt('return', retry(times, wrapped));
case 3:
case 'end':
return context$1$0.stop();
}
}, null, this);
function parallel(_x7) {
return _parallel.apply(this, arguments);
}
function parallel(promises) {
return _regeneratorRuntime.async(function parallel$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
context$1$0.next = 2;
return _regeneratorRuntime.awrap(_bluebird2['default'].all(promises));
case 2:
return context$1$0.abrupt('return', context$1$0.sent);
case 3:
case 'end':
return context$1$0.stop();
}
}, null, this);
function _parallel() {
_parallel = (0, _asyncToGenerator2.default)(function* (promises) {
return yield _bluebird.default.all(promises);
});
return _parallel.apply(this, arguments);
}
function nodeify(promisey, cb) {
// eslint-disable-line promise/prefer-await-to-callbacks
return _bluebird2['default'].resolve(promisey).nodeify(cb);
return _bluebird.default.resolve(promisey).nodeify(cb);
}
function nodeifyAll(promiseyMap) {
var cbMap = {};
let cbMap = {};
var _iteratorNormalCompletion = true;

@@ -194,22 +126,12 @@ var _didIteratorError = false;

try {
var _loop = function () {
var _step$value = _slicedToArray(_step.value, 2);
for (var _iterator = (0, _es6Mapify.mapify)(promiseyMap)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
let _step$value = (0, _slicedToArray2.default)(_step.value, 2),
name = _step$value[0],
fn = _step$value[1];
var name = _step$value[0];
var fn = _step$value[1];
/*jshint -W083 */
cbMap[name] = function () {
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
var _cb = args.slice(-1)[0];
cbMap[name] = function (...args) {
let _cb = args.slice(-1)[0];
args = args.slice(0, -1);
nodeify(fn.apply(undefined, _toConsumableArray(args)), _cb);
nodeify(fn(...args), _cb);
};
};
for (var _iterator = _getIterator((0, _es6Mapify.mapify)(promiseyMap)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
_loop();
}

@@ -221,4 +143,4 @@ } catch (err) {

try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}

@@ -235,289 +157,142 @@ } finally {

function asyncify(fn) {
for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
args[_key4 - 1] = arguments[_key4];
}
function asyncify(fn, ...args) {
_bluebird.default.resolve(fn(...args)).done();
}
_bluebird2['default'].resolve(fn.apply(undefined, args)).done();
function asyncmap(_x8, _x9) {
return _asyncmap.apply(this, arguments);
}
function asyncmap(coll, mapper) {
var runInParallel = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];
function _asyncmap() {
_asyncmap = (0, _asyncToGenerator2.default)(function* (coll, mapper, runInParallel = true) {
if (runInParallel) {
return parallel(coll.map(mapper));
}
var newColl, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, item;
let newColl = [];
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
return _regeneratorRuntime.async(function asyncmap$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
if (!runInParallel) {
context$1$0.next = 2;
break;
try {
for (var _iterator2 = coll[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
let item = _step2.value;
newColl.push((yield mapper(item)));
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
_iterator2.return();
}
return context$1$0.abrupt('return', parallel(coll.map(mapper)));
case 2:
newColl = [];
_iteratorNormalCompletion2 = true;
_didIteratorError2 = false;
_iteratorError2 = undefined;
context$1$0.prev = 6;
_iterator2 = _getIterator(coll);
case 8:
if (_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done) {
context$1$0.next = 18;
break;
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
item = _step2.value;
context$1$0.t0 = newColl;
context$1$0.next = 13;
return _regeneratorRuntime.awrap(mapper(item));
return newColl;
});
return _asyncmap.apply(this, arguments);
}
case 13:
context$1$0.t1 = context$1$0.sent;
context$1$0.t0.push.call(context$1$0.t0, context$1$0.t1);
case 15:
_iteratorNormalCompletion2 = true;
context$1$0.next = 8;
break;
case 18:
context$1$0.next = 24;
break;
case 20:
context$1$0.prev = 20;
context$1$0.t2 = context$1$0['catch'](6);
_didIteratorError2 = true;
_iteratorError2 = context$1$0.t2;
case 24:
context$1$0.prev = 24;
context$1$0.prev = 25;
if (!_iteratorNormalCompletion2 && _iterator2['return']) {
_iterator2['return']();
}
case 27:
context$1$0.prev = 27;
if (!_didIteratorError2) {
context$1$0.next = 30;
break;
}
throw _iteratorError2;
case 30:
return context$1$0.finish(27);
case 31:
return context$1$0.finish(24);
case 32:
return context$1$0.abrupt('return', newColl);
case 33:
case 'end':
return context$1$0.stop();
}
}, null, this, [[6, 20, 24, 32], [25,, 27, 31]]);
function asyncfilter(_x10, _x11) {
return _asyncfilter.apply(this, arguments);
}
function asyncfilter(coll, filter) {
var runInParallel = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];
function _asyncfilter() {
_asyncfilter = (0, _asyncToGenerator2.default)(function* (coll, filter, runInParallel = true) {
let newColl = [];
var newColl, bools, i, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, item;
if (runInParallel) {
let bools = yield parallel(coll.map(filter));
return _regeneratorRuntime.async(function asyncfilter$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
newColl = [];
if (!runInParallel) {
context$1$0.next = 8;
break;
for (let i = 0; i < coll.length; i++) {
if (bools[i]) {
newColl.push(coll[i]);
}
}
} else {
var _iteratorNormalCompletion3 = true;
var _didIteratorError3 = false;
var _iteratorError3 = undefined;
context$1$0.next = 4;
return _regeneratorRuntime.awrap(parallel(coll.map(filter)));
try {
for (var _iterator3 = coll[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
let item = _step3.value;
case 4:
bools = context$1$0.sent;
for (i = 0; i < coll.length; i++) {
if (bools[i]) {
newColl.push(coll[i]);
if (yield filter(item)) {
newColl.push(item);
}
}
context$1$0.next = 36;
break;
case 8:
_iteratorNormalCompletion3 = true;
_didIteratorError3 = false;
_iteratorError3 = undefined;
context$1$0.prev = 11;
_iterator3 = _getIterator(coll);
case 13:
if (_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) {
context$1$0.next = 22;
break;
} catch (err) {
_didIteratorError3 = true;
_iteratorError3 = err;
} finally {
try {
if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
_iterator3.return();
}
} finally {
if (_didIteratorError3) {
throw _iteratorError3;
}
}
}
}
item = _step3.value;
context$1$0.next = 17;
return _regeneratorRuntime.awrap(filter(item));
return newColl;
});
return _asyncfilter.apply(this, arguments);
}
case 17:
if (!context$1$0.sent) {
context$1$0.next = 19;
break;
}
function waitForCondition(_x12) {
return _waitForCondition.apply(this, arguments);
}
newColl.push(item);
function _waitForCondition() {
_waitForCondition = (0, _asyncToGenerator2.default)(function* (condFn, opts = {}) {
_lodash.default.defaults(opts, {
waitMs: 5000,
intervalMs: 500
});
case 19:
_iteratorNormalCompletion3 = true;
context$1$0.next = 13;
break;
let debug = opts.logger ? opts.logger.debug.bind(opts.logger) : _lodash.default.noop;
let begunAt = Date.now();
let endAt = begunAt + opts.waitMs;
case 22:
context$1$0.next = 28;
break;
let spin = function () {
var _ref2 = (0, _asyncToGenerator2.default)(function* () {
const result = yield condFn();
case 24:
context$1$0.prev = 24;
context$1$0.t0 = context$1$0['catch'](11);
_didIteratorError3 = true;
_iteratorError3 = context$1$0.t0;
case 28:
context$1$0.prev = 28;
context$1$0.prev = 29;
if (!_iteratorNormalCompletion3 && _iterator3['return']) {
_iterator3['return']();
if (result) {
return result;
}
case 31:
context$1$0.prev = 31;
let now = Date.now();
let waited = now - begunAt;
if (!_didIteratorError3) {
context$1$0.next = 34;
break;
if (now < endAt) {
debug(`Waited for ${waited} ms so far`);
yield _bluebird.default.delay(opts.intervalMs);
return yield spin();
}
throw _iteratorError3;
throw new Error(`Condition unmet after ${waited} ms. Timing out.`);
});
case 34:
return context$1$0.finish(31);
return function spin() {
return _ref2.apply(this, arguments);
};
}();
case 35:
return context$1$0.finish(28);
return yield spin();
});
return _waitForCondition.apply(this, arguments);
}require('source-map-support').install();
case 36:
return context$1$0.abrupt('return', newColl);
case 37:
case 'end':
return context$1$0.stop();
}
}, null, this, [[11, 24, 28, 36], [29,, 31, 35]]);
}
function waitForCondition(condFn) {
var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var debug, begunAt, endAt, spin;
return _regeneratorRuntime.async(function waitForCondition$(context$1$0) {
var _this2 = this;
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
_lodash2['default'].defaults(opts, {
waitMs: 5000,
intervalMs: 500
});
debug = opts.logger ? opts.logger.debug.bind(opts.logger) : _lodash2['default'].noop;
begunAt = Date.now();
endAt = begunAt + opts.waitMs;
spin = function spin() {
var result, now, waited;
return _regeneratorRuntime.async(function spin$(context$2$0) {
while (1) switch (context$2$0.prev = context$2$0.next) {
case 0:
context$2$0.next = 2;
return _regeneratorRuntime.awrap(condFn());
case 2:
result = context$2$0.sent;
if (!result) {
context$2$0.next = 5;
break;
}
return context$2$0.abrupt('return', result);
case 5:
now = Date.now();
waited = now - begunAt;
if (!(now < endAt)) {
context$2$0.next = 14;
break;
}
debug('Waited for ' + waited + ' ms so far');
context$2$0.next = 11;
return _regeneratorRuntime.awrap(_bluebird2['default'].delay(opts.intervalMs));
case 11:
context$2$0.next = 13;
return _regeneratorRuntime.awrap(spin());
case 13:
return context$2$0.abrupt('return', context$2$0.sent);
case 14:
throw new Error('Condition unmet after ' + waited + ' ms. Timing out.');
case 15:
case 'end':
return context$2$0.stop();
}
}, null, _this2);
};
context$1$0.next = 7;
return _regeneratorRuntime.awrap(spin());
case 7:
return context$1$0.abrupt('return', context$1$0.sent);
case 8:
case 'end':
return context$1$0.stop();
}
}, null, this);
}
exports.sleep = sleep;
exports.retry = retry;
exports.nodeify = nodeify;
exports.nodeifyAll = nodeifyAll;
exports.retryInterval = retryInterval;
exports.asyncify = asyncify;
exports.parallel = parallel;
exports.asyncmap = asyncmap;
exports.asyncfilter = asyncfilter;
exports.waitForCondition = waitForCondition;
// do not pause when finished the last retry
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hc3luY2JveC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBRWMsVUFBVTs7Ozt5QkFDRCxZQUFZOztzQkFDckIsUUFBUTs7OztBQUV0QixTQUFlLEtBQUssQ0FBRSxFQUFFOzs7Ozt5Q0FDVCxzQkFBRSxLQUFLLENBQUMsRUFBRSxDQUFDOzs7Ozs7Ozs7O0NBQ3pCOztBQUVELFNBQWUsS0FBSyxDQUFFLEtBQUssRUFBRSxFQUFFO29DQUFLLElBQUk7QUFBSixRQUFJOzs7TUFDbEMsS0FBSyxFQUNMLElBQUksRUFDSixHQUFHOzs7O0FBRkgsYUFBSyxHQUFHLENBQUM7QUFDVCxZQUFJLEdBQUcsS0FBSztBQUNaLFdBQUcsR0FBRyxJQUFJOzs7Y0FDUCxDQUFDLElBQUksSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFBOzs7OztBQUMzQixhQUFLLEVBQUUsQ0FBQzs7O3lDQUVNLEVBQUUsa0JBQUksSUFBSSxDQUFDOzs7QUFBdkIsV0FBRzs7QUFDSCxZQUFJLEdBQUcsSUFBSSxDQUFDOzs7Ozs7OztjQUVSLEtBQUssSUFBSSxLQUFLLENBQUE7Ozs7Ozs7Ozs7Ozs0Q0FLZixHQUFHOzs7Ozs7O0NBQ1g7O0FBRUQsU0FBZSxhQUFhLENBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO3FDQUFLLElBQUk7QUFBSixRQUFJOzs7TUFDbkQsS0FBSyxFQUNMLE9BQU87Ozs7OztBQURQLGFBQUssR0FBRyxDQUFDOztBQUNULGVBQU8sR0FBRyxTQUFWLE9BQU87Y0FFTCxHQUFHOzs7O0FBRFAscUJBQUssRUFBRSxDQUFDO0FBQ0osbUJBQUc7OztpREFFTyxFQUFFLGtCQUFJLElBQUksQ0FBQzs7O0FBQXZCLG1CQUFHOzs7Ozs7OztzQkFHQyxLQUFLLEtBQUssS0FBSyxDQUFBOzs7Ozs7aURBQ1gsS0FBSyxDQUFDLE9BQU8sQ0FBQzs7Ozs7O29EQUlqQixHQUFHOzs7Ozs7O1NBQ1g7OzRDQUNNLEtBQUssQ0FBQyxLQUFLLEVB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cmFuc3BpbGU6bWFpblxuXG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyBtYXBpZnkgfSBmcm9tICdlczYtbWFwaWZ5JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmFzeW5jIGZ1bmN0aW9uIHNsZWVwIChtcykge1xuICByZXR1cm4gYXdhaXQgQi5kZWxheShtcyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5ICh0aW1lcywgZm4sIC4uLmFyZ3MpIHtcbiAgbGV0IHRyaWVzID0gMDtcbiAgbGV0IGRvbmUgPSBmYWxzZTtcbiAgbGV0IHJlcyA9IG51bGw7XG4gIHdoaWxlICghZG9uZSAmJiB0cmllcyA8IHRpbWVzKSB7XG4gICAgdHJpZXMrKztcbiAgICB0cnkge1xuICAgICAgcmVzID0gYXdhaXQgZm4oLi4uYXJncyk7XG4gICAgICBkb25lID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICh0cmllcyA+PSB0aW1lcykge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJ5SW50ZXJ2YWwgKHRpbWVzLCBzbGVlcE1zLCBmbiwgLi4uYXJncykge1xuICBsZXQgY291bnQgPSAwO1xuICBsZXQgd3JhcHBlZCA9IGFzeW5jICgpID0+IHtcbiAgICBjb3VudCsrO1xuICAgIGxldCByZXM7XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IGF3YWl0IGZuKC4uLmFyZ3MpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGRvIG5vdCBwYXVzZSB3aGVuIGZpbmlzaGVkIHRoZSBsYXN0IHJldHJ5XG4gICAgICBpZiAoY291bnQgIT09IHRpbWVzKSB7XG4gICAgICAgIGF3YWl0IHNsZWVwKHNsZWVwTXMpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcbiAgcmV0dXJuIHJldHJ5KHRpbWVzLCB3cmFwcGVkKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyYWxsZWwgKHByb21pc2VzKSB7XG4gIHJldHVybiBhd2FpdCBCLmFsbChwcm9taXNlcyk7XG59XG5cbmZ1bmN0aW9uIG5vZGVpZnkgKHByb21pc2V5LCBjYikgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLWNhbGxiYWNrc1xuICByZXR1cm4gQi5yZXNvbHZlKHByb21pc2V5KS5ub2RlaWZ5KGNiKTtcbn1cblxuZnVuY3Rpb24gbm9kZWlmeUFsbCAocHJvbWlzZXlNYXApIHtcbiAgbGV0IGNiTWFwID0ge307XG4gIGZvciAobGV0IFtuYW1lLCBmbl0gb2YgbWFwaWZ5KHByb21pc2V5TWFwKSkge1xuICAgIC8qanNoaW50IC1XMDgzICovXG4gICAgY2JNYXBbbmFtZV0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgbGV0IF9jYiA9IGFyZ3Muc2xpY2UoLTEpWzBdO1xuICAgICAgYXJncyA9IGFyZ3Muc2xpY2UoMCwgLTEpO1xuICAgICAgbm9kZWlmeShmbiguLi5hcmdzKSwgX2NiKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBjYk1hcDtcbn1cblxuZnVuY3Rpb24gYXN5bmNpZnkgKGZuLCAuLi5hcmdzKSB7XG4gIEIucmVzb2x2ZShmbiguLi5hcmdzKSkuZG9uZSgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc3luY21hcCAoY29sbCwgbWFwcGVyLCBydW5JblBhcmFsbGVsID0gdHJ1ZSkge1xuICBpZiAocnVuSW5QYXJhbGxlbCkge1xuICAgIHJldHVybiBwYXJhbGxlbChjb2xsLm1hcChtYXBwZXIpKTtcbiAgfVxuXG4gIGxldCBuZXdDb2xsID0gW107XG4gIGZvciAobGV0IGl0ZW0gb2YgY29sbCkge1xuICAgIG5ld0NvbGwucHVzaChhd2FpdCBtYXBwZXIoaXRlbSkpO1xuICB9XG4gIHJldHVybiBuZXdDb2xsO1xufVxuXG5hc3luYyBmdW5jdGlvbiBhc3luY2ZpbHRlciAoY29sbCwgZmlsdGVyLCBydW5JblBhcmFsbGVsID0gdHJ1ZSkge1xuICBsZXQgbmV3Q29sbCA9IFtdO1xuICBpZiAocnVuSW5QYXJhbGxlbCkge1xuICAgIGxldCBib29scyA9IGF3YWl0IHBhcmFsbGVsKGNvbGwubWFwKGZpbHRlcikpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbC5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGJvb2xzW2ldKSB7XG4gICAgICAgIG5ld0NvbGwucHVzaChjb2xsW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9yIChsZXQgaXRlbSBvZiBjb2xsKSB7XG4gICAgICBpZiAoYXdhaXQgZmlsdGVyKGl0ZW0pKSB7XG4gICAgICAgIG5ld0NvbGwucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ld0NvbGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JDb25kaXRpb24gKGNvbmRGbiwgb3B0cyA9IHt9KSB7XG4gIF8uZGVmYXVsdHMob3B0cywge1xuICAgIHdhaXRNczogNTAwMCxcbiAgICBpbnRlcnZhbE1zIDogNTAwLFxuICB9KTtcbiAgbGV0IGRlYnVnID0gb3B0cy5sb2dnZXIgPyBvcHRzLmxvZ2dlci5kZWJ1Zy5iaW5kKG9wdHMubG9nZ2VyKSA6IF8ubm9vcDtcbiAgbGV0IGJlZ3VuQXQgPSBEYXRlLm5vdygpO1xuICBsZXQgZW5kQXQgPSBiZWd1bkF0ICsgb3B0cy53YWl0TXM7XG4gIGxldCBzcGluID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbmRGbigpO1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGxldCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGxldCB3YWl0ZWQgPSBub3cgLSBiZWd1bkF0O1xuICAgIGlmIChub3cgPCBlbmRBdCkge1xuICAgICAgZGVidWcoYFdhaXRlZCBmb3IgJHt3YWl0ZWR9IG1zIHNvIGZhcmApO1xuICAgICAgYXdhaXQgQi5kZWxheShvcHRzLmludGVydmFsTXMpO1xuICAgICAgcmV0dXJuIGF3YWl0IHNwaW4oKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb25kaXRpb24gdW5tZXQgYWZ0ZXIgJHt3YWl0ZWR9IG1zLiBUaW1pbmcgb3V0LmApO1xuICB9O1xuICByZXR1cm4gYXdhaXQgc3BpbigpO1xufVxuXG5leHBvcnQgeyBzbGVlcCwgcmV0cnksIG5vZGVpZnksIG5vZGVpZnlBbGwsIHJldHJ5SW50ZXJ2YWwsIGFzeW5jaWZ5LCBwYXJhbGxlbCxcbiAgICAgICAgIGFzeW5jbWFwLCBhc3luY2ZpbHRlciwgd2FpdEZvckNvbmRpdGlvbn07XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9hc3luY2JveC5qcyJdLCJuYW1lcyI6WyJzbGVlcCIsIm1zIiwiQiIsImRlbGF5IiwicmV0cnkiLCJ0aW1lcyIsImZuIiwiYXJncyIsInRyaWVzIiwiZG9uZSIsInJlcyIsImVyciIsInJldHJ5SW50ZXJ2YWwiLCJzbGVlcE1zIiwiY291bnQiLCJ3cmFwcGVkIiwiZSIsInBhcmFsbGVsIiwicHJvbWlzZXMiLCJhbGwiLCJub2RlaWZ5IiwicHJvbWlzZXkiLCJjYiIsInJlc29sdmUiLCJub2RlaWZ5QWxsIiwicHJvbWlzZXlNYXAiLCJjYk1hcCIsIm5hbWUiLCJfY2IiLCJzbGljZSIsImFzeW5jaWZ5IiwiYXN5bmNtYXAiLCJjb2xsIiwibWFwcGVyIiwicnVuSW5QYXJhbGxlbCIsIm1hcCIsIm5ld0NvbGwiLCJpdGVtIiwicHVzaCIsImFzeW5jZmlsdGVyIiwiZmlsdGVyIiwiYm9vbHMiLCJpIiwibGVuZ3RoIiwid2FpdEZvckNvbmRpdGlvbiIsImNvbmRGbiIsIm9wdHMiLCJfIiwiZGVmYXVsdHMiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZGVidWciLCJsb2dnZXIiLCJiaW5kIiwibm9vcCIsImJlZ3VuQXQiLCJEYXRlIiwibm93IiwiZW5kQXQiLCJzcGluIiwicmVzdWx0Iiwid2FpdGVkIiwiRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7U0FFZUEsSzs7Ozs7MkNBQWYsV0FBc0JDLEVBQXRCLEVBQTBCO0FBQ3hCLGlCQUFhQyxrQkFBRUMsS0FBRixDQUFRRixFQUFSLENBQWI7QUFDRCxHOzs7O1NBRWNHLEs7Ozs7OzJDQUFmLFdBQXNCQyxLQUF0QixFQUE2QkMsRUFBN0IsRUFBaUMsR0FBR0MsSUFBcEMsRUFBMEM7QUFDeEMsUUFBSUMsS0FBSyxHQUFHLENBQVo7QUFDQSxRQUFJQyxJQUFJLEdBQUcsS0FBWDtBQUNBLFFBQUlDLEdBQUcsR0FBRyxJQUFWOztBQUNBLFdBQU8sQ0FBQ0Qs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IHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IG1hcGlmeSB9IGZyb20gJ2VzNi1tYXBpZnknO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuYXN5bmMgZnVuY3Rpb24gc2xlZXAgKG1zKSB7XG4gIHJldHVybiBhd2FpdCBCLmRlbGF5KG1zKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnkgKHRpbWVzLCBmbiwgLi4uYXJncykge1xuICBsZXQgdHJpZXMgPSAwO1xuICBsZXQgZG9uZSA9IGZhbHNlO1xuICBsZXQgcmVzID0gbnVsbDtcbiAgd2hpbGUgKCFkb25lICYmIHRyaWVzIDwgdGltZXMpIHtcbiAgICB0cmllcysrO1xuICAgIHRyeSB7XG4gICAgICByZXMgPSBhd2FpdCBmbiguLi5hcmdzKTtcbiAgICAgIGRvbmUgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKHRyaWVzID49IHRpbWVzKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmV0cnlJbnRlcnZhbCAodGltZXMsIHNsZWVwTXMsIGZuLCAuLi5hcmdzKSB7XG4gIGxldCBjb3VudCA9IDA7XG4gIGxldCB3cmFwcGVkID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvdW50Kys7XG4gICAgbGV0IHJlcztcbiAgICB0cnkge1xuICAgICAgcmVzID0gYXdhaXQgZm4oLi4uYXJncyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gZG8gbm90IHBhdXNlIHdoZW4gZmluaXNoZWQgdGhlIGxhc3QgcmV0cnlcbiAgICAgIGlmIChjb3VudCAhPT0gdGltZXMpIHtcbiAgICAgICAgYXdhaXQgc2xlZXAoc2xlZXBNcyk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuICByZXR1cm4gYXdhaXQgcmV0cnkodGltZXMsIHdyYXBwZWQpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwYXJhbGxlbCAocHJvbWlzZXMpIHtcbiAgcmV0dXJuIGF3YWl0IEIuYWxsKHByb21pc2VzKTtcbn1cblxuZnVuY3Rpb24gbm9kZWlmeSAocHJvbWlzZXksIGNiKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcHJvbWlzZS9wcmVmZXItYXdhaXQtdG8tY2FsbGJhY2tzXG4gIHJldHVybiBCLnJlc29sdmUocHJvbWlzZXkpLm5vZGVpZnkoY2IpO1xufVxuXG5mdW5jdGlvbiBub2RlaWZ5QWxsIChwcm9taXNleU1hcCkge1xuICBsZXQgY2JNYXAgPSB7fTtcbiAgZm9yIChsZXQgW25hbWUsIGZuXSBvZiBtYXBpZnkocHJvbWlzZXlNYXApKSB7XG4gICAgLypqc2hpbnQgLVcwODMgKi9cbiAgICBjYk1hcFtuYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICBsZXQgX2NiID0gYXJncy5zbGljZSgtMSlbMF07XG4gICAgICBhcmdzID0gYXJncy5zbGljZSgwLCAtMSk7XG4gICAgICBub2RlaWZ5KGZuKC4uLmFyZ3MpLCBfY2IpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIGNiTWFwO1xufVxuXG5mdW5jdGlvbiBhc3luY2lmeSAoZm4sIC4uLmFyZ3MpIHtcbiAgQi5yZXNvbHZlKGZuKC4uLmFyZ3MpKS5kb25lKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFzeW5jbWFwIChjb2xsLCBtYXBwZXIsIHJ1bkluUGFyYWxsZWwgPSB0cnVlKSB7XG4gIGlmIChydW5JblBhcmFsbGVsKSB7XG4gICAgcmV0dXJuIHBhcmFsbGVsKGNvbGwubWFwKG1hcHBlcikpO1xuICB9XG5cbiAgbGV0IG5ld0NvbGwgPSBbXTtcbiAgZm9yIChsZXQgaXRlbSBvZiBjb2xsKSB7XG4gICAgbmV3Q29sbC5wdXNoKGF3YWl0IG1hcHBlcihpdGVtKSk7XG4gIH1cbiAgcmV0dXJuIG5ld0NvbGw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFzeW5jZmlsdGVyIChjb2xsLCBmaWx0ZXIsIHJ1bkluUGFyYWxsZWwgPSB0cnVlKSB7XG4gIGxldCBuZXdDb2xsID0gW107XG4gIGlmIChydW5JblBhcmFsbGVsKSB7XG4gICAgbGV0IGJvb2xzID0gYXdhaXQgcGFyYWxsZWwoY29sbC5tYXAoZmlsdGVyKSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYm9vbHNbaV0pIHtcbiAgICAgICAgbmV3Q29sbC5wdXNoKGNvbGxbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmb3IgKGxldCBpdGVtIG9mIGNvbGwpIHtcbiAgICAgIGlmIChhd2FpdCBmaWx0ZXIoaXRlbSkpIHtcbiAgICAgICAgbmV3Q29sbC5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3Q29sbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gd2FpdEZvckNvbmRpdGlvbiAoY29uZEZuLCBvcHRzID0ge30pIHtcbiAgXy5kZWZhdWx0cyhvcHRzLCB7XG4gICAgd2FpdE1zOiA1MDAwLFxuICAgIGludGVydmFsTXM6IDUwMCxcbiAgfSk7XG4gIGxldCBkZWJ1ZyA9IG9wdHMubG9nZ2VyID8gb3B0cy5sb2dnZXIuZGVidWcuYmluZChvcHRzLmxvZ2dlcikgOiBfLm5vb3A7XG4gIGxldCBiZWd1bkF0ID0gRGF0ZS5ub3coKTtcbiAgbGV0IGVuZEF0ID0gYmVndW5BdCArIG9wdHMud2FpdE1zO1xuICBsZXQgc3BpbiA9IGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb25kRm4oKTtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgd2FpdGVkID0gbm93IC0gYmVndW5BdDtcbiAgICBpZiAobm93IDwgZW5kQXQpIHtcbiAgICAgIGRlYnVnKGBXYWl0ZWQgZm9yICR7d2FpdGVkfSBtcyBzbyBmYXJgKTtcbiAgICAgIGF3YWl0IEIuZGVsYXkob3B0cy5pbnRlcnZhbE1zKTtcbiAgICAgIHJldHVybiBhd2FpdCBzcGluKCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ29uZGl0aW9uIHVubWV0IGFmdGVyICR7d2FpdGVkfSBtcy4gVGltaW5nIG91dC5gKTtcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHNwaW4oKTtcbn1cblxuZXhwb3J0IHtcbiAgc2xlZXAsIHJldHJ5LCBub2RlaWZ5LCBub2RlaWZ5QWxsLCByZXRyeUludGVydmFsLCBhc3luY2lmeSwgcGFyYWxsZWwsXG4gIGFzeW5jbWFwLCBhc3luY2ZpbHRlciwgd2FpdEZvckNvbmRpdGlvblxufTtcbiJdLCJmaWxlIjoibGliL2FzeW5jYm94LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=

@@ -45,3 +45,3 @@ // transpile:main

};
return retry(times, wrapped);
return await retry(times, wrapped);
}

@@ -108,3 +108,3 @@

waitMs: 5000,
intervalMs : 500,
intervalMs: 500,
});

@@ -131,3 +131,5 @@ let debug = opts.logger ? opts.logger.debug.bind(opts.logger) : _.noop;

export { sleep, retry, nodeify, nodeifyAll, retryInterval, asyncify, parallel,
asyncmap, asyncfilter, waitForCondition};
export {
sleep, retry, nodeify, nodeifyAll, retryInterval, asyncify, parallel,
asyncmap, asyncfilter, waitForCondition
};

@@ -9,3 +9,3 @@ {

],
"version": "2.5.0",
"version": "2.5.1",
"author": "jlipps@gmail.com",

@@ -28,4 +28,8 @@ "license": "Apache-2.0",

},
"files": [
"lib",
"build/lib"
],
"dependencies": {
"babel-runtime": "=5.8.24",
"@babel/runtime": "^7.0.0",
"bluebird": "^3.5.1",

@@ -37,3 +41,4 @@ "es6-mapify": "^1.1.0",

"scripts": {
"prepublish": "gulp prepublish",
"clean": "rm -rf node_modules && rm -f package-lock.json && npm install",
"prepare": "gulp prepublish",
"test": "gulp once",

@@ -46,12 +51,13 @@ "e2e-test": "gulp e2e-test",

"devDependencies": {
"appium-gulp-plugins": "^2.2.0",
"chai": "4.1.2",
"ajv": "^6.5.3",
"appium-gulp-plugins": "^3.0.0",
"babel-eslint": "^10.0.0",
"chai": "4.2.0",
"chai-as-promised": "^7.1.1",
"eslint": "^3.18.0",
"eslint-config-appium": "^2.0.1",
"eslint-plugin-babel": "^3.3.0",
"eslint": "^5.2.0",
"eslint-config-appium": "^3.1.0",
"eslint-plugin-import": "^2.2.0",
"eslint-plugin-mocha": "^4.7.0",
"eslint-plugin-promise": "^3.3.1",
"gulp": "^3.8.11",
"eslint-plugin-mocha": "^5.0.0",
"eslint-plugin-promise": "^4.0.0",
"gulp": "^4.0.0",
"request": "^2.47.0",

@@ -58,0 +64,0 @@ "should": "^13.2.1"

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc