@lokalise/fastify-extras
Version:
Opinionated set of fastify plugins, commonly used in Lokalise
29 lines • 863 B
JavaScript
import { randomUUID } from 'node:crypto';
import fp from 'fastify-plugin';
export function getRequestIdFastifyAppConfig() {
return {
genReqId: () => randomUUID(),
requestIdHeader: 'x-request-id',
};
}
function plugin(fastify, _opts, done) {
fastify.addHook('onRequest', function onRequestContextProvider(req, _res, next) {
req.reqContext = {
logger: req.log.child({
'x-request-id': req.id,
}),
reqId: req.id,
};
next();
});
fastify.addHook('onSend', (req, res, _payload, next) => {
void res.header('x-request-id', req.id);
next();
});
done();
}
export const requestContextProviderPlugin = fp(plugin, {
fastify: '5.x',
name: 'request-context-provider-plugin',
});
//# sourceMappingURL=requestContextProviderPlugin.js.map