/** * Usage: TOKEN=your_token_here bun benchmark:timeline */ import chalk from "chalk"; import { config } from "config-manager"; const token = process.env.TOKEN; const requestCount = Number(process.argv[2]) || 100; if (!token) { console.log( `${chalk.red( "✗", )} No token provided. Provide one via the TOKEN environment variable.`, ); process.exit(1); } const fetchTimeline = () => fetch(new URL("/api/v1/timelines/home", config.http.base_url), { headers: { Authorization: `Bearer ${token}`, }, }).then((res) => res.ok); const timeNow = performance.now(); const requests = Array.from({ length: requestCount }, () => fetchTimeline()); Promise.all(requests) .then((results) => { const timeTaken = performance.now() - timeNow; if (results.every((t) => t)) { console.log(`${chalk.green("✓")} All requests succeeded`); } else { console.log( `${chalk.red("✗")} ${ results.filter((t) => !t).length } requests failed`, ); } console.log( `${chalk.green("✓")} ${ requests.length } requests fulfilled in ${chalk.bold( (timeTaken / 1000).toFixed(5), )}s`, ); }) .catch((err) => { console.log(`${chalk.red("✗")} ${err}`); process.exit(1); });