1 | import { __assign } from "tslib";
|
2 | import { Severity } from '@sentry/types';
|
3 | import { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';
|
4 | import { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';
|
5 | import { computeStackTrace } from './tracekit';
|
6 |
|
7 |
|
8 |
|
9 |
|
10 | export function eventFromException(options, exception, hint) {
|
11 | var syntheticException = (hint && hint.syntheticException) || undefined;
|
12 | var event = eventFromUnknownInput(exception, syntheticException, {
|
13 | attachStacktrace: options.attachStacktrace,
|
14 | });
|
15 | addExceptionMechanism(event, {
|
16 | handled: true,
|
17 | type: 'generic',
|
18 | });
|
19 | event.level = Severity.Error;
|
20 | if (hint && hint.event_id) {
|
21 | event.event_id = hint.event_id;
|
22 | }
|
23 | return SyncPromise.resolve(event);
|
24 | }
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | export function eventFromMessage(options, message, level, hint) {
|
30 | if (level === void 0) { level = Severity.Info; }
|
31 | var syntheticException = (hint && hint.syntheticException) || undefined;
|
32 | var event = eventFromString(message, syntheticException, {
|
33 | attachStacktrace: options.attachStacktrace,
|
34 | });
|
35 | event.level = level;
|
36 | if (hint && hint.event_id) {
|
37 | event.event_id = hint.event_id;
|
38 | }
|
39 | return SyncPromise.resolve(event);
|
40 | }
|
41 |
|
42 |
|
43 |
|
44 | export function eventFromUnknownInput(exception, syntheticException, options) {
|
45 | if (options === void 0) { options = {}; }
|
46 | var event;
|
47 | if (isErrorEvent(exception) && exception.error) {
|
48 |
|
49 | var errorEvent = exception;
|
50 |
|
51 | exception = errorEvent.error;
|
52 | event = eventFromStacktrace(computeStackTrace(exception));
|
53 | return event;
|
54 | }
|
55 | if (isDOMError(exception) || isDOMException(exception)) {
|
56 |
|
57 |
|
58 |
|
59 |
|
60 | var domException = exception;
|
61 | var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');
|
62 | var message = domException.message ? name_1 + ": " + domException.message : name_1;
|
63 | event = eventFromString(message, syntheticException, options);
|
64 | addExceptionTypeValue(event, message);
|
65 | if ('code' in domException) {
|
66 | event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': "" + domException.code });
|
67 | }
|
68 | return event;
|
69 | }
|
70 | if (isError(exception)) {
|
71 |
|
72 | event = eventFromStacktrace(computeStackTrace(exception));
|
73 | return event;
|
74 | }
|
75 | if (isPlainObject(exception) || isEvent(exception)) {
|
76 |
|
77 |
|
78 |
|
79 | var objectException = exception;
|
80 | event = eventFromPlainObject(objectException, syntheticException, options.rejection);
|
81 | addExceptionMechanism(event, {
|
82 | synthetic: true,
|
83 | });
|
84 | return event;
|
85 | }
|
86 |
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 | event = eventFromString(exception, syntheticException, options);
|
96 | addExceptionTypeValue(event, "" + exception, undefined);
|
97 | addExceptionMechanism(event, {
|
98 | synthetic: true,
|
99 | });
|
100 | return event;
|
101 | }
|
102 |
|
103 |
|
104 |
|
105 | export function eventFromString(input, syntheticException, options) {
|
106 | if (options === void 0) { options = {}; }
|
107 | var event = {
|
108 | message: input,
|
109 | };
|
110 | if (options.attachStacktrace && syntheticException) {
|
111 | var stacktrace = computeStackTrace(syntheticException);
|
112 | var frames_1 = prepareFramesForEvent(stacktrace.stack);
|
113 | event.stacktrace = {
|
114 | frames: frames_1,
|
115 | };
|
116 | }
|
117 | return event;
|
118 | }
|
119 |
|
\ | No newline at end of file |