@grafana/faro-web-sdk
Version:
Faro instrumentations, metas, transports for web.
38 lines • 1.82 kB
JavaScript
;
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