UNPKG

airpay-correlationid-middleware

Version:

correlationid middleware

32 lines (20 loc) 621 B
const { v1: uuidV1 } = require('uuid'); const isValidUUID = (uuid) => { const expression = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/; if (expression.test(uuid)) { return true; } return false; }; const middleware = (req, res, next) => { const { headers: { 'x-coreplatform-correlationid': correlationid } } = req; if (correlationid && isValidUUID(correlationid)) { next(); return true; } const newCorrelationid = uuidV1(); req.headers['x-coreplatform-correlationid'] = newCorrelationid; next(); return true; }; module.exports = middleware;