@@ -20,53 +20,76 @@ abstract class NpmExecRunner {
20
20
@get:Inject
21
21
abstract val providers: ProviderFactory
22
22
23
- fun executeNpmCommand (project : ProjectApiHelper , extension : NodeExtension , nodeExecConfiguration : NodeExecConfiguration , variants : VariantComputer ): ExecResult {
24
- val npmExecConfiguration = NpmExecConfiguration (" npm"
23
+ fun executeNpmCommand (
24
+ project : ProjectApiHelper ,
25
+ extension : NodeExtension ,
26
+ nodeExecConfiguration : NodeExecConfiguration ,
27
+ variants : VariantComputer
28
+ ): ExecResult {
29
+ val npmExecConfiguration = NpmExecConfiguration (
30
+ " npm"
25
31
) { variantComputer, nodeExtension, npmBinDir -> variantComputer.computeNpmExec(nodeExtension, npmBinDir) }
26
- return executeCommand(project, extension, NpmProxy .addProxyEnvironmentVariables(extension.nodeProxySettings.get(), nodeExecConfiguration),
27
- npmExecConfiguration,
28
- variants)
32
+ return executeCommand(
33
+ project,
34
+ extension,
35
+ NpmProxy .addProxyEnvironmentVariables(extension.nodeProxySettings.get(), nodeExecConfiguration),
36
+ npmExecConfiguration,
37
+ variants
38
+ )
29
39
}
30
40
31
- fun executeNpxCommand (project : ProjectApiHelper , extension : NodeExtension , nodeExecConfiguration : NodeExecConfiguration , variants : VariantComputer ): ExecResult {
41
+ fun executeNpxCommand (
42
+ project : ProjectApiHelper ,
43
+ extension : NodeExtension ,
44
+ nodeExecConfiguration : NodeExecConfiguration ,
45
+ variants : VariantComputer
46
+ ): ExecResult {
32
47
val npxExecConfiguration = NpmExecConfiguration (" npx" ) { variantComputer, nodeExtension, npmBinDir ->
33
48
variantComputer.computeNpxExec(nodeExtension, npmBinDir)
34
49
}
35
50
36
51
return executeCommand(project, extension, nodeExecConfiguration, npxExecConfiguration, variants)
37
52
}
38
53
39
- private fun executeCommand (project : ProjectApiHelper , extension : NodeExtension , nodeExecConfiguration : NodeExecConfiguration ,
40
- npmExecConfiguration : NpmExecConfiguration ,
41
- variantComputer : VariantComputer ): ExecResult {
54
+ private fun executeCommand (
55
+ project : ProjectApiHelper ,
56
+ extension : NodeExtension ,
57
+ nodeExecConfiguration : NodeExecConfiguration ,
58
+ npmExecConfiguration : NpmExecConfiguration ,
59
+ variantComputer : VariantComputer
60
+ ): ExecResult {
42
61
val execConfiguration =
43
- computeExecConfiguration(extension, npmExecConfiguration, nodeExecConfiguration, variantComputer).get()
62
+ computeExecConfiguration(extension, npmExecConfiguration, nodeExecConfiguration, variantComputer).get()
44
63
val execRunner = ExecRunner ()
45
64
return execRunner.execute(project, extension, execConfiguration)
46
65
}
47
66
48
- private fun computeExecConfiguration (extension : NodeExtension , npmExecConfiguration : NpmExecConfiguration ,
49
- nodeExecConfiguration : NodeExecConfiguration ,
50
- variantComputer : VariantComputer ): Provider <ExecConfiguration > {
67
+ private fun computeExecConfiguration (
68
+ extension : NodeExtension ,
69
+ npmExecConfiguration : NpmExecConfiguration ,
70
+ nodeExecConfiguration : NodeExecConfiguration ,
71
+ variantComputer : VariantComputer
72
+ ): Provider <ExecConfiguration > {
51
73
val additionalBinPathProvider = computeAdditionalBinPath(extension, variantComputer)
52
74
val executableAndScriptProvider = computeExecutable(extension, npmExecConfiguration, variantComputer)
53
75
return zip(additionalBinPathProvider, executableAndScriptProvider)
54
- .map { (additionalBinPath, executableAndScript) ->
55
- val argsPrefix =
56
- if (executableAndScript.script != null ) listOf (executableAndScript.script) else listOf ()
57
- val args = argsPrefix.plus(nodeExecConfiguration.command)
58
- ExecConfiguration (executableAndScript.executable, args, additionalBinPath,
59
- nodeExecConfiguration.environment, nodeExecConfiguration.workingDir,
60
- nodeExecConfiguration.ignoreExitValue, nodeExecConfiguration.execOverrides)
61
- }
76
+ .map { (additionalBinPath, executableAndScript) ->
77
+ val argsPrefix =
78
+ if (executableAndScript.script != null ) listOf (executableAndScript.script) else listOf ()
79
+ val args = argsPrefix.plus(nodeExecConfiguration.command)
80
+ ExecConfiguration (
81
+ executableAndScript.executable, args, additionalBinPath,
82
+ nodeExecConfiguration.environment, nodeExecConfiguration.workingDir,
83
+ nodeExecConfiguration.ignoreExitValue, nodeExecConfiguration.execOverrides
84
+ )
85
+ }
62
86
}
63
87
64
88
private fun computeExecutable (
65
89
nodeExtension : NodeExtension ,
66
90
npmExecConfiguration : NpmExecConfiguration ,
67
91
variantComputer : VariantComputer
68
- ):
69
- Provider <ExecutableAndScript > {
92
+ ): Provider <ExecutableAndScript > {
70
93
val nodeDirProvider = nodeExtension.resolvedNodeDir
71
94
val npmDirProvider = variantComputer.computeNpmDir(nodeExtension, nodeDirProvider)
72
95
val nodeBinDirProvider = variantComputer.computeNodeBinDir(nodeDirProvider, nodeExtension.resolvedPlatform)
@@ -97,11 +120,14 @@ abstract class NpmExecRunner {
97
120
}
98
121
99
122
private data class ExecutableAndScript (
100
- val executable : String ,
101
- val script : String? = null
123
+ val executable : String ,
124
+ val script : String? = null
102
125
)
103
126
104
- private fun computeAdditionalBinPath (nodeExtension : NodeExtension , variantComputer : VariantComputer ): Provider <List <String >> {
127
+ private fun computeAdditionalBinPath (
128
+ nodeExtension : NodeExtension ,
129
+ variantComputer : VariantComputer
130
+ ): Provider <List <String >> {
105
131
return nodeExtension.download.flatMap { download ->
106
132
if (! download) {
107
133
providers.provider { listOf<String >() }
0 commit comments