diff options
Diffstat (limited to 'examples/scala-js/library/src/main/scala/scala/scalajs/js/JSApp.scala')
-rw-r--r-- | examples/scala-js/library/src/main/scala/scala/scalajs/js/JSApp.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/scala-js/library/src/main/scala/scala/scalajs/js/JSApp.scala b/examples/scala-js/library/src/main/scala/scala/scalajs/js/JSApp.scala new file mode 100644 index 0000000..fd12207 --- /dev/null +++ b/examples/scala-js/library/src/main/scala/scala/scalajs/js/JSApp.scala @@ -0,0 +1,20 @@ +package scala.scalajs.js + +import annotation.{JSExport, JSExportDescendentObjects} + +/** Base class for top-level, entry point main objects. + * + * Objects inheriting from [[JSApp]] are automatically exported to JavaScript + * under their fully qualified name, and their [[main]] method as well. + * + * [[JSApp]] is typically used to mark the entry point of a Scala.js + * application. As such, the sbt plugin also recognizes top-level objects + * extending [[JSApp]]. It allows to run their [[main]] method with `sbt run`, + * and can also generate a tiny JavaScript launcher snippet executing the + * [[main]] method of one specific [[JSApp]] object. + */ +@JSExportDescendentObjects +trait JSApp { + @JSExport + def main(): Unit +} |