11import symbolicateStackTrace from "react-native/Libraries/Core/Devtools/symbolicateStackTrace" ;
2- import type { StackFrame } from "react-native/Libraries/Core/Devtools/parseErrorStack" ;
32import { ReactNativeFiberNode } from "./types" ;
43
54export type RenderedByFrame = {
@@ -10,6 +9,22 @@ export type RenderedByFrame = {
109 collapse : boolean ;
1110} ;
1211
12+ type SymbolicatedStackFrame = {
13+ methodName : string ;
14+ file : string | null | undefined ;
15+ lineNumber : number | null | undefined ;
16+ column : number | null | undefined ;
17+ collapse ?: boolean ;
18+ } ;
19+
20+ type MetroStackFrame = {
21+ methodName : string ;
22+ file : string | null | undefined ;
23+ lineNumber : number | null | undefined ;
24+ column : number | null | undefined ;
25+ collapse : boolean ;
26+ } ;
27+
1328type V8CallSite = {
1429 getFunctionName ( ) : string | null ;
1530 getFileName ( ) : string | null ;
@@ -158,7 +173,7 @@ const getRenderedByFrames = (fiber: any): RenderedByFrame[] => {
158173 return result ;
159174} ;
160175
161- const toMetroStackFrame = ( frame : RenderedByFrame ) : StackFrame => {
176+ const toMetroStackFrame = ( frame : RenderedByFrame ) : MetroStackFrame => {
162177 return {
163178 methodName : frame . name ,
164179 file : frame . file ?? undefined ,
@@ -175,7 +190,8 @@ export const getRenderedBy = async (fiber: ReactNativeFiberNode): Promise<Render
175190 try {
176191 const metroFrames = frames . map ( toMetroStackFrame ) ;
177192 const { stack : symbolicated } = await symbolicateStackTrace ( metroFrames ) ;
178- return symbolicated
193+ const compatibleStack = symbolicated as ReadonlyArray < SymbolicatedStackFrame > ;
194+ return compatibleStack
179195 . filter ( ( sf ) => sf . collapse !== true )
180196 . map ( ( sf , i ) => ( {
181197 name : frames [ i ] ?. name ?? sf . methodName ,
0 commit comments