Heavily "inspired" on https://github.com/entrinsik-org/hapi-cls
Ref: https://www.npmjs.com/package/continuation-local-storage
This Hapi plugin installs CLS and binds it to the request
npm install @plan3-relate/hapi-cls
const server = new hapi.Server();
server.connection({port: config.port});
server.register(require('@plan3-relate/hapi-cls'), {namespace: 'my-namespace'})
NOTE: Registration should be done in the "highest" point possible to ensure other plugins are also working in the CLS context.
There's a hook enabling setting custom values in the request context right after it's initialized. Requires value resolution function that receives request object as an argument. Example:
const server = new hapi.Server();
server.connection({port: config.port});
server.register(require('@smp-relate/hapi-cls'), {namespace: 'my-namespace', set: {
customValue: (request) => request.headers['x-custom-header']
}});
ISC