All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.scalajs.testinterface.internal.ThrowableSerializer.scala Maven / Gradle / Ivy

There is a newer version: 1.0.0-M2
Show newest version
package org.scalajs.testinterface.internal

import scala.scalajs.js
import js.Dynamic.{literal => lit}
import js.JSConverters._

import sbt.testing._

object ThrowableSerializer {

  def serialize(t: Throwable): js.Dynamic = {
    val res = lit(
        `class` = t.getClass().toString,
        message = t.getMessage(),
        toString = t.toString(),
        stackTrace = t.getStackTrace().map(serializeTraceElem).toJSArray)

    if (t.getCause() != null)
      res.cause = serialize(t.getCause())

    res
  }

  private def serializeTraceElem(e: StackTraceElement): js.Dynamic = {
    lit(className = e.getClassName,
        methodName = e.getMethodName,
        fileName = e.getFileName,
        lineNumber = e.getLineNumber)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy