[Gradle, JS] KT-37207 Move File prefix to NpmDependency.kt

This commit is contained in:
Ilya Goncharov
2020-03-26 20:41:53 +03:00
parent 4d107751d7
commit 6b035bcdc2
2 changed files with 12 additions and 8 deletions
@@ -17,7 +17,6 @@ import org.gradle.api.tasks.TaskDependency
import org.gradle.internal.component.local.model.DefaultLibraryBinaryIdentifier
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinCompilationNpmResolution
import org.jetbrains.kotlin.gradle.utils.relativeToRoot
import java.io.File
data class NpmDependency(
@@ -135,4 +134,6 @@ data class NpmDependency(
}
override fun getReason(): String? = reason
}
}
const val FILE_VERSION_PREFIX = "file:"
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle.targets.js.yarn
import com.github.gundy.semver4j.SemVer
import org.jetbrains.kotlin.gradle.targets.js.npm.FILE_VERSION_PREFIX
import java.io.File
internal class YarnEntryRegistry(private val lockFile: File) {
@@ -40,19 +41,21 @@ internal class YarnEntryRegistry(private val lockFile: File) {
private fun String.correctDependencyKey(): String =
when {
GITHUB_VERSION_PREFIX in this -> replace(GITHUB_VERSION_PREFIX, "@")
FILE_VERSION_PREFIX in this -> {
val location = substringAfter(FILE_VERSION_PREFIX)
GITHUB_MARKER in this -> replace(GITHUB_MARKER, SEPARATOR)
FILE_MARKER in this -> {
val location = substringAfter(FILE_MARKER)
val path = lockFile
.parentFile
.resolve(location)
.canonicalPath
replaceAfter(FILE_VERSION_PREFIX, path)
replaceAfter(FILE_MARKER, path)
}
else -> this
}
}
private const val FILE_VERSION_PREFIX = "@file:"
private const val GITHUB_VERSION_PREFIX = "@github:"
private const val SEPARATOR = "@"
private const val FILE_MARKER = "${SEPARATOR}$FILE_VERSION_PREFIX"
private const val GITHUB_MARKER = "${SEPARATOR}github:"