diff options
-rw-r--r-- | plugin/src/main/scala/scala/js/resource/Plugin.scala | 2 | ||||
-rw-r--r-- | runtime/src/main/scala/scala/js/Resource.scala | 20 |
2 files changed, 19 insertions, 3 deletions
diff --git a/plugin/src/main/scala/scala/js/resource/Plugin.scala b/plugin/src/main/scala/scala/js/resource/Plugin.scala index 69da094..933756d 100644 --- a/plugin/src/main/scala/scala/js/resource/Plugin.scala +++ b/plugin/src/main/scala/scala/js/resource/Plugin.scala @@ -24,7 +24,7 @@ object Plugin extends sbt.Plugin { val bundle = crossTarget.value / "resources.js" val fileLines = for((path, data) <- fileData) yield { - " \"" + path + "\": ScalaJS.modules.scala_js_Resource().create(\"" + data + "\")" + " \"" + path + "\": \"" + data + "\"" } IO.write(bundle, "\nScalaJS.resources = {\n" + fileLines.mkString(",\n") + "\n}" ) diff --git a/runtime/src/main/scala/scala/js/Resource.scala b/runtime/src/main/scala/scala/js/Resource.scala index 4cb2aac..8cc3a49 100644 --- a/runtime/src/main/scala/scala/js/Resource.scala +++ b/runtime/src/main/scala/scala/js/Resource.scala @@ -2,12 +2,28 @@ package scala.js object Resource { + println("Resource") + val fileDict = { + val fileDict = Dynamic.global.ScalaJS.resources.asInstanceOf[js.Object] + for(key <- Object.keys(fileDict)){ + val data = fileDict.asInstanceOf[js.Dictionary](key).asInstanceOf[String] + fileDict.asInstanceOf[js.Dictionary](key) = new Resource(data).asInstanceOf[js.Any] + } + fileDict + } + + println("Resource Initialized") def apply(path: String) = { - Dynamic.global.ScalaJS.resources.asInstanceOf[js.Dictionary].apply(path) + Dynamic.global + .ScalaJS + .resources + .asInstanceOf[js.Dictionary] + .apply(path) + .asInstanceOf[scala.js.Resource] } def create(value: String) = new Resource(value) } class Resource(base64: String){ - lazy val string = Dynamic.global.atob(base64) + lazy val string = Dynamic.global.atob(base64).asInstanceOf[js.String] }
\ No newline at end of file |