UNPKG

@geniucode/common-utils

Version:

Common utils

55 lines 2.78 kB
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