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
|
||||
|
||||
val npmPackages = listOf(
|
||||
"dukat",
|
||||
"webpack",
|
||||
"webpack-cli",
|
||||
"webpack-bundle-analyzer",
|
||||
"webpack-dev-server",
|
||||
"source-map-loader",
|
||||
"source-map-support",
|
||||
"css-loader",
|
||||
"style-loader",
|
||||
"to-string-loader",
|
||||
"mini-css-extract-plugin",
|
||||
"mocha",
|
||||
"karma",
|
||||
"karma-chrome-launcher",
|
||||
"karma-phantomjs-launcher",
|
||||
"karma-firefox-launcher",
|
||||
"karma-opera-launcher",
|
||||
"karma-ie-launcher",
|
||||
"karma-safari-launcher",
|
||||
"karma-mocha",
|
||||
"karma-webpack",
|
||||
"karma-coverage",
|
||||
"karma-sourcemap-loader",
|
||||
NpmPackage("dukat", "0.5.8-rc.3"),
|
||||
NpmPackage("webpack"),
|
||||
NpmPackage("webpack-cli"),
|
||||
NpmPackage("webpack-bundle-analyzer"),
|
||||
NpmPackage("webpack-dev-server"),
|
||||
NpmPackage("source-map-loader"),
|
||||
NpmPackage("source-map-support"),
|
||||
NpmPackage("css-loader"),
|
||||
NpmPackage("style-loader"),
|
||||
NpmPackage("to-string-loader"),
|
||||
NpmPackage("mini-css-extract-plugin"),
|
||||
NpmPackage("mocha"),
|
||||
NpmPackage("karma"),
|
||||
NpmPackage("karma-chrome-launcher"),
|
||||
NpmPackage("karma-phantomjs-launcher"),
|
||||
NpmPackage("karma-firefox-launcher"),
|
||||
NpmPackage("karma-opera-launcher"),
|
||||
NpmPackage("karma-ie-launcher"),
|
||||
NpmPackage("karma-safari-launcher"),
|
||||
NpmPackage("karma-mocha"),
|
||||
NpmPackage("karma-webpack"),
|
||||
NpmPackage("karma-coverage"),
|
||||
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(
|
||||
val name: String,
|
||||
val version: SemVer
|
||||
val version: String
|
||||
) {
|
||||
// Used in velocity template
|
||||
@Suppress("unused")
|
||||
@@ -18,7 +18,19 @@ data class Package(
|
||||
.joinToString("")
|
||||
}
|
||||
|
||||
data class PackageInformation(
|
||||
val name: String,
|
||||
val versions: Set<String>
|
||||
)
|
||||
sealed class PackageInformation {
|
||||
abstract val name: 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> {
|
||||
return coroutineScope {
|
||||
npmPackages
|
||||
.map { async { fetchPackageInformationAsync(it) } }
|
||||
.map { fetched ->
|
||||
val (packageName, value) = fetched.await()
|
||||
val fetchedPackageInformation = Gson().fromJson(value, FetchedPackageInformation::class.java)
|
||||
PackageInformation(
|
||||
packageName,
|
||||
fetchedPackageInformation.versions.keys
|
||||
)
|
||||
}
|
||||
.filter { it.version != null }
|
||||
.map { HardcodedPackageInformation(it.name, it.version!!) } +
|
||||
npmPackages
|
||||
.filter { it.version == null }
|
||||
.map { async { fetchPackageInformationAsync(it.name) } }
|
||||
.map { fetched ->
|
||||
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> {
|
||||
return packages
|
||||
.map { packageInformation ->
|
||||
val maximumVersion = packageInformation.versions
|
||||
.map { SemVer.from(it) }
|
||||
.filter { it.preRelease == null && it.build == null }
|
||||
.maxOrNull() ?: throw error("There is no applicable version for ${packageInformation.name}")
|
||||
val maximumVersion = when (packageInformation) {
|
||||
is RealPackageInformation -> packageInformation.versions
|
||||
.map { SemVer.from(it) }
|
||||
.filter { it.preRelease == null && it.build == null }
|
||||
.maxOrNull()
|
||||
?.toString()
|
||||
?: throw error("There is no applicable version for ${packageInformation.name}")
|
||||
is HardcodedPackageInformation -> packageInformation.version
|
||||
}
|
||||
|
||||
Package(
|
||||
packageInformation.name,
|
||||
|
||||
Reference in New Issue
Block a user