in packages/dubbo-fastify/src/fastify-dubbo-plugin.ts [80:107]
async function handleFastifyRequest(req, reply) {
try {
const uRes = await uHandler(
universalRequestFromNodeRequest(
req.raw,
req.body as JsonValue | undefined
)
);
// Fastify maintains response headers on the reply object and only moves them to
// the raw response during reply.send, but we are not using reply.send with this plugin.
// So we need to manually copy them to the raw response before handing off to vanilla Node.
for (const [key, value] of Object.entries(reply.getHeaders())) {
if (value !== undefined) {
reply.raw.setHeader(key, value);
}
}
await universalResponseToNodeResponse(uRes, reply.raw);
} catch (e) {
if (ConnectError.from(e).code == Code.Aborted) {
return;
}
// eslint-disable-next-line no-console
console.error(
`handler for rpc ${uHandler.method.name} of ${uHandler.service.typeName} failed`,
e
);
}
}