Linux vmi2545633.contaboserver.net 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64
Apache/2.4.62 (Debian)
Server IP : 127.0.0.1 & Your IP : 127.0.0.1
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
node_modules /
pm2 /
node_modules /
async /
Delete
Unzip
Name
Size
Permission
Date
Action
dist
[ DIR ]
drwxr-xr-x
2025-04-08 13:05
internal
[ DIR ]
drwxr-xr-x
2025-04-08 13:05
CHANGELOG.md
32.7
KB
-rw-r--r--
2025-04-08 13:05
LICENSE
1.04
KB
-rw-r--r--
2025-04-08 13:05
README.md
3.14
KB
-rw-r--r--
2025-04-08 13:05
all.js
3.48
KB
-rw-r--r--
2025-04-08 13:05
allLimit.js
1.71
KB
-rw-r--r--
2025-04-08 13:05
allSeries.js
1.61
KB
-rw-r--r--
2025-04-08 13:05
any.js
3.71
KB
-rw-r--r--
2025-04-08 13:05
anyLimit.js
1.74
KB
-rw-r--r--
2025-04-08 13:05
anySeries.js
1.64
KB
-rw-r--r--
2025-04-08 13:05
apply.js
217
B
-rw-r--r--
2025-04-08 13:05
applyEach.js
1.94
KB
-rw-r--r--
2025-04-08 13:05
applyEachSeries.js
1.27
KB
-rw-r--r--
2025-04-08 13:05
asyncify.js
3.67
KB
-rw-r--r--
2025-04-08 13:05
auto.js
11.58
KB
-rw-r--r--
2025-04-08 13:05
autoInject.js
6.93
KB
-rw-r--r--
2025-04-08 13:05
bower.json
239
B
-rw-r--r--
2025-04-08 13:05
cargo.js
2.68
KB
-rw-r--r--
2025-04-08 13:05
cargoQueue.js
3.27
KB
-rw-r--r--
2025-04-08 13:05
compose.js
1.53
KB
-rw-r--r--
2025-04-08 13:05
concat.js
3.57
KB
-rw-r--r--
2025-04-08 13:05
concatLimit.js
2.04
KB
-rw-r--r--
2025-04-08 13:05
concatSeries.js
1.44
KB
-rw-r--r--
2025-04-08 13:05
constant.js
302
B
-rw-r--r--
2025-04-08 13:05
detect.js
3.17
KB
-rw-r--r--
2025-04-08 13:05
detectLimit.js
1.79
KB
-rw-r--r--
2025-04-08 13:05
detectSeries.js
1.7
KB
-rw-r--r--
2025-04-08 13:05
dir.js
1.27
KB
-rw-r--r--
2025-04-08 13:05
doDuring.js
2.25
KB
-rw-r--r--
2025-04-08 13:05
doUntil.js
1.66
KB
-rw-r--r--
2025-04-08 13:05
doWhilst.js
2.25
KB
-rw-r--r--
2025-04-08 13:05
during.js
2.28
KB
-rw-r--r--
2025-04-08 13:05
each.js
3.93
KB
-rw-r--r--
2025-04-08 13:05
eachLimit.js
1.75
KB
-rw-r--r--
2025-04-08 13:05
eachOf.js
5.61
KB
-rw-r--r--
2025-04-08 13:05
eachOfLimit.js
1.6
KB
-rw-r--r--
2025-04-08 13:05
eachOfSeries.js
1.3
KB
-rw-r--r--
2025-04-08 13:05
eachSeries.js
1.54
KB
-rw-r--r--
2025-04-08 13:05
ensureAsync.js
2.26
KB
-rw-r--r--
2025-04-08 13:05
every.js
3.48
KB
-rw-r--r--
2025-04-08 13:05
everyLimit.js
1.71
KB
-rw-r--r--
2025-04-08 13:05
everySeries.js
1.61
KB
-rw-r--r--
2025-04-08 13:05
filter.js
2.83
KB
-rw-r--r--
2025-04-08 13:05
filterLimit.js
1.62
KB
-rw-r--r--
2025-04-08 13:05
filterSeries.js
1.51
KB
-rw-r--r--
2025-04-08 13:05
find.js
3.17
KB
-rw-r--r--
2025-04-08 13:05
findLimit.js
1.79
KB
-rw-r--r--
2025-04-08 13:05
findSeries.js
1.7
KB
-rw-r--r--
2025-04-08 13:05
flatMap.js
3.57
KB
-rw-r--r--
2025-04-08 13:05
flatMapLimit.js
2.04
KB
-rw-r--r--
2025-04-08 13:05
flatMapSeries.js
1.44
KB
-rw-r--r--
2025-04-08 13:05
foldl.js
4.76
KB
-rw-r--r--
2025-04-08 13:05
foldr.js
1.47
KB
-rw-r--r--
2025-04-08 13:05
forEach.js
3.93
KB
-rw-r--r--
2025-04-08 13:05
forEachLimit.js
1.75
KB
-rw-r--r--
2025-04-08 13:05
forEachOf.js
5.61
KB
-rw-r--r--
2025-04-08 13:05
forEachOfLimit.js
1.6
KB
-rw-r--r--
2025-04-08 13:05
forEachOfSeries.js
1.3
KB
-rw-r--r--
2025-04-08 13:05
forEachSeries.js
1.54
KB
-rw-r--r--
2025-04-08 13:05
forever.js
2.07
KB
-rw-r--r--
2025-04-08 13:05
groupBy.js
3.51
KB
-rw-r--r--
2025-04-08 13:05
groupByLimit.js
2.39
KB
-rw-r--r--
2025-04-08 13:05
groupBySeries.js
1.3
KB
-rw-r--r--
2025-04-08 13:05
index.js
19.47
KB
-rw-r--r--
2025-04-08 13:05
inject.js
4.76
KB
-rw-r--r--
2025-04-08 13:05
log.js
1.17
KB
-rw-r--r--
2025-04-08 13:05
map.js
4.49
KB
-rw-r--r--
2025-04-08 13:05
mapLimit.js
1.58
KB
-rw-r--r--
2025-04-08 13:05
mapSeries.js
1.48
KB
-rw-r--r--
2025-04-08 13:05
mapValues.js
4.48
KB
-rw-r--r--
2025-04-08 13:05
mapValuesLimit.js
2.07
KB
-rw-r--r--
2025-04-08 13:05
mapValuesSeries.js
1.35
KB
-rw-r--r--
2025-04-08 13:05
memoize.js
3
KB
-rw-r--r--
2025-04-08 13:05
nextTick.js
1.44
KB
-rw-r--r--
2025-04-08 13:05
package.json
2.15
KB
-rw-r--r--
2025-04-08 13:05
parallel.js
5.44
KB
-rw-r--r--
2025-04-08 13:05
parallelLimit.js
1.48
KB
-rw-r--r--
2025-04-08 13:05
priorityQueue.js
1.41
KB
-rw-r--r--
2025-04-08 13:05
queue.js
626
B
-rw-r--r--
2025-04-08 13:05
race.js
2.08
KB
-rw-r--r--
2025-04-08 13:05
reduce.js
4.76
KB
-rw-r--r--
2025-04-08 13:05
reduceRight.js
1.47
KB
-rw-r--r--
2025-04-08 13:05
reflect.js
2.21
KB
-rw-r--r--
2025-04-08 13:05
reflectAll.js
2.39
KB
-rw-r--r--
2025-04-08 13:05
reject.js
2.61
KB
-rw-r--r--
2025-04-08 13:05
rejectLimit.js
1.54
KB
-rw-r--r--
2025-04-08 13:05
rejectSeries.js
1.44
KB
-rw-r--r--
2025-04-08 13:05
retry.js
5.39
KB
-rw-r--r--
2025-04-08 13:05
retryable.js
2.48
KB
-rw-r--r--
2025-04-08 13:05
select.js
2.83
KB
-rw-r--r--
2025-04-08 13:05
selectLimit.js
1.62
KB
-rw-r--r--
2025-04-08 13:05
selectSeries.js
1.51
KB
-rw-r--r--
2025-04-08 13:05
seq.js
2.59
KB
-rw-r--r--
2025-04-08 13:05
series.js
5.69
KB
-rw-r--r--
2025-04-08 13:05
setImmediate.js
1.36
KB
-rw-r--r--
2025-04-08 13:05
some.js
3.71
KB
-rw-r--r--
2025-04-08 13:05
someLimit.js
1.74
KB
-rw-r--r--
2025-04-08 13:05
someSeries.js
1.64
KB
-rw-r--r--
2025-04-08 13:05
sortBy.js
6.06
KB
-rw-r--r--
2025-04-08 13:05
timeout.js
2.69
KB
-rw-r--r--
2025-04-08 13:05
times.js
1.45
KB
-rw-r--r--
2025-04-08 13:05
timesLimit.js
1.42
KB
-rw-r--r--
2025-04-08 13:05
timesSeries.js
1.04
KB
-rw-r--r--
2025-04-08 13:05
transform.js
5.43
KB
-rw-r--r--
2025-04-08 13:05
tryEach.js
2.48
KB
-rw-r--r--
2025-04-08 13:05
unmemoize.js
665
B
-rw-r--r--
2025-04-08 13:05
until.js
2.03
KB
-rw-r--r--
2025-04-08 13:05
waterfall.js
3.13
KB
-rw-r--r--
2025-04-08 13:05
whilst.js
2.28
KB
-rw-r--r--
2025-04-08 13:05
wrapSync.js
3.67
KB
-rw-r--r--
2025-04-08 13:05
Save
Rename
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = retry; var _wrapAsync = require('./internal/wrapAsync.js'); var _wrapAsync2 = _interopRequireDefault(_wrapAsync); var _promiseCallback = require('./internal/promiseCallback.js'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function constant(value) { return function () { return value; }; } /** * Attempts to get a successful response from `task` no more than `times` times * before returning an error. If the task is successful, the `callback` will be * passed the result of the successful task. If all attempts fail, the callback * will be passed the error and result (if any) of the final attempt. * * @name retry * @static * @memberOf module:ControlFlow * @method * @category Control Flow * @see [async.retryable]{@link module:ControlFlow.retryable} * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an * object with `times` and `interval` or a number. * * `times` - The number of attempts to make before giving up. The default * is `5`. * * `interval` - The time to wait between retries, in milliseconds. The * default is `0`. The interval may also be specified as a function of the * retry count (see example). * * `errorFilter` - An optional synchronous function that is invoked on * erroneous result. If it returns `true` the retry attempts will continue; * if the function returns `false` the retry flow is aborted with the current * attempt's error and result being returned to the final callback. * Invoked with (err). * * If `opts` is a number, the number specifies the number of times to retry, * with the default interval of `0`. * @param {AsyncFunction} task - An async function to retry. * Invoked with (callback). * @param {Function} [callback] - An optional callback which is called when the * task has succeeded, or after the final failed attempt. It receives the `err` * and `result` arguments of the last attempt at completing the `task`. Invoked * with (err, results). * @returns {Promise} a promise if no callback provided * * @example * * // The `retry` function can be used as a stand-alone control flow by passing * // a callback, as shown below: * * // try calling apiMethod 3 times * async.retry(3, apiMethod, function(err, result) { * // do something with the result * }); * * // try calling apiMethod 3 times, waiting 200 ms between each retry * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) { * // do something with the result * }); * * // try calling apiMethod 10 times with exponential backoff * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds) * async.retry({ * times: 10, * interval: function(retryCount) { * return 50 * Math.pow(2, retryCount); * } * }, apiMethod, function(err, result) { * // do something with the result * }); * * // try calling apiMethod the default 5 times no delay between each retry * async.retry(apiMethod, function(err, result) { * // do something with the result * }); * * // try calling apiMethod only when error condition satisfies, all other * // errors will abort the retry control flow and return to final callback * async.retry({ * errorFilter: function(err) { * return err.message === 'Temporary error'; // only retry on a specific error * } * }, apiMethod, function(err, result) { * // do something with the result * }); * * // to retry individual methods that are not as reliable within other * // control flow functions, use the `retryable` wrapper: * async.auto({ * users: api.getUsers.bind(api), * payments: async.retryable(3, api.getPayments.bind(api)) * }, function(err, results) { * // do something with the results * }); * */ const DEFAULT_TIMES = 5; const DEFAULT_INTERVAL = 0; function retry(opts, task, callback) { var options = { times: DEFAULT_TIMES, intervalFunc: constant(DEFAULT_INTERVAL) }; if (arguments.length < 3 && typeof opts === 'function') { callback = task || (0, _promiseCallback.promiseCallback)(); task = opts; } else { parseTimes(options, opts); callback = callback || (0, _promiseCallback.promiseCallback)(); } if (typeof task !== 'function') { throw new Error("Invalid arguments for async.retry"); } var _task = (0, _wrapAsync2.default)(task); var attempt = 1; function retryAttempt() { _task((err, ...args) => { if (err === false) return; if (err && attempt++ < options.times && (typeof options.errorFilter != 'function' || options.errorFilter(err))) { setTimeout(retryAttempt, options.intervalFunc(attempt - 1)); } else { callback(err, ...args); } }); } retryAttempt(); return callback[_promiseCallback.PROMISE_SYMBOL]; } function parseTimes(acc, t) { if (typeof t === 'object') { acc.times = +t.times || DEFAULT_TIMES; acc.intervalFunc = typeof t.interval === 'function' ? t.interval : constant(+t.interval || DEFAULT_INTERVAL); acc.errorFilter = t.errorFilter; } else if (typeof t === 'number' || typeof t === 'string') { acc.times = +t || DEFAULT_TIMES; } else { throw new Error("Invalid arguments for async.retry"); } } module.exports = exports.default;