UNPKG

2.53 kBJavaScriptView Raw
1import { __assign, __extends } from "tslib";
2import { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';
3import { Severity } from '@sentry/types';
4import { supportsFetch } from '@sentry/utils';
5import { eventFromException, eventFromMessage } from './eventbuilder';
6import { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';
7/**
8 * The Sentry Browser SDK Backend.
9 * @hidden
10 */
11var BrowserBackend = /** @class */ (function (_super) {
12 __extends(BrowserBackend, _super);
13 function BrowserBackend() {
14 return _super !== null && _super.apply(this, arguments) || this;
15 }
16 /**
17 * @inheritDoc
18 */
19 BrowserBackend.prototype.eventFromException = function (exception, hint) {
20 return eventFromException(exception, hint, this._options.attachStacktrace);
21 };
22 /**
23 * @inheritDoc
24 */
25 BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {
26 if (level === void 0) { level = Severity.Info; }
27 return eventFromMessage(message, level, hint, this._options.attachStacktrace);
28 };
29 /**
30 * @inheritDoc
31 */
32 BrowserBackend.prototype._setupTransport = function () {
33 if (!this._options.dsn) {
34 // We return the noop transport here in case there is no Dsn.
35 return _super.prototype._setupTransport.call(this);
36 }
37 var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, sendClientReports: this._options.sendClientReports, _metadata: this._options._metadata });
38 var api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);
39 var url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);
40 if (this._options.transport) {
41 return new this._options.transport(transportOptions);
42 }
43 if (supportsFetch()) {
44 var requestOptions = __assign({}, transportOptions.fetchParameters);
45 this._newTransport = makeNewFetchTransport({ requestOptions: requestOptions, url: url });
46 return new FetchTransport(transportOptions);
47 }
48 this._newTransport = makeNewXHRTransport({
49 url: url,
50 headers: transportOptions.headers,
51 });
52 return new XHRTransport(transportOptions);
53 };
54 return BrowserBackend;
55}(BaseBackend));
56export { BrowserBackend };
57//# sourceMappingURL=backend.js.map
\No newline at end of file