Skip to content

Commit 8bc20b0

Browse files
committed
Revert promise changes
1 parent 83f859b commit 8bc20b0

File tree

4 files changed

+60
-43
lines changed

4 files changed

+60
-43
lines changed

packages/node/src/backend.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ export class NodeBackend extends BaseBackend<NodeOptions> {
1616
*/
1717
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
1818
public eventFromException(exception: any, hint?: EventHint): PromiseLike<Event> {
19-
return Promise.resolve(eventFromException(exception, hint));
19+
return eventFromException(exception, hint);
2020
}
2121

2222
/**
2323
* @inheritDoc
2424
*/
2525
public eventFromMessage(message: string, level: Severity = Severity.Info, hint?: EventHint): PromiseLike<Event> {
26-
return Promise.resolve(eventFromMessage(this._options, message, level, hint));
26+
return eventFromMessage(this._options, message, level, hint);
2727
}
2828

2929
/**

packages/node/src/eventbuilder.ts

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
isError,
88
isPlainObject,
99
normalizeToSize,
10+
SyncPromise,
1011
} from '@sentry/utils';
1112

1213
import { extractStackFromError, parseError, parseStack, prepareFramesForEvent } from './parsers';
@@ -15,7 +16,7 @@ import { extractStackFromError, parseError, parseStack, prepareFramesForEvent }
1516
* Builds and Event from a Exception
1617
* @hidden
1718
*/
18-
export function eventFromException(exception: unknown, hint?: EventHint): Event {
19+
export function eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {
1920
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2021
let ex: any = exception;
2122
const providedMechanism: Mechanism | undefined =
@@ -46,14 +47,19 @@ export function eventFromException(exception: unknown, hint?: EventHint): Event
4647
mechanism.synthetic = true;
4748
}
4849

49-
const event = parseError(ex as Error);
50-
addExceptionTypeValue(event, undefined, undefined);
51-
addExceptionMechanism(event, mechanism);
50+
return new SyncPromise<Event>((resolve, reject) =>
51+
parseError(ex as Error)
52+
.then(event => {
53+
addExceptionTypeValue(event, undefined, undefined);
54+
addExceptionMechanism(event, mechanism);
5255

53-
return {
54-
...event,
55-
event_id: hint && hint.event_id,
56-
};
56+
resolve({
57+
...event,
58+
event_id: hint && hint.event_id,
59+
});
60+
})
61+
.then(null, reject),
62+
);
5763
}
5864

5965
/**
@@ -65,21 +71,23 @@ export function eventFromMessage(
6571
message: string,
6672
level: Severity = Severity.Info,
6773
hint?: EventHint,
68-
): Event {
74+
): PromiseLike<Event> {
6975
const event: Event = {
7076
event_id: hint && hint.event_id,
7177
level,
7278
message,
7379
};
7480

75-
if (options.attachStacktrace && hint && hint.syntheticException) {
76-
const stack = hint.syntheticException ? extractStackFromError(hint.syntheticException) : [];
77-
const frames = parseStack(stack);
78-
79-
event.stacktrace = {
80-
frames: prepareFramesForEvent(frames),
81-
};
82-
}
83-
84-
return event;
81+
return new SyncPromise<Event>(resolve => {
82+
if (options.attachStacktrace && hint && hint.syntheticException) {
83+
const stack = hint.syntheticException ? extractStackFromError(hint.syntheticException) : [];
84+
const frames = parseStack(stack);
85+
event.stacktrace = {
86+
frames: prepareFramesForEvent(frames),
87+
};
88+
resolve(event);
89+
} else {
90+
resolve(event);
91+
}
92+
});
8593
}

packages/node/src/integrations/linkederrors.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,14 @@ export class LinkedErrors implements Integration {
8181
return resolvedSyncPromise(stack);
8282
}
8383
return new SyncPromise<Exception[]>((resolve, reject) => {
84-
const exception = getExceptionFromError(error[key]);
85-
void this._walkErrorTree(error[key], key, [exception, ...stack])
86-
.then(resolve)
84+
void getExceptionFromError(error[key])
85+
.then((exception: Exception) => {
86+
void this._walkErrorTree(error[key], key, [exception, ...stack])
87+
.then(resolve)
88+
.then(null, () => {
89+
reject();
90+
});
91+
})
8792
.then(null, () => {
8893
reject();
8994
});

packages/node/src/parsers.ts

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Event, Exception, ExtendedError, StackFrame } from '@sentry/types';
2-
import { basename, dirname } from '@sentry/utils';
2+
import { basename, dirname, SyncPromise } from '@sentry/utils';
33

44
import * as stacktrace from './stacktrace';
55

@@ -97,31 +97,35 @@ export function parseStack(stack: stacktrace.StackFrame[]): StackFrame[] {
9797
/**
9898
* @hidden
9999
*/
100-
export function getExceptionFromError(error: Error): Exception {
100+
export function getExceptionFromError(error: Error): PromiseLike<Exception> {
101101
const name = error.name || error.constructor.name;
102102
const stack = extractStackFromError(error);
103-
const frames = parseStack(stack);
104-
105-
return {
106-
stacktrace: {
107-
frames: prepareFramesForEvent(frames),
108-
},
109-
type: name,
110-
value: error.message,
111-
};
103+
return new SyncPromise<Exception>(resolve => {
104+
const frames = parseStack(stack);
105+
const result = {
106+
stacktrace: {
107+
frames: prepareFramesForEvent(frames),
108+
},
109+
type: name,
110+
value: error.message,
111+
};
112+
resolve(result);
113+
});
112114
}
113115

114116
/**
115117
* @hidden
116118
*/
117-
export function parseError(error: ExtendedError): Event {
118-
const exception = getExceptionFromError(error);
119-
120-
return {
121-
exception: {
122-
values: [exception],
123-
},
124-
};
119+
export function parseError(error: ExtendedError): PromiseLike<Event> {
120+
return new SyncPromise<Event>(resolve =>
121+
getExceptionFromError(error).then((exception: Exception) => {
122+
resolve({
123+
exception: {
124+
values: [exception],
125+
},
126+
});
127+
}),
128+
);
125129
}
126130

127131
/**

0 commit comments

Comments
 (0)