UNPKG

rascal

Version:

A config driven wrapper for amqplib supporting multi-host connections, automatic error recovery, redelivery flood protection, transparent encryption / decryption, channel pooling and publication timeouts

28 lines (23 loc) 635 B
const get = require('lodash').get; module.exports = function (options) { const min = get(options, 'min', 1000); const max = get(options, 'max', Math.pow(min, 10)); const factor = get(options, 'factor', 2); const randomise = get(options, 'randomise', true); let lower = min; function next() { if (lower > max) return max; const upper = lower * factor; const value = randomise ? Math.floor(Math.random() * (upper - lower + 1) + lower) : lower; const capped = Math.min(max, value); lower = upper; return capped; } function reset() { lower = min; } return { next, reset, }; };