INNER CODE UNIT · TypeScript
serve
PerryTS/perry · packages/hono-perry-server/src/index.ts:54
export function serve(opts: ServeOptions, listener?: (info: ServeInfo) => void): void {
const app = fastify({ logger: false })
app.all('/*', async (req: any, reply: any) => {
const host = req.headers.host ?? `localhost:${opts.port}`
const url = `http://${host}${req.url}`
const headers = new Headers()
for (const [key, value] of Object.entries(req.headers)) {
if (Array.isArray(value)) {
for (const v of value) headers.append(key, String(v))
} else if (value !== undefined && value !== null) {
headers.set(key, String(value))
}
}
const method = req.method ?? 'GET'
const hasBody = method !== 'GET' && method !== 'HEAD'