Skip to content

Commit fc94cdf

Browse files
authored
Merge pull request #25 from VirtusLab/es-version
Add support for parsing es version
2 parents c91a2fb + f7ccde7 commit fc94cdf

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

Diff for: cli/src/org/scalajs/cli/Scalajsld.scala

+4-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import java.io.File
2626
import java.net.URI
2727
import java.nio.file.Path
2828
import java.lang.NoClassDefFoundError
29-
import org.scalajs.cli.internal.ModuleSplitStyleParser
29+
import org.scalajs.cli.internal.{EsVersionParser, ModuleSplitStyleParser}
3030

3131
object Scalajsld {
3232

@@ -153,6 +153,9 @@ object Scalajsld {
153153
opt[Unit]("es2015")
154154
.action { (_, c) => c.copy(esFeatures = c.esFeatures.withESVersion(ESVersion.ES2015)) }
155155
.text("Use ECMAScript 2015")
156+
opt[String]("esVersion")
157+
.action { (esV, c) => c.copy(esFeatures = c.esFeatures.withESVersion(EsVersionParser.parse(esV))) }
158+
.text("EsVersion " + EsVersionParser.All.mkString("(", ", ", ")"))
156159
opt[ModuleKind]('k', "moduleKind")
157160
.action { (kind, c) => c.copy(moduleKind = kind) }
158161
.text("Module kind " + ModuleKind.All.mkString("(", ", ", ")"))
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.scalajs.cli.internal
2+
3+
import org.scalajs.linker.interface.ESVersion
4+
5+
import java.util.Locale
6+
7+
object EsVersionParser {
8+
def parse(esVersion: String): ESVersion =
9+
esVersion.trim.toLowerCase(Locale.ROOT) match {
10+
case "es5_1" => ESVersion.ES5_1
11+
case "es2015" => ESVersion.ES2015
12+
case "es2016" => ESVersion.ES2016
13+
case "es2017" => ESVersion.ES2017
14+
case "es2018" => ESVersion.ES2018
15+
case "es2019" => ESVersion.ES2019
16+
case "es2020" => ESVersion.ES2020
17+
case "es2021" => ESVersion.ES2021
18+
case unknown => throw new IllegalArgumentException(s"Warning: unrecognized argument: $unknown for --esVersion parameter")
19+
}
20+
21+
val All: List[ESVersion] =
22+
List(ESVersion.ES5_1, ESVersion.ES2015, ESVersion.ES2016, ESVersion.ES2017, ESVersion.ES2018, ESVersion.ES2019, ESVersion.ES2020, ESVersion.ES2021)
23+
}

0 commit comments

Comments
 (0)