Skip to content

Commit 2768e29

Browse files
committed
Merge '0.6.x' into 'master'.
2 parents 796d971 + 3740ad5 commit 2768e29

File tree

4 files changed

+82
-13
lines changed

4 files changed

+82
-13
lines changed

js-envs-test-suite/src/test/scala/org/scalajs/jsenv/test/JSDOMNodeJSEnvTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.scalajs.jsenv.test
22

3-
import org.scalajs.jsenv.nodejs.JSDOMNodeJSEnv
3+
import org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv
44

55
import org.junit.Test
66
import org.junit.Assert._
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/* __ *\
2+
** ________ ___ / / ___ __ ____ Scala.js JS envs **
3+
** / __/ __// _ | / / / _ | __ / // __/ (c) 2013-2017, LAMP/EPFL **
4+
** __\ \/ /__/ __ |/ /__/ __ |/_// /_\ \ http://scala-js.org/ **
5+
** /____/\___/_/ |_/____/_/ | |__/ /____/ **
6+
** |/____/ **
7+
\* */
8+
9+
package org.scalajs.jsenv.jsdomnodejs
10+
11+
class JSDOMNodeJSEnv(config: JSDOMNodeJSEnv.Config)
12+
extends org.scalajs.jsenv.nodejs.JSDOMNodeJSEnv(config.executable,
13+
config.args, config.env, internal = ()) {
14+
15+
def this() = this(JSDOMNodeJSEnv.Config())
16+
}
17+
18+
object JSDOMNodeJSEnv {
19+
final class Config private (
20+
val executable: String,
21+
val args: List[String],
22+
val env: Map[String, String]
23+
) {
24+
private def this() = {
25+
this(
26+
executable = "node",
27+
args = Nil,
28+
env = Map.empty
29+
)
30+
}
31+
32+
def withExecutable(executable: String): Config =
33+
copy(executable = executable)
34+
35+
def withArgs(args: List[String]): Config =
36+
copy(args = args)
37+
38+
def withEnv(env: Map[String, String]): Config =
39+
copy(env = env)
40+
41+
private def copy(
42+
executable: String = executable,
43+
args: List[String] = args,
44+
env: Map[String, String] = env
45+
): Config = {
46+
new Config(executable, args, env)
47+
}
48+
}
49+
50+
object Config {
51+
/** Returns a default configuration for a [[JSDOMNodeJSEnv]].
52+
*
53+
* The defaults are:
54+
*
55+
* - `executable`: `"node"`
56+
* - `args`: `Nil`
57+
* - `env`: `Map.empty`
58+
*/
59+
def apply(): Config = new Config()
60+
}
61+
}

js-envs/src/main/scala/org/scalajs/jsenv/nodejs/JSDOMNodeJSEnv.scala

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,24 @@ import org.scalajs.jsenv._
1616

1717
import org.scalajs.core.ir.Utils.escapeJS
1818

19-
class JSDOMNodeJSEnv(
20-
@deprecatedName('nodejsPath)
21-
executable: String = "node",
22-
@deprecatedName('addArgs)
23-
args: Seq[String] = Seq.empty,
24-
@deprecatedName('addEnv)
25-
env: Map[String, String] = Map.empty)
26-
extends AbstractNodeJSEnv(executable, args, env, sourceMap = false) {
19+
class JSDOMNodeJSEnv private[jsenv] (
20+
executable: String,
21+
args: Seq[String],
22+
env: Map[String, String],
23+
internal: Unit
24+
) extends AbstractNodeJSEnv(executable, args, env, sourceMap = false) {
25+
26+
@deprecated("Use org.scalajs.jsenv.jsdomnodejs.JSDOMNodeJSEnv.", "0.6.18")
27+
def this(
28+
@deprecatedName('nodejsPath)
29+
executable: String = "node",
30+
@deprecatedName('addArgs)
31+
args: Seq[String] = Seq.empty,
32+
@deprecatedName('addEnv)
33+
env: Map[String, String] = Map.empty
34+
) = {
35+
this(executable, args, env, internal = ())
36+
}
2737

2838
protected def vmName: String = "Node.js with JSDOM"
2939

sbt-plugin-test/withDOM/src/main/scala/sbttest/withDOM/TestApp.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package sbttest.withDOM
22

3-
import scala.scalajs.js
3+
object TestApp {
44

5-
object TestApp extends js.JSApp {
6-
7-
def main(): Unit = {
5+
def main(args: Array[String]): Unit = {
86
Lib.appendDocument("Hello World")
97
Lib.appendDocument("Still Here!")
108

0 commit comments

Comments
 (0)