Skip to content

Commit

Permalink
Added CommonNodeJsModule
Browse files Browse the repository at this point in the history
  • Loading branch information
viktor-podzigun committed Nov 8, 2021
1 parent 473e4cd commit 8d7d860
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 26 deletions.
23 changes: 9 additions & 14 deletions src/main/scala/scommons/sbtplugin/project/CommonClientModule.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package scommons.sbtplugin.project

import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._
import org.scalajs.jsenv.nodejs.NodeJSEnv
import org.scalajs.sbtplugin.ScalaJSPlugin
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import sbt.Keys._
import sbt._
import scommons.sbtplugin.ScommonsPlugin.autoImport._
import scommons.sbtplugin.project.CommonModule._

import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin.autoImport._

Expand Down Expand Up @@ -75,20 +75,15 @@ object CommonClientModule {
requireJsDomEnv in Test := false,
version in webpack := "4.29.0",
webpackEmitSourceMaps := false,
parallelExecution in Test := false,

npmDependencies in Compile ++= Seq(
"react" -> "^16.8.0",
"react-dom" -> "^16.8.0"
),
npmResolutions in Compile ++= Map(
"react" -> "^16.8.0",
"react-dom" -> "^16.8.0"
),

npmResolutions in Test ++= Map(
"react" -> "^16.8.0",
"react-dom" -> "^16.8.0"
),
// required for node.js >= v12.12.0
// see:
// https://github.com/nodejs/node/pull/29919
scalaJSLinkerConfig in Test ~= {
_.withSourceMap(true)
},
jsEnv in Test := new NodeJSEnv(NodeJSEnv.Config().withArgs(List("--enable-source-maps"))),

ideExcludedDirectories ++= {
val base = baseDirectory.value
Expand Down
21 changes: 10 additions & 11 deletions src/main/scala/scommons/sbtplugin/project/CommonMobileModule.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package scommons.sbtplugin.project

import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._
import org.scalajs.jsenv.nodejs.NodeJSEnv
import org.scalajs.sbtplugin.ScalaJSPlugin
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import sbt.Keys._
import sbt._
import scommons.sbtplugin.ScommonsPlugin.autoImport._
import scommons.sbtplugin.project.CommonModule.ideExcludedDirectories

import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin.autoImport._

Expand Down Expand Up @@ -71,21 +71,20 @@ object CommonMobileModule {
requireJsDomEnv in Test := false,
version in webpack := "4.29.0",
webpackEmitSourceMaps := false,
parallelExecution in Test := false,

npmDependencies in Compile ++= Seq(
"react" -> "^16.8.0"
),
npmResolutions in Compile ++= Map(
"react" -> "^16.8.0"
),

npmResolutions in Test ++= Map(
"react" -> "^16.8.0"
),
npmDevDependencies in Test ++= Seq(
"module-alias" -> "2.2.2"
),

// required for node.js >= v12.12.0
// see:
// https://github.com/nodejs/node/pull/29919
scalaJSLinkerConfig in Test ~= {
_.withSourceMap(true)
},
jsEnv in Test := new NodeJSEnv(NodeJSEnv.Config().withArgs(List("--enable-source-maps"))),

ideExcludedDirectories ++= {
val base = baseDirectory.value
List(
Expand Down
72 changes: 72 additions & 0 deletions src/main/scala/scommons/sbtplugin/project/CommonNodeJsModule.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package scommons.sbtplugin.project

import org.portablescala.sbtplatformdeps.PlatformDepsPlugin.autoImport._
import org.scalajs.jsenv.nodejs.NodeJSEnv
import org.scalajs.sbtplugin.ScalaJSPlugin
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import sbt.Keys._
import sbt._
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin.autoImport._
import scommons.sbtplugin.project.CommonModule.ideExcludedDirectories

trait CommonNodeJsModule extends CommonModule {

def scommonsNodejsVersion: String

override def definition: Project = {
super.definition
.enablePlugins(ScalaJSPlugin, ScalaJSBundlerPlugin)
.settings(CommonNodeJsModule.settings: _*)
}

override def superRepoProjectsDependencies: Seq[(String, String, Option[String])] = Seq(
("scommons-nodejs", "scommons-nodejs-core", None),

("scommons-nodejs", "scommons-nodejs-test", Some("test"))
)

override def runtimeDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Seq(
"org.scommons.nodejs" %%% "scommons-nodejs-core" % scommonsNodejsVersion
))

override def testDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Seq(
"org.scommons.nodejs" %%% "scommons-nodejs-test" % scommonsNodejsVersion
).map(_ % "test"))
}

object CommonNodeJsModule {

val settings: Seq[Setting[_]] = Seq(
scalaJSLinkerConfig ~= {
_.withModuleKind(ModuleKind.CommonJSModule)
.withSourceMap(false)
.withESFeatures(_.withUseECMAScript2015(false))
},
//Opt-in @ScalaJSDefined by default
scalacOptions += {
if (scalaJSVersion.startsWith("0.6")) "-P:scalajs:sjsDefinedByDefault"
else ""
},
requireJsDomEnv in Test := false,
version in webpack := "4.29.0",
webpackEmitSourceMaps := false,
parallelExecution in Test := false,

// required for node.js >= v12.12.0
// see:
// https://github.com/nodejs/node/pull/29919
scalaJSLinkerConfig in Test ~= {
_.withSourceMap(true)
},
jsEnv in Test := new NodeJSEnv(NodeJSEnv.Config().withArgs(List("--enable-source-maps"))),

ideExcludedDirectories ++= {
val base = baseDirectory.value
List(
base / "build",
base / "node_modules"
)
}
)
}
2 changes: 1 addition & 1 deletion version.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version in ThisBuild := sys.env.getOrElse("version", default = "0.6.0-SNAPSHOT").stripPrefix("v")
version in ThisBuild := sys.env.getOrElse("version", default = "0.7.0-SNAPSHOT").stripPrefix("v")

0 comments on commit 8d7d860

Please sign in to comment.