UNPKG

npm-caffeine

Version:

Keep your dev session alive by pinging a port and logging uptime.

47 lines (37 loc) 1.07 kB
#!/usr/bin/env node const axios = require("axios"); const chalk = require("chalk"); const args = process.argv.slice(2); if (args.length < 1) { console.log(chalk.red("Usage: caffeine <url> [interval in seconds]")); process.exit(1); } const url = args[0]; const intervalSeconds = Number(args[1]) || 60; let uptimeSeconds = 0; console.log( chalk.green( `☕ Starting caffeine for ${url} every ${intervalSeconds} seconds...` ) ); const ping = async () => { try { await axios.get(url); console.log( chalk.blue(`✅ Pinged ${url} at ${new Date().toLocaleTimeString()}`) ); } catch (err) { console.log(chalk.red(`❌ Error pinging ${url}: ${err.message}`)); } }; const logUptime = () => { uptimeSeconds += intervalSeconds; const minutes = Math.floor(uptimeSeconds / 60); const seconds = uptimeSeconds % 60; console.log(chalk.yellow(`⏱️ Uptime: ${minutes}m ${seconds}s`)); }; ping(); // immediate ping setInterval(() => { ping(); logUptime(); }, intervalSeconds * 1000);