diff --git a/.idea/scala_compiler.xml b/.idea/scala_compiler.xml
index 33cbac2..d31a44d 100644
--- a/.idea/scala_compiler.xml
+++ b/.idea/scala_compiler.xml
@@ -61,7 +61,7 @@
-
+
diff --git a/common/src/main/scala/org/kys/athena/util/exceptions/BadRequestException.scala b/common/src/main/scala/org/kys/athena/util/exceptions/BadRequestException.scala
deleted file mode 100644
index 63f4eff..0000000
--- a/common/src/main/scala/org/kys/athena/util/exceptions/BadRequestException.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.kys.athena.util.exceptions
-
-import scala.util.control.NoStackTrace
-
-
-final case class BadRequestException(reason: String) extends Throwable with NoStackTrace
diff --git a/common/src/main/scala/org/kys/athena/util/exceptions/InconsistentAPIException.scala b/common/src/main/scala/org/kys/athena/util/exceptions/InconsistentAPIException.scala
deleted file mode 100644
index 4ee480f..0000000
--- a/common/src/main/scala/org/kys/athena/util/exceptions/InconsistentAPIException.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.kys.athena.util.exceptions
-
-import scala.util.control.NoStackTrace
-
-
-final case class InconsistentAPIException(dtoName: String, errorDesc: String) extends Throwable with NoStackTrace
diff --git a/common/src/main/scala/org/kys/athena/util/exceptions/NotFoundException.scala b/common/src/main/scala/org/kys/athena/util/exceptions/NotFoundException.scala
deleted file mode 100644
index 55f1ca5..0000000
--- a/common/src/main/scala/org/kys/athena/util/exceptions/NotFoundException.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.kys.athena.util.exceptions
-
-import scala.util.control.NoStackTrace
-
-
-final case class NotFoundException(reason: String) extends Throwable with NoStackTrace
diff --git a/common/src/main/scala/org/kys/athena/util/exceptions/RiotException.scala b/common/src/main/scala/org/kys/athena/util/exceptions/RiotException.scala
deleted file mode 100644
index f403a5c..0000000
--- a/common/src/main/scala/org/kys/athena/util/exceptions/RiotException.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.kys.athena.util.exceptions
-
-import scala.util.control.NoStackTrace
-
-
-final case class RiotException(statusCode: Int, errorMessage: Option[String]) extends Throwable with NoStackTrace
diff --git a/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala b/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala
index 1398ec0..fe7031e 100644
--- a/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala
+++ b/macro/src/main/scala/org/kys/athena/util/assets/AssetLoader.scala
@@ -11,17 +11,23 @@ object AssetLoader {
def requireImpl(c: blackbox.Context)(path: c.Expr[String]): c.Expr[String] = {
import c.universe._
- path match {
- case Expr(Literal(_)) => {
- reify {
- JSImporter.require[String](s"../../src/main/resources" + path.splice)
- }
- }
- case _ => {
- throw new IllegalArgumentException("Cannot call require with non-literal values.\n" +
- "This will produce an invalid JS require that will likely break " +
- "things.")
+ def eval[B](tree: Tree): B = c.eval[B](c.Expr[B](c.untypecheck(tree.duplicate)))
+ try {
+ val pathStr = eval[String](path.tree)
+ println("Evaled to " + pathStr)
+ val expr = c.Expr[String](Literal(Constant(pathStr)))
+ reify {
+ JSImporter.require[String](s"../../src/main/resources" + expr.splice)
}
+ } catch {
+ case e: Throwable =>
+ c.abort(c.enclosingPosition,
+ s"""
+ |Exception during require macro expansion.
+ |This method cannot be called with values not known at compile-time.
+ |This will produce an invalid JS require that will likely break things.
+ |Caused by: $e
+ |""".stripMargin)
}
/*
def eval[B](tree: Tree): B = c.eval[B](c.Expr[B](c.untypecheck(tree.duplicate)))