diff --git a/bridges/scalajs-0.6/src/main/scala/bloop/scalajs/JsBridge.scala b/bridges/scalajs-0.6/src/main/scala/bloop/scalajs/JsBridge.scala index a574122958..25b7d7f543 100644 --- a/bridges/scalajs-0.6/src/main/scala/bloop/scalajs/JsBridge.scala +++ b/bridges/scalajs-0.6/src/main/scala/bloop/scalajs/JsBridge.scala @@ -74,6 +74,7 @@ object JsBridge { val moduleKind = config.kind match { case ModuleKindJS.NoModule => ModuleKind.NoModule case ModuleKindJS.CommonJSModule => ModuleKind.CommonJSModule + case ModuleKindJS.ESModule => ModuleKind.ESModule } val enableOptimizer = config.mode == LinkerMode.Release diff --git a/bridges/scalajs-1.0/src/main/scala/bloop/scalajs/JsBridge.scala b/bridges/scalajs-1.0/src/main/scala/bloop/scalajs/JsBridge.scala index c1d1c32012..4682f2952f 100644 --- a/bridges/scalajs-1.0/src/main/scala/bloop/scalajs/JsBridge.scala +++ b/bridges/scalajs-1.0/src/main/scala/bloop/scalajs/JsBridge.scala @@ -63,6 +63,7 @@ object JsBridge { val moduleKind = config.kind match { case ModuleKindJS.NoModule => ScalaJSModuleKind.NoModule case ModuleKindJS.CommonJSModule => ScalaJSModuleKind.CommonJSModule + case ModuleKindJS.ESModule => ScalaJSModuleKind.ESModule } val cache = StandardImpl.irFileCache().newCache @@ -131,6 +132,7 @@ object JsBridge { val input = jsConfig.kind match { case ModuleKindJS.NoModule => Input.Script(jsPath) case ModuleKindJS.CommonJSModule => Input.CommonJSModule(jsPath) + case ModuleKindJS.ESModule => Input.ESModule(jsPath) } val testConfig = TestAdapter.Config().withLogger(new Logger(logger)) diff --git a/config/src/main/scala-2.10/bloop/config/ConfigCodecs.scala b/config/src/main/scala-2.10/bloop/config/ConfigCodecs.scala index 1414b24481..22763596bf 100644 --- a/config/src/main/scala-2.10/bloop/config/ConfigCodecs.scala +++ b/config/src/main/scala-2.10/bloop/config/ConfigCodecs.scala @@ -73,6 +73,7 @@ object ConfigCodecs { override final def apply(m: ModuleKindJS): Json = m match { case m @ ModuleKindJS.NoModule => Json.fromString(m.id) case m @ ModuleKindJS.CommonJSModule => Json.fromString(m.id) + case m @ ModuleKindJS.ESModule => Json.fromString(m.id) } } @@ -81,6 +82,7 @@ object ConfigCodecs { c.as[String].flatMap { case ModuleKindJS.NoModule.id => Right(ModuleKindJS.NoModule) case ModuleKindJS.CommonJSModule.id => Right(ModuleKindJS.CommonJSModule) + case ModuleKindJS.ESModule.id => Right(ModuleKindJS.ESModule) case _ => val msg = s"Expected module kind ${ModuleKindJS.All.map(s => s"'$s'").mkString(", ")})" Left(DecodingFailure(msg, c.history)) diff --git a/config/src/main/scala-2.11-13/bloop/config/ConfigCodecs.scala b/config/src/main/scala-2.11-13/bloop/config/ConfigCodecs.scala index aa0fd15394..3ceae6198f 100644 --- a/config/src/main/scala-2.11-13/bloop/config/ConfigCodecs.scala +++ b/config/src/main/scala-2.11-13/bloop/config/ConfigCodecs.scala @@ -93,6 +93,7 @@ object ConfigCodecs { val str = x match { case Config.ModuleKindJS.CommonJSModule => Config.ModuleKindJS.CommonJSModule.id case Config.ModuleKindJS.NoModule => Config.ModuleKindJS.NoModule.id + case Config.ModuleKindJS.ESModule => Config.ModuleKindJS.ESModule.id } out.writeVal(str) } @@ -102,6 +103,7 @@ object ConfigCodecs { in.readString(null) match { case Config.ModuleKindJS.CommonJSModule.id => Config.ModuleKindJS.CommonJSModule case Config.ModuleKindJS.NoModule.id => Config.ModuleKindJS.NoModule + case Config.ModuleKindJS.ESModule.id => Config.ModuleKindJS.ESModule case _ => in.decodeError( s"Expected linker mode ${Config.ModuleKindJS.All.mkString("'", "', '", "'")}" diff --git a/config/src/main/scala/bloop/config/Config.scala b/config/src/main/scala/bloop/config/Config.scala index 7fa4f1878d..b7810920ce 100644 --- a/config/src/main/scala/bloop/config/Config.scala +++ b/config/src/main/scala/bloop/config/Config.scala @@ -146,7 +146,8 @@ object Config { object ModuleKindJS { case object NoModule extends ModuleKindJS("none") case object CommonJSModule extends ModuleKindJS("commonjs") - val All = List(NoModule.id, CommonJSModule.id) + case object ESModule extends ModuleKindJS("esmodule") + val All = List(NoModule.id, CommonJSModule.id, ESModule.id) } case class JsConfig( diff --git a/integrations/sbt-bloop/src/main/scala/bloop/integrations/sbt/SbtBloop.scala b/integrations/sbt-bloop/src/main/scala/bloop/integrations/sbt/SbtBloop.scala index 48f301b7da..0b022a5bdc 100644 --- a/integrations/sbt-bloop/src/main/scala/bloop/integrations/sbt/SbtBloop.scala +++ b/integrations/sbt-bloop/src/main/scala/bloop/integrations/sbt/SbtBloop.scala @@ -267,6 +267,7 @@ object BloopDefaults { private final val NoJSModule = "NoModule" private final val CommonJSModule = "CommonJSModule" + private final val ESModule = "ESModule" /** * Create a "proxy" for a setting that will allow us to inspect its value even though @@ -303,6 +304,7 @@ object BloopDefaults { stageSetting.value.toString match { case "Some(NoModule)" => Some(NoJSModule) case "Some(CommonJSModule)" => Some(CommonJSModule) + case "Some(ESModule)" => Some(ESModule) case _ => None } } @@ -777,6 +779,7 @@ object BloopDefaults { val scalaJsModule = BloopKeys.bloopScalaJSModuleKind.value match { case Some(NoJSModule) => Config.ModuleKindJS.NoModule case Some(CommonJSModule) => Config.ModuleKindJS.CommonJSModule + case Some(ESModule) => Config.ModuleKindJS.ESModule case _ => emptyScalaJs.kind }