Toml.kt
package com.hexagontk.serialization.jackson.toml
import com.hexagontk.core.media.APPLICATION_TOML
import com.hexagontk.core.media.MediaType
import com.hexagontk.serialization.jackson.JacksonTextFormat
import tools.jackson.databind.ObjectMapper
import tools.jackson.dataformat.toml.TomlMapper
import tools.jackson.databind.DeserializationFeature.*
import tools.jackson.databind.MapperFeature.*
import tools.jackson.databind.SerializationFeature.*
object Toml : JacksonTextFormat() {
override val mediaType: MediaType = APPLICATION_TOML
override fun createRelaxedMapper(): ObjectMapper =
createMapper()
override fun createMapper(): ObjectMapper =
baseMapper().build()
private fun baseMapper(): TomlMapper.Builder =
TomlMapper.builder()
.configure(FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(FAIL_ON_EMPTY_BEANS, false)
.configure(FAIL_ON_MISSING_CREATOR_PROPERTIES, false)
.configure(ACCEPT_SINGLE_VALUE_AS_ARRAY, true)
.configure(SORT_PROPERTIES_ALPHABETICALLY, false)
}