import type { FastifyInstance } from 'fastify'; export function registerJsonBodyParser(app: FastifyInstance) { app.addContentTypeParser('application/json', { parseAs: 'string' }, (request, body, done) => { const rawBody = typeof body === 'string' ? body : ''; const normalizedBody = rawBody.trim(); if (!normalizedBody) { done(null, {}); return; } try { done(null, JSON.parse(normalizedBody)); } catch { const error = new Error('Body is not valid JSON.') as Error & { statusCode?: number; code?: string; }; error.statusCode = 400; error.code = 'FST_ERR_CTP_INVALID_JSON_BODY'; done(error, undefined); } }); }