@geniucode/common-utils
Version:
Common utils
55 lines • 2.78 kB
JavaScript
import httpContext from 'express-http-context';
import { UAParser } from 'ua-parser-js';
import { logi } from '../logger';
const logger = logi(__filename);
export var EUserAgentContext;
(function (EUserAgentContext) {
EUserAgentContext["BROWSER"] = "user-agent:browser";
EUserAgentContext["BROWSER_VERSION"] = "user-agent:browse-rversion";
EUserAgentContext["BROWSER_ENGINE"] = "user-agent:browser-engine";
EUserAgentContext["OS"] = "user-agent:os";
EUserAgentContext["OS_VERSION"] = "user-agent:os-version";
EUserAgentContext["DEVICE_VENDOR"] = "user-agent:device-vendor";
EUserAgentContext["DEVICE_MODEL"] = "user-agent:devic-emodel";
EUserAgentContext["DEVICE_TYPE"] = "user-agent:device-type";
EUserAgentContext["CPU"] = "user-agent:cpu";
})(EUserAgentContext || (EUserAgentContext = {}));
export const setContextDataOfUserTypeFromUserAgentHeader = (userAgentHeader) => {
logger.info(`--------Middleware@setContextDataOfUserTypeFromUserAgentHeader | userAgentHeader: ${userAgentHeader}`);
const uaParser = new UAParser(userAgentHeader);
logger.info(`--------Middleware@setContextDataOfUserTypeFromUserAgentHeader | parse result: ${JSON.stringify(uaParser.getResult())}`);
const device = uaParser.getDevice();
const engine = uaParser.getEngine();
const browser = uaParser.getBrowser();
const os = uaParser.getOS();
const cpu = uaParser.getCPU();
httpContext.set(EUserAgentContext.BROWSER, browser.name);
httpContext.set(EUserAgentContext.BROWSER_VERSION, browser.version);
httpContext.set(EUserAgentContext.BROWSER_ENGINE, engine.name);
httpContext.set(EUserAgentContext.OS, os.name);
httpContext.set(EUserAgentContext.OS_VERSION, os.version);
httpContext.set(EUserAgentContext.DEVICE_VENDOR, device.vendor);
httpContext.set(EUserAgentContext.DEVICE_MODEL, device.model);
httpContext.set(EUserAgentContext.DEVICE_TYPE, device.type);
httpContext.set(EUserAgentContext.CPU, cpu.architecture);
httpContext.get(EUserAgentContext.CPU);
};
export const getContextOfUserAgent = () => {
return {
browser: {
name: httpContext.get(EUserAgentContext.BROWSER),
version: httpContext.get(EUserAgentContext.BROWSER_VERSION),
engine: httpContext.get(EUserAgentContext.BROWSER_ENGINE),
},
os: {
name: httpContext.get(EUserAgentContext.OS),
version: httpContext.get(EUserAgentContext.OS_VERSION),
},
device: {
vendor: httpContext.get(EUserAgentContext.DEVICE_VENDOR),
model: httpContext.get(EUserAgentContext.DEVICE_MODEL),
type: httpContext.get(EUserAgentContext.DEVICE_TYPE),
},
};
};
//# sourceMappingURL=user-agent-context.js.map