UNPKG

nehoid

Version:

Advanced unique ID generation utility with multi-layer encoding, collision detection, and context-aware features

51 lines 1.93 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) NEHONIX INC. All rights reserved. * Licensed under the MIT License. See LICENSE in the project root for license information. *--------------------------------------------------------------------------------------------*/ /** * Express middleware integration for NehoID * Provides request ID generation and tracking */ import { NehoID } from "../index"; /** * Create Express middleware for request ID generation * @param options Middleware configuration options * @returns Express middleware function */ export function createMiddleware(options = {}) { const { header = "X-Request-ID", format = "short", exposeHeader = true, addToRequest = true, generator, } = options; // Return the middleware function return function nehoidMiddleware(req, res, next) { // Generate or use existing ID let requestId = req.headers[header.toLowerCase()]; if (!requestId) { // Generate new ID based on format or custom generator if (generator) { requestId = generator(); } else if (format === "uuid") { requestId = NehoID.uuid(); } else if (format === "nano") { requestId = NehoID.nanoid(); } else if (format === "short") { requestId = NehoID.short(); } else { requestId = NehoID.generate(); } } // Add ID to request object if enabled if (addToRequest) { req[options.name4Req || "NehoID"] = requestId; } // Add ID to response header if enabled if (exposeHeader) { res.setHeader(header, requestId); } // Continue with request next(); }; } //# sourceMappingURL=middleware.js.map