@@ -42,8 +42,13 @@ function extractTransactionRoute(transactionName: string): string {
42
42
return transactionName . replace ( 'GET ' , '' ) ;
43
43
}
44
44
45
+ /** With v8, Next.js attaches /route which pollutes the filename */
46
+ function deleteRouteFromName ( transactionName : string ) : string {
47
+ return transactionName . replace ( '/route' , '' ) ;
48
+ }
49
+
45
50
function extractRelevantFileName ( str : string ) : string {
46
- return extractPathFromUrl ( extractTransactionRoute ( str ) ) ;
51
+ return extractPathFromUrl ( extractTransactionRoute ( deleteRouteFromName ( str ) ) ) ;
47
52
}
48
53
49
54
function addCommaAfterEachLine ( data : string ) : string {
@@ -174,15 +179,22 @@ async function transformSavedJSON(
174
179
175
180
const objData = transformedJSON [ 2 ] as unknown as {
176
181
request ?: { url ?: string } ;
182
+ tags ?: { transaction ?: string } ;
177
183
transaction ?: string ;
178
184
contexts ?: { trace ?: { data ?: { url ?: string } } } ;
179
185
} ;
180
186
181
187
if ( 'request' in objData || 'contexts' in objData ) {
182
188
const transactionName = objData ?. transaction ;
189
+ const transactionNameFromTags = objData ?. tags ?. transaction ;
183
190
const url = objData ?. request ?. url || objData . contexts ?. trace ?. data ?. url ;
184
191
185
- const filename = filenameOrigin === 'transactionName' ? transactionName : url ;
192
+ const filename =
193
+ filenameOrigin === 'transactionName'
194
+ ? transactionName !== ' ' // In v7 "transaction" is a space in error events in Next.js
195
+ ? transactionName
196
+ : transactionNameFromTags
197
+ : url ;
186
198
187
199
if ( filename ) {
188
200
const replaceForwardSlashes = ( str : string ) => str . split ( '/' ) . join ( '_' ) ;
0 commit comments