sdk_contrib/fastify/lib/plugin.js (15 lines of code) (raw):
// @ts-check
const fp = require('fastify-plugin').default;
const configureAWSXRaySync = require('./private/configure-aws-x-ray-sync');
const onRequestHook = require('./hooks/on-request.hook');
const onResponseHook = require('./hooks/on-response.hook');
const onErrorHook = require('./hooks/on-error.hook');
/** @type {import('fastify').FastifyPluginAsync} */
const xRayFastifyPlugin = fp(async (fastify, opts) => {
configureAWSXRaySync(fastify, opts);
fastify.decorateRequest('segment', null);
fastify
.addHook('onRequest', onRequestHook)
.addHook('onResponse', onResponseHook)
.addHook('onError', onErrorHook);
});
module.exports = xRayFastifyPlugin;
exports.xRayFastifyPlugin = xRayFastifyPlugin;