UNPKG

@grafana/faro-web-sdk

Version:

Faro instrumentations, metas, transports for web.

38 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.browserMeta = void 0; const faro_core_1 = require("@grafana/faro-core"); const shared_1 = require("../shared"); const browserMeta = () => { const { browser, os, ua: userAgent } = (0, shared_1.getUAResult)(); const { name, version } = browser; const { name: osName, version: osVersion } = os; const language = navigator.language; const mobile = userAgent.includes('Mobi'); const brands = getBrands(); return { browser: { name: name !== null && name !== void 0 ? name : faro_core_1.unknownString, version: version !== null && version !== void 0 ? version : faro_core_1.unknownString, os: `${osName !== null && osName !== void 0 ? osName : faro_core_1.unknownString} ${osVersion !== null && osVersion !== void 0 ? osVersion : faro_core_1.unknownString}`, userAgent: userAgent !== null && userAgent !== void 0 ? userAgent : faro_core_1.unknownString, language: language !== null && language !== void 0 ? language : faro_core_1.unknownString, mobile, brands: brands !== null && brands !== void 0 ? brands : faro_core_1.unknownString, viewportWidth: `${window.innerWidth}`, viewportHeight: `${window.innerHeight}`, }, }; function getBrands() { if (!name || !version) { return undefined; } if ('userAgentData' in navigator && navigator.userAgentData) { // userAgentData in experimental (only Chrome supports it) thus TS does not ship the respective type declarations return navigator.userAgentData.brands; } return undefined; } }; exports.browserMeta = browserMeta; //# sourceMappingURL=meta.js.map