[Gradle, JS] Css mode instead of boolean flag
#KT-32721 fixed
This commit is contained in:
+26
-8
@@ -12,6 +12,9 @@ import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
|
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.jsQuoted
|
import org.jetbrains.kotlin.gradle.targets.js.jsQuoted
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackCssMode.EXTRACT
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackCssMode.IMPORT
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackCssMode.INLINE
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import java.io.StringWriter
|
import java.io.StringWriter
|
||||||
@@ -57,10 +60,12 @@ data class KotlinWebpackConfig(
|
|||||||
if (!cssSettings.enabled) return@also
|
if (!cssSettings.enabled) return@also
|
||||||
|
|
||||||
it.add(versions.cssLoader)
|
it.add(versions.cssLoader)
|
||||||
if (cssSettings.inline) {
|
when (cssSettings.mode) {
|
||||||
it.add(versions.styleLoader)
|
EXTRACT -> it.add(versions.miniCssExtractPlugin)
|
||||||
} else {
|
INLINE -> it.add(versions.styleLoader)
|
||||||
it.add(versions.miniCssExtractPlugin)
|
IMPORT -> {
|
||||||
|
}
|
||||||
|
else -> cssError()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,10 +293,12 @@ data class KotlinWebpackConfig(
|
|||||||
|
|
|
|
||||||
""".trimMargin()
|
""".trimMargin()
|
||||||
|
|
||||||
if (cssSettings.inline) {
|
when (cssSettings.mode) {
|
||||||
appendln(inlinedCss)
|
EXTRACT -> appendln(extractedCss)
|
||||||
} else {
|
INLINE -> appendln(inlinedCss)
|
||||||
appendln(extractedCss)
|
IMPORT -> {
|
||||||
|
}
|
||||||
|
else -> cssError()
|
||||||
}
|
}
|
||||||
|
|
||||||
appendln(
|
appendln(
|
||||||
@@ -351,6 +358,17 @@ data class KotlinWebpackConfig(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun cssError() {
|
||||||
|
throw IllegalStateException(
|
||||||
|
"""
|
||||||
|
Possible values for cssSettings.mode:
|
||||||
|
- EXTRACT
|
||||||
|
- INLINE
|
||||||
|
- IMPORT
|
||||||
|
""".trimIndent()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun json(obj: Any) = StringWriter().also {
|
private fun json(obj: Any) = StringWriter().also {
|
||||||
GsonBuilder().setPrettyPrinting().create().toJson(obj, it)
|
GsonBuilder().setPrettyPrinting().create().toJson(obj, it)
|
||||||
|
|||||||
+8
-1
@@ -6,11 +6,18 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.webpack
|
package org.jetbrains.kotlin.gradle.targets.js.webpack
|
||||||
|
|
||||||
import org.gradle.api.tasks.Input
|
import org.gradle.api.tasks.Input
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackCssMode.INLINE
|
||||||
|
|
||||||
data class KotlinWebpackCssSettings(
|
data class KotlinWebpackCssSettings(
|
||||||
@Input
|
@Input
|
||||||
var enabled: Boolean = true,
|
var enabled: Boolean = true,
|
||||||
|
|
||||||
@Input
|
@Input
|
||||||
var inline: Boolean = true
|
var mode: String = INLINE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
object KotlinWebpackCssMode {
|
||||||
|
const val EXTRACT = "extract"
|
||||||
|
const val INLINE = "inline"
|
||||||
|
const val IMPORT = "import"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user