UNPKG

@multiplatform.one/typegraphql

Version:
56 lines (53 loc) 1.67 kB
import { __name } from "./chunk-SHUYVCID.js"; // src/utils.ts import { randomUUID } from "node:crypto"; import startCase from "lodash.startcase"; function getReqHeader(req, name, headers = {}) { headers = Object.entries(headers).reduce((headers2, [key, value]) => { headers2[key.toLowerCase()] = value; return headers2; }, {}); name = name.toLowerCase(); let header; if (typeof req?.headers?.get === "function") { header = req.headers.get(name); } if (!header && typeof req?.get === "function") { header = req.headers.get(name); } if (!header && req.headers) header = req.headers?.[name]; if (!header) { header = headers[name]; } if (Array.isArray(header)) return header.join(", "); return header || void 0; } __name(getReqHeader, "getReqHeader"); function setResHeader(res, name, value) { name = startCase(name).replace(/\s/g, "-"); if (typeof res?.headers?.set === "function") { res.headers.set(name, value); } else if (typeof res?.setHeader === "function") { res.setHeader(name, value); } else if (typeof res?.set === "function") { res.set(name, value); } else if (typeof res?.headers === "object") { res.headers[name] = value; } } __name(setResHeader, "setResHeader"); function generateRequestId(req, res) { if (req.requestId) return req.requestId; const requestId = req.requestId || typeof req.id === "string" ? req.id : getReqHeader(req, "X-Request-Id") || randomUUID(); req.requestId = requestId; setResHeader(res, "X-Request-Id", requestId); return requestId; } __name(generateRequestId, "generateRequestId"); export { getReqHeader, setResHeader, generateRequestId };