index.js 706 Bytes
'use strict';

var uuid = require('uuid');

module.exports = function (options) {
    options = options || {};
    options.uuidVersion = options.uuidVersion || 'v4';
    options.setHeader = options.setHeader === undefined || !!options.setHeader;
    options.headerName = options.headerName || 'X-Request-Id';
    options.attributeName = options.attributeName || 'id';

    return function (req, res, next) {
        req[options.attributeName] = req.headers[options.headerName.toLowerCase()] || uuid[options.uuidVersion](options, options.buffer, options.offset);
        if (options.setHeader) {
            res.setHeader(options.headerName, req[options.attributeName]);
        }
        next();
    };
};