@fran-834/gs-microservice-core
Version:
Core package for Node.js microservices by Galduria Software. Includes security, logging, validation, and error handling middlewares.
31 lines (30 loc) • 914 B
JavaScript
import * as UAParser from "ua-parser-js";
export function userAgentMiddleware(req, _res, next) {
const uaString = req.get("user-agent");
if (!uaString) {
req.context = {
...req.context,
userAgent: {
browser: "unknown",
browserVersion: "unknown",
os: "unknown",
osVersion: "unknown",
device: "unknown",
},
};
return next();
}
const parser = new UAParser.UAParser(uaString);
const ua = parser.getResult();
req.context = {
...req.context,
userAgent: {
browser: ua.browser.name ?? "unknown",
browserVersion: ua.browser.version ?? "unknown",
os: ua.os.name ?? "unknown",
osVersion: ua.os.version ?? "unknown",
device: ua.device.type ?? "desktop",
},
};
next();
}