function withTimeout(promise, ms, message) { let timer; const timeout = new Promise((_, reject) => { timer = setTimeout(() => { reject(new Error(message || `Timed out after ${ms}ms`)); }, ms); }); return Promise.race([promise, timeout]).finally(() => { clearTimeout(timer); }); } module.exports = { withTimeout };