[Gradle, JS] Support custom display name in npm versions generator

^KT-42921 fixed
This commit is contained in:
Ilya Goncharov
2021-03-18 14:19:17 +03:00
committed by TeamCityServer
parent a291895ebe
commit 2fd8620551
3 changed files with 13 additions and 8 deletions
@@ -8,10 +8,12 @@ package org.jetbrains.kotlin.generators.gradle.targets.js
val npmPackages = listOf(
NpmPackage("dukat", "0.5.8-rc.4"),
NpmPackage("webpack"),
NpmPackage("webpack", "4.46.0", "webpack4"),
NpmPackage("webpack-cli"),
NpmPackage("webpack-bundle-analyzer"),
NpmPackage("webpack-dev-server"),
NpmPackage("source-map-loader"),
NpmPackage("source-map-loader", "1.1.3", "sourceMapLoader1"),
NpmPackage("source-map-support"),
NpmPackage("css-loader"),
NpmPackage("style-loader"),
@@ -34,5 +36,6 @@ val npmPackages = listOf(
data class NpmPackage(
val name: String,
val version: String? = null
val version: String? = null,
val displayName: String = name
)
@@ -22,10 +22,10 @@ class VersionFetcher : AutoCloseable {
return coroutineScope {
npmPackages
.filter { it.version != null }
.map { HardcodedPackageInformation(it.name, it.version!!) } +
.map { HardcodedPackageInformation(it.displayName, it.version!!) } +
npmPackages
.filter { it.version == null }
.map { async { fetchPackageInformationAsync(it.name) } }
.map { async { it.displayName to fetchPackageInformationAsync(it.name) } }
.map { fetched ->
val (packageName, value) = fetched.await()
val fetchedPackageInformation = Gson().fromJson(value, FetchedPackageInformation::class.java)
@@ -37,14 +37,16 @@ class VersionFetcher : AutoCloseable {
}
}
private suspend fun fetchPackageInformationAsync(packageName: String): Pair<String, String> {
private suspend fun fetchPackageInformationAsync(
packageName: String,
): String {
val packagePath =
if (packageName.startsWith("@"))
"@" + encodeURIComponent(packageName)
else
encodeURIComponent(packageName)
return (packageName to client.get<String>("http://registry.npmjs.org/$packagePath"))
return client.get("http://registry.npmjs.org/$packagePath")
}
override fun close() {