aboutsummaryrefslogtreecommitdiff
path: root/mavigator-cockpit/src/main/scala/mavigator/util/Application.scala
blob: 68a39b18a3bc9a1c2dd310463cbbee00ecd07b2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package mavigator
package util

import scala.scalajs.js.annotation.JSExport
import scala.scalajs.js

import org.scalajs.dom.console
import org.scalajs.dom.html

trait Application {

  def main(args: Map[String, String])(implicit env: Environment): Unit

  @JSExport
  final def start(settings: js.Dynamic): Unit = {

    console.info("Initializing environment,,,")
    val env = new Environment(
      root = settings.root.asInstanceOf[html.Element],
      styleRoot = settings.styleRoot.asInstanceOf[html.Element],
      baseUrl = settings.baseUrl.asInstanceOf[String]
    )

    console.info("Reading arguments...")
    val args: Map[String, String] =
      settings.args.asInstanceOf[js.Dictionary[Any]].mapValues(_.toString).toMap

    console.info("Entering main...")
    main(args)(env)
  }

}