@sentry/browser
Version:
Official Sentry SDK for browsers
41 lines • 1.66 kB
JavaScript
import { __assign } from "tslib";
import { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';
import { getGlobalObject } from '@sentry/utils';
var global = getGlobalObject();
/** UserAgent */
var UserAgent = /** @class */ (function () {
function UserAgent() {
/**
* @inheritDoc
*/
this.name = UserAgent.id;
}
/**
* @inheritDoc
*/
UserAgent.prototype.setupOnce = function () {
addGlobalEventProcessor(function (event) {
if (getCurrentHub().getIntegration(UserAgent)) {
// if none of the information we want exists, don't bother
if (!global.navigator && !global.location && !global.document) {
return event;
}
// grab as much info as exists and add it to the event
var url = (event.request && event.request.url) || (global.location && global.location.href);
var referrer = (global.document || {}).referrer;
var userAgent = (global.navigator || {}).userAgent;
var headers = __assign(__assign(__assign({}, (event.request && event.request.headers)), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));
var request = __assign(__assign({}, (url && { url: url })), { headers: headers });
return __assign(__assign({}, event), { request: request });
}
return event;
});
};
/**
* @inheritDoc
*/
UserAgent.id = 'UserAgent';
return UserAgent;
}());
export { UserAgent };
//# sourceMappingURL=useragent.js.map