@sentry/browser
Version:
Official Sentry SDK for browsers
52 lines (48 loc) • 1.46 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const attributes = require('@sentry/conventions/attributes');
const core = require('@sentry/core');
const helpers = require('../helpers.js');
const INTEGRATION_NAME = "CultureContext";
const _cultureContextIntegration = (() => {
return {
name: INTEGRATION_NAME,
preprocessEvent(event) {
const culture = getCultureContext();
if (culture) {
event.contexts = {
...event.contexts,
culture: { ...culture, ...event.contexts?.culture }
};
}
},
processSegmentSpan(span) {
const culture = getCultureContext();
if (culture) {
core.safeSetSpanJSONAttributes(span, {
[attributes.CULTURE_LOCALE]: culture.locale,
[attributes.CULTURE_TIMEZONE]: culture.timezone,
[attributes.CULTURE_CALENDAR]: culture.calendar
});
}
}
};
});
const cultureContextIntegration = core.defineIntegration(_cultureContextIntegration);
function getCultureContext() {
try {
const intl = helpers.WINDOW.Intl;
if (!intl) {
return void 0;
}
const options = intl.DateTimeFormat().resolvedOptions();
return {
locale: options.locale,
timezone: options.timeZone,
calendar: options.calendar
};
} catch {
return void 0;
}
}
exports.cultureContextIntegration = cultureContextIntegration;
//# sourceMappingURL=culturecontext.js.map