@@ -10,6 +10,11 @@ import org.gradle.api.provider.Provider
1010open class VariantComputer @JvmOverloads constructor(
1111 private val platformHelper : PlatformHelper = PlatformHelper .INSTANCE
1212) {
13+ /* *
14+ * Get the expected directory for a given node version.
15+ *
16+ * Essentially: workingDir/node-v$version-$osName-$osArch
17+ */
1318 fun computeNodeDir (nodeExtension : NodeExtension ): Provider <Directory > {
1419 return zip(nodeExtension.workDir, nodeExtension.version).map { (workDir, version) ->
1520 val osName = platformHelper.osName
@@ -19,8 +24,14 @@ open class VariantComputer @JvmOverloads constructor(
1924 }
2025 }
2126
27+ /* *
28+ * Get the expected node binary directory, taking Windows specifics into account.
29+ */
2230 fun computeNodeBinDir (nodeDirProvider : Provider <Directory >) = computeProductBinDir(nodeDirProvider)
2331
32+ /* *
33+ * Get the expected node binary name, node.exe on Windows and node everywhere else.
34+ */
2435 fun computeNodeExec (nodeExtension : NodeExtension , nodeBinDirProvider : Provider <Directory >): Provider <String > {
2536 return zip(nodeExtension.download, nodeBinDirProvider).map {
2637 val (download, nodeBinDir) = it
@@ -31,6 +42,9 @@ open class VariantComputer @JvmOverloads constructor(
3142 }
3243 }
3344
45+ /* *
46+ * Get the expected directory for a given npm version.
47+ */
3448 fun computeNpmDir (nodeExtension : NodeExtension , nodeDirProvider : Provider <Directory >): Provider <Directory > {
3549 return zip(nodeExtension.npmVersion, nodeExtension.npmWorkDir, nodeDirProvider).map {
3650 val (npmVersion, npmWorkDir, nodeDir) = it
@@ -41,8 +55,16 @@ open class VariantComputer @JvmOverloads constructor(
4155 }
4256 }
4357
58+ /* *
59+ * Get the expected npm binary directory, taking Windows specifics into account.
60+ */
4461 fun computeNpmBinDir (npmDirProvider : Provider <Directory >) = computeProductBinDir(npmDirProvider)
4562
63+ /* *
64+ * Get the expected node binary name, npm.cmd on Windows and npm everywhere else.
65+ *
66+ * Can be overridden by setting npmCommand.
67+ */
4668 fun computeNpmExec (nodeExtension : NodeExtension , npmBinDirProvider : Provider <Directory >): Provider <String > {
4769 return zip(nodeExtension.download, nodeExtension.npmCommand, npmBinDirProvider).map {
4870 val (download, npmCommand, npmBinDir) = it
@@ -60,6 +82,11 @@ open class VariantComputer @JvmOverloads constructor(
6082 }
6183 }
6284
85+ /* *
86+ * Get the expected node binary name, npx.cmd on Windows and npx everywhere else.
87+ *
88+ * Can be overridden by setting npxCommand.
89+ */
6390 fun computeNpxExec (nodeExtension : NodeExtension , npmBinDirProvider : Provider <Directory >): Provider <String > {
6491 return zip(nodeExtension.download, nodeExtension.npxCommand, npmBinDirProvider).map {
6592 val (download, npxCommand, npmBinDir) = it
@@ -96,6 +123,11 @@ open class VariantComputer @JvmOverloads constructor(
96123 private fun computeProductBinDir (productDirProvider : Provider <Directory >) =
97124 if (platformHelper.isWindows) productDirProvider else productDirProvider.map { it.dir(" bin" ) }
98125
126+ /* *
127+ * Get the node archive name in Gradle dependency format, using zip for Windows and tar.gz everywhere else.
128+ *
129+ * Essentially: org.nodejs:node:$version:$osName-$osArch@tar.gz
130+ */
99131 fun computeNodeArchiveDependency (nodeExtension : NodeExtension ): Provider <String > {
100132 val osName = platformHelper.osName
101133 val osArch = platformHelper.osArch
0 commit comments