import express from 'express' import { Eta } from 'eta' import fs from 'node:fs/promises' import render from './lib/render.js' const debug = process.env.DEBUG ? true : false const eta = new Eta({ views: 'views', cache: !debug }) const app = express() app.get('/', function (req, res) { res.redirect('https://git.gay/gitgay/og.git') }) if (debug) { app.get('/style.css', async (req, res) => { res.type('css') res.send(await fs.readFile('./assets/style.css')) }) } app.get('/:owner/:repo', async function (req, res) { const repoResp = await fetch( `https://git.gay/api/v1/repos/${req.params.owner}/${req.params.repo}` ) const repo = await repoResp.json() const html = await eta.renderAsync('repo', { repo, debug }) if (debug) { res.send(html) return } res.type('png') res.set('Content-Disposition', 'inline') res.send(await render(html)) }) app.listen(8085)