Skip to content

Commit 843f342

Browse files
committed
Improve naming in new package manager abstraction, fix scripted test
1 parent 8dd72a1 commit 843f342

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

sbt-scalajs-bundler/src/main/scala/scalajsbundler/ExternalCommand.scala renamed to sbt-scalajs-bundler/src/main/scala/scalajsbundler/PackageManager.scala

+17-10
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import scalajsbundler.util.JSON
1111
*
1212
* @param name Name of the command to run
1313
*/
14-
abstract class PackageManager(val name: String, val args: Seq[String], val installCommand: String) {
14+
abstract class PackageManager(val name: String, val installCommand: String, val installArgs: Seq[String]) {
1515

1616
/**
1717
* Runs the command `cmd`
1818
* @param args Command arguments
1919
* @param workingDir Working directory of the process
2020
* @param logger Logger
2121
*/
22-
def run(args: String*)(workingDir: File, logger: Logger): Unit =
22+
protected def run(args: String*)(workingDir: File, logger: Logger): Unit =
2323
Commands.run(cmd ++: args, workingDir, logger)
2424

2525
private val cmd = sys.props("os.name").toLowerCase match {
@@ -37,7 +37,7 @@ abstract class PackageManager(val name: String, val args: Seq[String], val insta
3737
()
3838
}
3939

40-
run(installCommand +: args: _*)(installDir, logger)
40+
run(installCommand +: installArgs: _*)(installDir, logger)
4141

4242
this match {
4343
case lfs: LockFileSupport =>
@@ -53,6 +53,7 @@ abstract class PackageManager(val name: String, val args: Seq[String], val insta
5353
trait AddPackagesSupport { this: PackageManager =>
5454

5555
val addPackagesCommand: String
56+
val addPackagesArgs: Seq[String]
5657

5758
/**
5859
* Locally install NPM packages
@@ -73,7 +74,7 @@ trait AddPackagesSupport { this: PackageManager =>
7374
()
7475
}
7576

76-
run(addPackagesCommand +: (args ++ npmPackages): _*)(installDir, logger)
77+
run(addPackagesCommand +: (addPackagesArgs ++ npmPackages): _*)(installDir, logger)
7778

7879
this match {
7980
case lfs: LockFileSupport =>
@@ -118,9 +119,11 @@ trait LockFileSupport {
118119

119120
case class Npm(
120121
lockFileName: String = "package-lock.json",
121-
override val args: Seq[String] = Seq.empty,
122-
addPackagesCommand: String = "install"
123-
) extends PackageManager("npm", args, "install")
122+
override val installCommand: String = "install",
123+
override val installArgs: Seq[String] = Seq.empty,
124+
addPackagesCommand: String = "install",
125+
override val addPackagesArgs: Seq[String] = Seq.empty,
126+
) extends PackageManager("npm", "install", installArgs)
124127
with LockFileSupport
125128
with AddPackagesSupport {
126129
override val packageJsonContents: Map[String, JSON] = Map.empty
@@ -129,9 +132,13 @@ case class Npm(
129132
case class Yarn(
130133
version: String,
131134
lockFileName: String = "yarn.lock",
132-
override val args: Seq[String] = Yarn.DefaultArgs,
133-
addPackagesCommand: String = "add") extends PackageManager("yarn", args, "install")
134-
with LockFileSupport with AddPackagesSupport {
135+
override val installCommand: String = "install",
136+
override val installArgs: Seq[String] = Yarn.DefaultArgs,
137+
addPackagesCommand: String = "add",
138+
override val addPackagesArgs: Seq[String] = Yarn.DefaultArgs
139+
) extends PackageManager("yarn", "install", installArgs)
140+
with LockFileSupport
141+
with AddPackagesSupport {
135142
override val packageJsonContents: Map[String, JSON] = Map("packageManager" -> JSON.str(s"yarn@$version"))
136143
}
137144
object Yarn {

sbt-scalajs-bundler/src/main/scala/scalajsbundler/sbtplugin/ScalaJSBundlerPlugin.scala

-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@ import sbt.Keys._
66
import sbt.{Def, _}
77
import scalajsbundler.AddPackagesSupport
88
import scalajsbundler.{BundlerFile, NpmDependencies, Webpack, WebpackDevServer}
9-
import scalajsbundler.ExternalCommand.addPackages
109
import scalajsbundler.Npm
1110
import scalajsbundler.PackageManager
12-
import scalajsbundler.Yarn
1311
import scalajsbundler.util.{JSON, ScalaJSNativeLibraries}
1412

1513

sbt-scalajs-bundler/src/sbt-test/sbt-scalajs-bundler/additonalNpmConfig/build.sbt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import scalajsbundler.util.JSON._
2+
import scalajsbundler.Npm
23

34
val checkPackageJson = taskKey[Unit]("Check that the package.json file does not contain duplicate entries for the 'react' dependency")
45

@@ -8,7 +9,7 @@ lazy val npmConfig =
89
.settings(
910
scalaVersion := "2.13.1",
1011
npmDependencies in Compile += "react" -> "16.13.1",
11-
npmExtraArgs in Compile := Seq("-silent"),
12+
packageManager in Compile := Npm(installArgs = Seq("-silent"), addPackagesArgs = Seq("-silent")),
1213
additionalNpmConfig in Compile := Map(
1314
"name" -> str("foo"),
1415
"version" -> str("1.0.0"),

0 commit comments

Comments
 (0)