[Gradle, JS] Consider transitivity in cache of npm dependencies
This commit is contained in:
+10
-4
@@ -15,7 +15,8 @@ import java.io.File
|
|||||||
|
|
||||||
abstract class YarnBasics : NpmApi {
|
abstract class YarnBasics : NpmApi {
|
||||||
|
|
||||||
private val resolvedDependencies = mutableMapOf<NpmDependency, Set<File>>()
|
private val nonTransitiveResolvedDependencies = mutableMapOf<NpmDependency, Set<File>>()
|
||||||
|
private val transitiveResolvedDependencies = mutableMapOf<NpmDependency, Set<File>>()
|
||||||
|
|
||||||
override fun setup(project: Project) {
|
override fun setup(project: Project) {
|
||||||
YarnPlugin.apply(project).executeSetup()
|
YarnPlugin.apply(project).executeSetup()
|
||||||
@@ -45,7 +46,11 @@ abstract class YarnBasics : NpmApi {
|
|||||||
dependency: NpmDependency,
|
dependency: NpmDependency,
|
||||||
transitive: Boolean
|
transitive: Boolean
|
||||||
): Set<File> {
|
): Set<File> {
|
||||||
val files = resolvedDependencies[dependency]
|
val files = (if (transitive) {
|
||||||
|
transitiveResolvedDependencies
|
||||||
|
} else {
|
||||||
|
nonTransitiveResolvedDependencies
|
||||||
|
})[dependency]
|
||||||
|
|
||||||
if (files != null) {
|
if (files != null) {
|
||||||
return files
|
return files
|
||||||
@@ -70,6 +75,8 @@ abstract class YarnBasics : NpmApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nonTransitiveResolvedDependencies[dependency] = all
|
||||||
|
|
||||||
if (transitive) {
|
if (transitive) {
|
||||||
dependency.dependencies.forEach {
|
dependency.dependencies.forEach {
|
||||||
resolveDependency(
|
resolveDependency(
|
||||||
@@ -80,10 +87,9 @@ abstract class YarnBasics : NpmApi {
|
|||||||
all.addAll(files)
|
all.addAll(files)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
transitiveResolvedDependencies[dependency] = all
|
||||||
}
|
}
|
||||||
|
|
||||||
resolvedDependencies[dependency] = all
|
|
||||||
|
|
||||||
return all
|
return all
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user