import { defineConfig } from 'astro/config'; import curlResponse from './src/curl-response.ts'; const curlPreview = { name: 'curl-preview', configureServer(server) { server.middlewares.use(async (request, response, next) => { const userAgent = request.headers['user-agent'] ?? ''; const path = request.url?.split('?', 1)[0]; if (request.method !== 'GET' || path !== '/' || !/^curl(?:\/|$)/i.test(userAgent)) { next(); return; } const terminalResponse = curlResponse(); response.statusCode = terminalResponse.status; terminalResponse.headers.forEach((value, name) => response.setHeader(name, value)); response.end(await terminalResponse.text()); }); }, }; export default defineConfig({ site: 'https://rummage.cc', server: { host: '127.0.0.1', port: 4321, }, devToolbar: { enabled: false }, vite: { plugins: [curlPreview], }, });