1
1
import { StackFrame , StackLineParser , StackLineParserFn } from '@sentry/types' ;
2
+ import { createStackParser } from '@sentry/utils' ;
2
3
3
4
// global reference to slice
4
5
const UNKNOWN_FUNCTION = '?' ;
@@ -60,7 +61,7 @@ const chrome: StackLineParserFn = line => {
60
61
return ;
61
62
} ;
62
63
63
- export const chromeStackParser : StackLineParser = [ CHROME_PRIORITY , chrome ] ;
64
+ export const chromeStackLineParser : StackLineParser = [ CHROME_PRIORITY , chrome ] ;
64
65
65
66
// gecko regex: `(?:bundle|\d+\.js)`: `bundle` is for react native, `\d+\.js` also but specifically for ram bundles because it
66
67
// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js
@@ -96,7 +97,7 @@ const gecko: StackLineParserFn = line => {
96
97
return ;
97
98
} ;
98
99
99
- export const geckoStackParser : StackLineParser = [ GECKO_PRIORITY , gecko ] ;
100
+ export const geckoStackLineParser : StackLineParser = [ GECKO_PRIORITY , gecko ] ;
100
101
101
102
const winjsRegex =
102
103
/ ^ \s * a t (?: ( (?: \[ o b j e c t o b j e c t \] ) ? .+ ) ) ? \( ? ( (?: f i l e | m s - a p p x | h t t p s ? | w e b p a c k | b l o b ) : .* ?) : ( \d + ) (?: : ( \d + ) ) ? \) ? \s * $ / i;
@@ -109,7 +110,7 @@ const winjs: StackLineParserFn = line => {
109
110
: undefined ;
110
111
} ;
111
112
112
- export const winjsStackParser : StackLineParser = [ WINJS_PRIORITY , winjs ] ;
113
+ export const winjsStackLineParser : StackLineParser = [ WINJS_PRIORITY , winjs ] ;
113
114
114
115
const opera10Regex = / l i n e ( \d + ) .* s c r i p t (?: i n ) ? ( \S + ) (?: : i n f u n c t i o n ( \S + ) ) ? $ / i;
115
116
@@ -118,7 +119,7 @@ const opera10: StackLineParserFn = line => {
118
119
return parts ? createFrame ( parts [ 2 ] , parts [ 3 ] || UNKNOWN_FUNCTION , + parts [ 1 ] ) : undefined ;
119
120
} ;
120
121
121
- export const opera10StackParser : StackLineParser = [ OPERA10_PRIORITY , opera10 ] ;
122
+ export const opera10StackLineParser : StackLineParser = [ OPERA10_PRIORITY , opera10 ] ;
122
123
123
124
const opera11Regex =
124
125
/ l i n e ( \d + ) , c o l u m n ( \d + ) \s * (?: i n (?: < a n o n y m o u s f u n c t i o n : ( [ ^ > ] + ) > | ( [ ^ ) ] + ) ) \( .* \) ) ? i n ( .* ) : \s * $ / i;
@@ -128,9 +129,11 @@ const opera11: StackLineParserFn = line => {
128
129
return parts ? createFrame ( parts [ 5 ] , parts [ 3 ] || parts [ 4 ] || UNKNOWN_FUNCTION , + parts [ 1 ] , + parts [ 2 ] ) : undefined ;
129
130
} ;
130
131
131
- export const opera11StackParser : StackLineParser = [ OPERA11_PRIORITY , opera11 ] ;
132
+ export const opera11StackLineParser : StackLineParser = [ OPERA11_PRIORITY , opera11 ] ;
132
133
133
- export const defaultStackParsers = [ chromeStackParser , geckoStackParser , winjsStackParser ] ;
134
+ export const defaultStackLineParsers = [ chromeStackLineParser , geckoStackLineParser , winjsStackLineParser ] ;
135
+
136
+ export const defaultStackParser = createStackParser ( ...defaultStackLineParsers ) ;
134
137
135
138
/**
136
139
* Safari web extensions, starting version unknown, can produce "frames-only" stacktraces.
0 commit comments