// Local preview: serves the package app the way Kody mounts it, under // /packages/invisible-software/ with the mount stripped (/, /demo, /graph). import { createServer } from 'node:http' import router from '../app/router.ts' const port = Number(process.env.PORT ?? 4310) const mount = '/packages/invisible-software' createServer(async (req, res) => { if (req.url === '/' || req.url === mount) { res.writeHead(302, { location: mount + '/' }) return res.end() } const url = new URL(req.url, `http://localhost:${port}`) if (url.pathname.startsWith(mount)) url.pathname = url.pathname.slice(mount.length) || '/' const response = await router.fetch(new Request(url, { method: req.method })) res.writeHead(response.status, Object.fromEntries(response.headers)) res.end(Buffer.from(await response.arrayBuffer())) }).listen(port, () => console.log(`Slideshow at http://localhost:${port}${mount}/`))