From 9b462b76d4e7c46585ce5318b86bd5c80a4fbb6f Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Fri, 14 Feb 2020 15:14:41 +0300 Subject: [PATCH] [Gradle, JS] Add all possible values of library target as enums --- .../targets/js/webpack/KotlinWebpack.kt | 3 +- .../targets/js/webpack/KotlinWebpackOutput.kt | 39 ++++++++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt index 1175d0b81d6..f5bba34b750 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode -import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackOutput.Companion.UMD import org.jetbrains.kotlin.gradle.testing.internal.reportsDir import org.jetbrains.kotlin.gradle.utils.injected import java.io.File @@ -79,7 +78,7 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies { @Nested val output: KotlinWebpackOutput = KotlinWebpackOutput( library = baseConventions?.archivesBaseName, - libraryTarget = UMD + libraryTarget = KotlinWebpackLibraryTarget.UMD ) @get:Internal diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackOutput.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackOutput.kt index a4b17e62100..3e01baf772b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackOutput.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpackOutput.kt @@ -6,12 +6,47 @@ package org.jetbrains.kotlin.gradle.targets.js.webpack import org.gradle.api.tasks.Input +import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackLibraryTarget.Companion.fromString data class KotlinWebpackOutput( @Input var library: String?, - @Input var libraryTarget: String? + @Input var libraryTarget: KotlinWebpackLibraryTarget? ) { + fun getLibraryTarget(): String { + return this.libraryTarget.toString() + } + + fun setLibraryTarget(value: String) { + this.libraryTarget = fromString(value) + } +} + +enum class KotlinWebpackLibraryTarget { + VAR, + ASSIGN, + THIS, + WINDOW, + SELF, + GLOBAL, + COMMONJS, + COMMONJS2, + COMMONJS_MODULE, + AMD, + AMD_REQUIRE, + UMD, + UMD2, + JSONP, + SYSTEM; + + override fun toString(): String { + return super.toString() + .toLowerCase() + .replace("_", "-") + } + companion object { - const val UMD = "umd" + internal fun fromString(value: String): KotlinWebpackLibraryTarget { + return valueOf(value.toUpperCase().replace("-", "_")) + } } } \ No newline at end of file