Gradle, GradleNodeModulesCache: use new ProcessedFilesCache API
This commit is contained in:
+6
-4
@@ -39,7 +39,7 @@ internal class GradleNodeModuleBuilder(
|
||||
}
|
||||
}
|
||||
|
||||
fun rebuild(): PackageJson? {
|
||||
fun rebuild(): File? {
|
||||
if (files.isEmpty()) return null
|
||||
|
||||
val packageJson = srcPackageJsonFile?.reader()?.use {
|
||||
@@ -79,7 +79,7 @@ fun makeNodeModule(
|
||||
container: File,
|
||||
packageJson: PackageJson,
|
||||
files: (File) -> Unit
|
||||
): PackageJson {
|
||||
): File {
|
||||
val dir = importedPackageDir(container, packageJson.name, packageJson.version)
|
||||
|
||||
if (dir.exists()) dir.deleteRecursively()
|
||||
@@ -98,8 +98,10 @@ fun makeNodeModule(
|
||||
gson.toJson(packageJson, it)
|
||||
}
|
||||
|
||||
return packageJson
|
||||
return dir
|
||||
}
|
||||
|
||||
fun importedPackageDir(container: File, name: String, version: String): File =
|
||||
container.resolve(name).resolve(version)
|
||||
container.resolve(name).resolve(version)
|
||||
|
||||
fun GradleNodeModule(dir: File) = GradleNodeModule(dir.parentFile.name, dir.name, dir)
|
||||
+13
-12
@@ -10,6 +10,7 @@ import org.gradle.api.artifacts.ResolvedArtifact
|
||||
import org.gradle.api.artifacts.ResolvedDependency
|
||||
import org.jetbrains.kotlin.gradle.internal.ProcessedFilesCache
|
||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||
import java.io.File
|
||||
|
||||
/**
|
||||
* Cache for storing already created [GradleNodeModule]s
|
||||
@@ -27,19 +28,19 @@ internal class GradleNodeModulesCache(val nodeJs: NodeJsRootExtension) : AutoClo
|
||||
fun get(
|
||||
dependency: ResolvedDependency,
|
||||
artifact: ResolvedArtifact
|
||||
): GradleNodeModule? {
|
||||
val key = cache.getOrCompute(artifact.file) {
|
||||
val module = GradleNodeModuleBuilder(project, dependency, listOf(artifact), this)
|
||||
module.visitArtifacts()
|
||||
module.rebuild()?.let {
|
||||
it.name + ":" + it.version
|
||||
}
|
||||
}
|
||||
): GradleNodeModule? = cache.getOrCompute(artifact.file) {
|
||||
buildImportedPackage(dependency, artifact)
|
||||
}?.let {
|
||||
GradleNodeModule(it)
|
||||
}
|
||||
|
||||
return if (key != null) {
|
||||
val (name, version) = key.split(":")
|
||||
GradleNodeModule(name, version, importedPackageDir(dir, name, version))
|
||||
} else null
|
||||
private fun buildImportedPackage(
|
||||
dependency: ResolvedDependency,
|
||||
artifact: ResolvedArtifact
|
||||
): File? {
|
||||
val module = GradleNodeModuleBuilder(project, dependency, listOf(artifact), this)
|
||||
module.visitArtifacts()
|
||||
return module.rebuild()
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
|
||||
Reference in New Issue
Block a user