// src/utils.js /** * Creates a promise that resolves after a specified number of milliseconds. * @param {number} ms - The number of milliseconds to sleep. * @returns {Promise} */ function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } /** * Waits for a random amount of time within a specified range. * Uses defaults from config if no arguments provided. * @param {number} [minMs] - Minimum delay in milliseconds. * @param {number} [maxMs] - Maximum delay in milliseconds. * @returns {Promise} */ // Import config inside if needed for defaults, or keep simple defaults here const config = require('./config'); // Import config to use defaults async function randomDelay(minMs = config.defaultMinDelay, maxMs = config.defaultMaxDelay) { // Ensure min is not greater than max if (minMs > maxMs) { [minMs, maxMs] = [maxMs, minMs]; // Swap if necessary } const delay = Math.floor(Math.random() * (maxMs - minMs + 1)) + minMs; await sleep(delay); } module.exports = { randomDelay, sleep };