提交 f318951b 编写于 作者: I Ilya Goncharov 提交者: TeamCityServer

[Gradle, JS] Fix packages with hardcoded display name

^KT-45621 fixed
上级 fae0aa42
......@@ -7,12 +7,13 @@ package org.jetbrains.kotlin.generators.gradle.targets.js
data class Package(
val name: String,
val version: String
val version: String,
val displayName: String
) {
// Used in velocity template
@Suppress("unused")
fun camelize(): String =
name
displayName
.split("-")
.mapIndexed { index, item -> if (index == 0) item else item.capitalize() }
.joinToString("")
......@@ -21,16 +22,19 @@ data class Package(
sealed class PackageInformation {
abstract val name: String
abstract val versions: Set<String>
abstract val displayName: String
}
data class RealPackageInformation(
override val name: String,
override val versions: Set<String>
override val versions: Set<String>,
override val displayName: String = name
) : PackageInformation()
data class HardcodedPackageInformation(
override val name: String,
val version: String
val version: String,
override val displayName: String = name
) : PackageInformation() {
override val versions: Set<String> = setOf(version)
}
\ No newline at end of file
......@@ -22,16 +22,35 @@ class VersionFetcher : AutoCloseable {
return coroutineScope {
npmPackages
.filter { it.version != null }
.map { HardcodedPackageInformation(it.displayName, it.version!!) } +
.map {
HardcodedPackageInformation(
it.name,
it.version!!,
it.displayName
)
} +
npmPackages
.filter { it.version == null }
.map { async { it.displayName to fetchPackageInformationAsync(it.name) } }
.map {
async {
val fetched = fetchPackageInformationAsync(it.name)
object {
val name = it.name
val displayName = it.displayName
val fetched = fetched
}
}
}
.map { fetched ->
val (packageName, value) = fetched.await()
val fetchedPackageInformation = Gson().fromJson(value, FetchedPackageInformation::class.java)
val await = fetched.await()
val name = await.name
val displayName = await.displayName
val awaitFetched = await.fetched
val fetchedPackageInformation = Gson().fromJson(awaitFetched, FetchedPackageInformation::class.java)
RealPackageInformation(
packageName,
fetchedPackageInformation.versions.keys
name,
fetchedPackageInformation.versions.keys,
displayName
)
}
}
......
......@@ -65,7 +65,8 @@ fun findLastVersions(packages: List<PackageInformation>): List<Package> {
Package(
packageInformation.name,
maximumVersion
maximumVersion,
packageInformation.displayName
)
}
}
\ No newline at end of file
......@@ -11,9 +11,9 @@ package org.jetbrains.kotlin.gradle.targets.js
// DO NOT MODIFY DIRECTLY! Use org.jetbrains.kotlin.generators.gradle.targets.js.MainKt
class NpmVersions {
val dukat = NpmPackageVersion("dukat", "0.5.8-rc.4")
val webpack4 = NpmPackageVersion("webpack4", "4.46.0")
val sourceMapLoader1 = NpmPackageVersion("sourceMapLoader1", "1.1.3")
val webpack = NpmPackageVersion("webpack", "5.26.3")
val webpack4 = NpmPackageVersion("webpack", "4.46.0")
val sourceMapLoader1 = NpmPackageVersion("source-map-loader", "1.1.3")
val webpack = NpmPackageVersion("webpack", "5.27.1")
val webpackCli = NpmPackageVersion("webpack-cli", "4.5.0")
val webpackBundleAnalyzer = NpmPackageVersion("webpack-bundle-analyzer", "4.4.0")
val webpackDevServer = NpmPackageVersion("webpack-dev-server", "3.11.2")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册