@@ -24,17 +24,26 @@ abstract class NpmExecRunner {
2424 project : ProjectApiHelper ,
2525 extension : NodeExtension ,
2626 nodeExecConfiguration : NodeExecConfiguration ,
27- variants : VariantComputer
27+ variants : VariantComputer ,
2828 ): ExecResult {
2929 val npmExecConfiguration = NpmExecConfiguration (
30- " npm"
31- ) { variantComputer, nodeExtension, npmBinDir -> variantComputer.computeNpmExec(nodeExtension, npmBinDir) }
30+ command = " npm" ,
31+ commandExecComputer = { variantComputer, nodeExtension, npmBinDir ->
32+ variantComputer.computeNpmExec(
33+ nodeExtension,
34+ npmBinDir
35+ )
36+ }
37+ )
3238 return executeCommand(
33- project,
34- extension,
35- NpmProxy .addProxyEnvironmentVariables(extension.nodeProxySettings.get(), nodeExecConfiguration),
36- npmExecConfiguration,
37- variants
39+ project = project,
40+ extension = extension,
41+ nodeExecConfiguration = NpmProxy .addProxyEnvironmentVariables(
42+ proxySettings = extension.nodeProxySettings.get(),
43+ nodeExecConfiguration = nodeExecConfiguration
44+ ),
45+ npmExecConfiguration = npmExecConfiguration,
46+ variantComputer = variants
3847 )
3948 }
4049
@@ -78,9 +87,13 @@ abstract class NpmExecRunner {
7887 if (executableAndScript.script != null ) listOf (executableAndScript.script) else listOf ()
7988 val args = argsPrefix.plus(nodeExecConfiguration.command)
8089 ExecConfiguration (
81- executableAndScript.executable, args, additionalBinPath,
82- nodeExecConfiguration.environment, nodeExecConfiguration.workingDir,
83- nodeExecConfiguration.ignoreExitValue, nodeExecConfiguration.execOverrides
90+ executable = executableAndScript.executable,
91+ args = args,
92+ additionalBinPaths = additionalBinPath,
93+ environment = nodeExecConfiguration.environment,
94+ workingDir = nodeExecConfiguration.workingDir,
95+ ignoreExitValue = nodeExecConfiguration.ignoreExitValue,
96+ execOverrides = nodeExecConfiguration.execOverrides,
8497 )
8598 }
8699 }
@@ -97,18 +110,34 @@ abstract class NpmExecRunner {
97110 val nodeExecProvider = computeNodeExec(nodeExtension, nodeBinDirProvider)
98111 val executableProvider =
99112 npmExecConfiguration.commandExecComputer(variantComputer, nodeExtension, npmBinDirProvider)
100- val isWindows = nodeExtension.resolvedPlatform.get().isWindows()
101113 val npmScriptFileProvider =
102- computeNpmScriptFile(nodeDirProvider, npmExecConfiguration.command, isWindows)
114+ computeNpmScriptFile(nodeDirProvider, npmExecConfiguration.command, nodeExtension.resolvedPlatform)
115+ return computeExecutable(
116+ npmExecConfiguration.command,
117+ nodeExtension,
118+ executableProvider,
119+ nodeExecProvider,
120+ npmScriptFileProvider
121+ )
122+ }
123+
124+ private fun computeExecutable (
125+ command : String ,
126+ nodeExtension : NodeExtension ,
127+ executableProvider : Provider <String >,
128+ nodeExecProvider : Provider <String >,
129+ npmScriptFileProvider : Provider <String >,
130+ ): Provider <ExecutableAndScript > {
103131 return zip(
104- nodeExtension.download, nodeExtension.nodeProjectDir, executableProvider, nodeExecProvider,
132+ nodeExtension.download,
133+ nodeExtension.nodeProjectDir,
134+ executableProvider,
135+ nodeExecProvider,
105136 npmScriptFileProvider
106- ).map {
107- val (download, nodeProjectDir, executable, nodeExec,
108- npmScriptFile) = it
137+ ).map { (download, nodeProjectDir, executable, nodeExec, npmScriptFile) ->
109138 if (download) {
110139 val localCommandScript = nodeProjectDir.dir(" node_modules/npm/bin" )
111- .file(" ${npmExecConfiguration. command} -cli.js" ).asFile
140+ .file(" ${command} -cli.js" ).asFile
112141 if (localCommandScript.exists()) {
113142 return @map ExecutableAndScript (nodeExec, localCommandScript.absolutePath)
114143 } else if (! File (executable).exists()) {
@@ -121,7 +150,7 @@ abstract class NpmExecRunner {
121150
122151 private data class ExecutableAndScript (
123152 val executable : String ,
124- val script : String? = null
153+ val script : String? = null ,
125154 )
126155
127156 private fun computeAdditionalBinPath (
0 commit comments