JSUIKitKBindings/src/jsMain/kotlin/dev/inmo/jsuikit/utils/AttributeBuilder.kt

26 lines
637 B
Kotlin

package dev.inmo.jsuikit.utils
class AttributeBuilder (
val attributeName: String,
val parametersBuilder: ParametersBuilder
) {
fun build(): Pair<String, String> = parametersBuilder.build().run {
Pair(
attributeName, toList().joinToString(";") {
"${it.first}${it.second ?.let { ": $it" } ?: ""}"
}
)
}
}
inline fun buildAttribute(
attributeName: String,
skipNullValues: Boolean = true,
block: ParametersBuilder.() -> Unit
) = AttributeBuilder(
attributeName,
ParametersBuilder(skipNullValues)
).apply {
parametersBuilder.block()
}.build()