summaryrefslogtreecommitdiff
path: root/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala')
-rw-r--r--examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala b/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala
new file mode 100644
index 0000000..a2c6b2d
--- /dev/null
+++ b/examples/scala-js/tools/shared/src/main/scala/scala/scalajs/tools/jsdep/Origin.scala
@@ -0,0 +1,28 @@
+package scala.scalajs.tools.jsdep
+
+import scala.scalajs.tools.json._
+
+/** The place a JSDependency originated from */
+final class Origin(val moduleName: String, val configuration: String) {
+ override def toString(): String = s"$moduleName:$configuration"
+}
+
+object Origin {
+ implicit object OriginJSONSerializer extends JSONSerializer[Origin] {
+ def serialize(x: Origin): JSON = {
+ new JSONObjBuilder()
+ .fld("moduleName", x.moduleName)
+ .fld("configuration", x.configuration)
+ .toJSON
+ }
+ }
+
+ implicit object OriginDeserializer extends JSONDeserializer[Origin] {
+ def deserialize(x: JSON): Origin = {
+ val obj = new JSONObjExtractor(x)
+ new Origin(
+ obj.fld[String]("moduleName"),
+ obj.fld[String]("configuration"))
+ }
+ }
+}