[Gradle, JS] Fix extracting package json from klib

#KT-37636 fixed
This commit is contained in:
Ilya Goncharov
2020-03-20 14:57:21 +03:00
parent a3125849a0
commit 59148cdce4
@@ -10,6 +10,7 @@ import com.google.gson.GsonBuilder
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.artifacts.ResolvedArtifact import org.gradle.api.artifacts.ResolvedArtifact
import org.gradle.api.artifacts.ResolvedDependency import org.gradle.api.artifacts.ResolvedDependency
import org.jetbrains.kotlin.gradle.targets.js.ir.KLIB_TYPE
import java.io.File import java.io.File
/** /**
@@ -29,7 +30,7 @@ internal class GradleNodeModuleBuilder(
val srcFile = artifact.file val srcFile = artifact.file
when { when {
isKotlinJsRuntimeFile(srcFile) -> files.add(srcFile) isKotlinJsRuntimeFile(srcFile) -> files.add(srcFile)
srcFile.isZip -> project.zipTree(srcFile).forEach { innerFile -> srcFile.isCompatibleArchive -> project.zipTree(srcFile).forEach { innerFile ->
when { when {
innerFile.name == NpmProject.PACKAGE_JSON -> srcPackageJsonFile = innerFile innerFile.name == NpmProject.PACKAGE_JSON -> srcPackageJsonFile = innerFile
isKotlinJsRuntimeFile(innerFile) -> files.add(innerFile) isKotlinJsRuntimeFile(innerFile) -> files.add(innerFile)
@@ -69,8 +70,11 @@ internal fun fromSrcPackageJson(packageJson: File?): PackageJson? =
Gson().fromJson(it, PackageJson::class.java) Gson().fromJson(it, PackageJson::class.java)
} }
private val File.isZip private val File.isCompatibleArchive
get() = isFile && (name.endsWith(".jar") || name.endsWith(".zip")) get() = isFile
&& (extension == "jar"
|| extension == "zip"
|| extension == KLIB_TYPE)
private fun isKotlinJsRuntimeFile(file: File): Boolean { private fun isKotlinJsRuntimeFile(file: File): Boolean {
if (!file.isFile) return false if (!file.isFile) return false