Add possibility to hardcode version
^KT-42921 fixed
This commit is contained in:
committed by
TeamCityServer
parent
88abb3d6c9
commit
a06feaf819
+28
-23
@@ -6,27 +6,32 @@
|
|||||||
package org.jetbrains.kotlin.generators.gradle.targets.js
|
package org.jetbrains.kotlin.generators.gradle.targets.js
|
||||||
|
|
||||||
val npmPackages = listOf(
|
val npmPackages = listOf(
|
||||||
"dukat",
|
NpmPackage("dukat", "0.5.8-rc.3"),
|
||||||
"webpack",
|
NpmPackage("webpack"),
|
||||||
"webpack-cli",
|
NpmPackage("webpack-cli"),
|
||||||
"webpack-bundle-analyzer",
|
NpmPackage("webpack-bundle-analyzer"),
|
||||||
"webpack-dev-server",
|
NpmPackage("webpack-dev-server"),
|
||||||
"source-map-loader",
|
NpmPackage("source-map-loader"),
|
||||||
"source-map-support",
|
NpmPackage("source-map-support"),
|
||||||
"css-loader",
|
NpmPackage("css-loader"),
|
||||||
"style-loader",
|
NpmPackage("style-loader"),
|
||||||
"to-string-loader",
|
NpmPackage("to-string-loader"),
|
||||||
"mini-css-extract-plugin",
|
NpmPackage("mini-css-extract-plugin"),
|
||||||
"mocha",
|
NpmPackage("mocha"),
|
||||||
"karma",
|
NpmPackage("karma"),
|
||||||
"karma-chrome-launcher",
|
NpmPackage("karma-chrome-launcher"),
|
||||||
"karma-phantomjs-launcher",
|
NpmPackage("karma-phantomjs-launcher"),
|
||||||
"karma-firefox-launcher",
|
NpmPackage("karma-firefox-launcher"),
|
||||||
"karma-opera-launcher",
|
NpmPackage("karma-opera-launcher"),
|
||||||
"karma-ie-launcher",
|
NpmPackage("karma-ie-launcher"),
|
||||||
"karma-safari-launcher",
|
NpmPackage("karma-safari-launcher"),
|
||||||
"karma-mocha",
|
NpmPackage("karma-mocha"),
|
||||||
"karma-webpack",
|
NpmPackage("karma-webpack"),
|
||||||
"karma-coverage",
|
NpmPackage("karma-coverage"),
|
||||||
"karma-sourcemap-loader",
|
NpmPackage("karma-sourcemap-loader"),
|
||||||
|
)
|
||||||
|
|
||||||
|
data class NpmPackage(
|
||||||
|
val name: String,
|
||||||
|
val version: String? = null
|
||||||
)
|
)
|
||||||
+17
-5
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.generators.gradle.targets.js
|
|||||||
|
|
||||||
data class Package(
|
data class Package(
|
||||||
val name: String,
|
val name: String,
|
||||||
val version: SemVer
|
val version: String
|
||||||
) {
|
) {
|
||||||
// Used in velocity template
|
// Used in velocity template
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
@@ -18,7 +18,19 @@ data class Package(
|
|||||||
.joinToString("")
|
.joinToString("")
|
||||||
}
|
}
|
||||||
|
|
||||||
data class PackageInformation(
|
sealed class PackageInformation {
|
||||||
val name: String,
|
abstract val name: String
|
||||||
val versions: Set<String>
|
abstract val versions: Set<String>
|
||||||
)
|
}
|
||||||
|
|
||||||
|
data class RealPackageInformation(
|
||||||
|
override val name: String,
|
||||||
|
override val versions: Set<String>
|
||||||
|
) : PackageInformation()
|
||||||
|
|
||||||
|
data class HardcodedPackageInformation(
|
||||||
|
override val name: String,
|
||||||
|
val version: String
|
||||||
|
) : PackageInformation() {
|
||||||
|
override val versions: Set<String> = setOf(version)
|
||||||
|
}
|
||||||
+13
-9
@@ -21,15 +21,19 @@ class VersionFetcher : AutoCloseable {
|
|||||||
suspend fun fetch(): List<PackageInformation> {
|
suspend fun fetch(): List<PackageInformation> {
|
||||||
return coroutineScope {
|
return coroutineScope {
|
||||||
npmPackages
|
npmPackages
|
||||||
.map { async { fetchPackageInformationAsync(it) } }
|
.filter { it.version != null }
|
||||||
.map { fetched ->
|
.map { HardcodedPackageInformation(it.name, it.version!!) } +
|
||||||
val (packageName, value) = fetched.await()
|
npmPackages
|
||||||
val fetchedPackageInformation = Gson().fromJson(value, FetchedPackageInformation::class.java)
|
.filter { it.version == null }
|
||||||
PackageInformation(
|
.map { async { fetchPackageInformationAsync(it.name) } }
|
||||||
packageName,
|
.map { fetched ->
|
||||||
fetchedPackageInformation.versions.keys
|
val (packageName, value) = fetched.await()
|
||||||
)
|
val fetchedPackageInformation = Gson().fromJson(value, FetchedPackageInformation::class.java)
|
||||||
}
|
RealPackageInformation(
|
||||||
|
packageName,
|
||||||
|
fetchedPackageInformation.versions.keys
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-4
@@ -53,10 +53,15 @@ fun main() {
|
|||||||
fun findLastVersions(packages: List<PackageInformation>): List<Package> {
|
fun findLastVersions(packages: List<PackageInformation>): List<Package> {
|
||||||
return packages
|
return packages
|
||||||
.map { packageInformation ->
|
.map { packageInformation ->
|
||||||
val maximumVersion = packageInformation.versions
|
val maximumVersion = when (packageInformation) {
|
||||||
.map { SemVer.from(it) }
|
is RealPackageInformation -> packageInformation.versions
|
||||||
.filter { it.preRelease == null && it.build == null }
|
.map { SemVer.from(it) }
|
||||||
.maxOrNull() ?: throw error("There is no applicable version for ${packageInformation.name}")
|
.filter { it.preRelease == null && it.build == null }
|
||||||
|
.maxOrNull()
|
||||||
|
?.toString()
|
||||||
|
?: throw error("There is no applicable version for ${packageInformation.name}")
|
||||||
|
is HardcodedPackageInformation -> packageInformation.version
|
||||||
|
}
|
||||||
|
|
||||||
Package(
|
Package(
|
||||||
packageInformation.name,
|
packageInformation.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user