[Gradle, JS] Support transitive mode for npm dependencies
#KT-36196 fixed
This commit is contained in:
+2
-1
@@ -25,7 +25,8 @@ interface NpmApi {
|
|||||||
|
|
||||||
fun resolveDependency(
|
fun resolveDependency(
|
||||||
resolvedNpmProject: KotlinCompilationNpmResolution,
|
resolvedNpmProject: KotlinCompilationNpmResolution,
|
||||||
dependency: NpmDependency
|
dependency: NpmDependency,
|
||||||
|
transitive: Boolean
|
||||||
): Set<File>
|
): Set<File>
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
+5
-1
@@ -66,7 +66,11 @@ data class NpmDependency(
|
|||||||
.npmProject
|
.npmProject
|
||||||
.nodeJs
|
.nodeJs
|
||||||
.packageManager
|
.packageManager
|
||||||
.resolveDependency(it, this)
|
.resolveDependency(
|
||||||
|
it,
|
||||||
|
this,
|
||||||
|
transitive
|
||||||
|
)
|
||||||
}
|
}
|
||||||
?: mutableSetOf()
|
?: mutableSetOf()
|
||||||
|
|
||||||
|
|||||||
+8
-2
@@ -23,8 +23,14 @@ object Yarn : NpmApi {
|
|||||||
|
|
||||||
override fun resolveDependency(
|
override fun resolveDependency(
|
||||||
resolvedNpmProject: KotlinCompilationNpmResolution,
|
resolvedNpmProject: KotlinCompilationNpmResolution,
|
||||||
dependency: NpmDependency
|
dependency: NpmDependency,
|
||||||
) = getDelegate(resolvedNpmProject.project).resolveDependency(resolvedNpmProject, dependency)
|
transitive: Boolean
|
||||||
|
) = getDelegate(resolvedNpmProject.project)
|
||||||
|
.resolveDependency(
|
||||||
|
resolvedNpmProject,
|
||||||
|
dependency,
|
||||||
|
transitive
|
||||||
|
)
|
||||||
|
|
||||||
override fun resolveRootProject(
|
override fun resolveRootProject(
|
||||||
rootProject: Project,
|
rootProject: Project,
|
||||||
|
|||||||
+11
-7
@@ -42,7 +42,8 @@ abstract class YarnBasics : NpmApi {
|
|||||||
|
|
||||||
override fun resolveDependency(
|
override fun resolveDependency(
|
||||||
resolvedNpmProject: KotlinCompilationNpmResolution,
|
resolvedNpmProject: KotlinCompilationNpmResolution,
|
||||||
dependency: NpmDependency
|
dependency: NpmDependency,
|
||||||
|
transitive: Boolean
|
||||||
): Set<File> {
|
): Set<File> {
|
||||||
val files = resolvedDependencies[dependency]
|
val files = resolvedDependencies[dependency]
|
||||||
|
|
||||||
@@ -69,12 +70,15 @@ abstract class YarnBasics : NpmApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependency.dependencies.forEach {
|
if (transitive) {
|
||||||
resolveDependency(
|
dependency.dependencies.forEach {
|
||||||
resolvedNpmProject,
|
resolveDependency(
|
||||||
it
|
resolvedNpmProject,
|
||||||
).also { files ->
|
it,
|
||||||
all.addAll(files)
|
transitive
|
||||||
|
).also { files ->
|
||||||
|
all.addAll(files)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user