@@ -30,7 +30,10 @@ interface CallSite {
30
30
/**
31
31
* Parse call sites from error instance.
32
32
*/
33
- function getErrorStack ( error : Error ) : CallSite [ ] {
33
+ function getErrorStack (
34
+ error : Error ,
35
+ constructor : ( ...args : any [ ] ) => any
36
+ ) : CallSite [ ] {
34
37
const prepareStackTrace = Error . prepareStackTrace ;
35
38
let trace : CallSite [ ] ;
36
39
@@ -39,7 +42,7 @@ function getErrorStack(error: Error): CallSite[] {
39
42
return prepareStackTrace ?.( error , v8Trace ) ;
40
43
} ;
41
44
42
- Error . captureStackTrace ( error , getErrorStack ) ;
45
+ Error . captureStackTrace ( error , constructor ) ;
43
46
error . stack ; // Triggers `prepareStackTrace`.
44
47
Error . prepareStackTrace = prepareStackTrace ;
45
48
@@ -158,7 +161,10 @@ export class Sentry {
158
161
/**
159
162
* Sends the exception to Sentry and returns the `Response` promise.
160
163
*/
161
- captureException ( error : Error , options : CaptureExceptionOptions = { } ) {
164
+ captureException (
165
+ error : Error ,
166
+ options : CaptureExceptionOptions = { }
167
+ ) : Promise < Response > {
162
168
// https://develop.sentry.dev/sdk/event-payloads/
163
169
const request = new Request (
164
170
`https://sentry.io/api${ this . sentryUrl . pathname } /store/` ,
@@ -183,16 +189,18 @@ export class Sentry {
183
189
value : error . message ,
184
190
// Ref: https://develop.sentry.dev/sdk/event-payloads/stacktrace
185
191
stacktrace : {
186
- frames : getErrorStack ( error ) . map ( ( callSite ) => ( {
187
- function : callSite . getFunctionName ( ) ,
188
- filename : this . filePrefix + callSite . getFileName ( ) ,
189
- lineno : callSite . getLineNumber ( ) ,
190
- colno : callSite . getColumnNumber ( ) ,
191
- in_app : ! callSite . isNative ( ) ,
192
- vars : {
193
- this : String ( callSite . getThis ( ) ) ,
194
- } ,
195
- } ) ) ,
192
+ frames : getErrorStack ( error , this . captureException ) . map (
193
+ ( callSite ) => ( {
194
+ function : callSite . getFunctionName ( ) ,
195
+ filename : this . filePrefix + callSite . getFileName ( ) ,
196
+ lineno : callSite . getLineNumber ( ) ,
197
+ colno : callSite . getColumnNumber ( ) ,
198
+ in_app : ! callSite . isNative ( ) ,
199
+ vars : {
200
+ this : callSite . getTypeName ( ) ,
201
+ } ,
202
+ } )
203
+ ) ,
196
204
} ,
197
205
} ,
198
206
] ,
0 commit comments