File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
src/commonMain/kotlin/spp.protocol/artifact/exception Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -77,15 +77,33 @@ class LiveStackTrace(
7777 private val pythonFrameRegex = Regex (
7878 " {2}File \" (.+)\" , line ([0-9]+), in (.+)\\ n {4}(.+)"
7979 )
80+ private val nodeFrameRegex = Regex (
81+ " at (.+) \\ ((.+):([0-9]+):([0-9]+)\\ )"
82+ )
8083
8184 fun fromString (data : String ): LiveStackTrace ? {
8285 return when {
8386 frameRegex.containsMatchIn(data) -> extractJvmStackTrace(data)
8487 pythonFrameRegex.containsMatchIn(data) -> extractPythonStackTrace(data)
88+ nodeFrameRegex.containsMatchIn(data) -> extractNodeStackTrace(data)
8589 else -> null
8690 }
8791 }
8892
93+ private fun extractNodeStackTrace (data : String ): LiveStackTrace {
94+ val elements = mutableListOf<LiveStackTraceElement >()
95+ for (el in nodeFrameRegex.findAll(data)) {
96+ val method = el.groupValues[1 ]
97+
98+ val file = el.groupValues[2 ]
99+ val line = el.groupValues[3 ].toInt()
100+ val column = el.groupValues[4 ].toInt()
101+
102+ elements.add(LiveStackTraceElement (method, " $file :$line " ))
103+ }
104+ return LiveStackTrace (" n/a" , " n/a" , elements)
105+ }
106+
89107 private fun extractPythonStackTrace (data : String ): LiveStackTrace {
90108 val elements = mutableListOf<LiveStackTraceElement >()
91109 for (el in pythonFrameRegex.findAll(data).toList().reversed()) {
You can’t perform that action at this time.
0 commit comments