UNPKG

@zo-bro-23/github-readme-stats-test

Version:

Dynamically generate stats for your GitHub readme

75 lines (67 loc) 1.56 kB
import { generateWakatimeCard } from "../src/generators/wakatime.js"; import { renderError } from "../src/common/utils.js"; export default async (req, res) => { const { username, title_color, icon_color, hide_border, line_height, text_color, bg_color, theme, cache_seconds, hide_title, hide_progress, custom_title, locale, layout, langs_count, hide, api_domain, range, border_radius, border_color, } = req.query; res.setHeader("Content-Type", "image/svg+xml"); try { let cacheSeconds = clampValue( parseInt(cache_seconds || CONSTANTS.FOUR_HOURS, 10), CONSTANTS.FOUR_HOURS, CONSTANTS.ONE_DAY, ); if (!cache_seconds) { cacheSeconds = CONSTANTS.FOUR_HOURS; } res.setHeader( "Cache-Control", `max-age=${cacheSeconds / 2 }, s-maxage=${cacheSeconds}, stale-while-revalidate=${CONSTANTS.ONE_DAY}`, ); const card = await generateWakatimeCard({ username, title_color, icon_color, hide_border, line_height, text_color, bg_color, theme, hide_title, hide_progress, custom_title, locale, layout, langs_count, hide, api_domain, range, border_radius, border_color }) return res.send(card); } catch (err) { res.setHeader("Cache-Control", `no-cache, no-store, must-revalidate`); // Don't cache error responses. return res.send(renderError(err.message, err.secondaryMessage)); } };