I have a case class like the following:
case class MyConfig(arg1:String, extraArgs:Map[String,String])
and I would like the following to be parsable from the HOCON config
{
arg1 = 'hello world'
}
However this fail because extraArgs
is not defined. I could make extraArgs
optional in my case class, but this would be redundant. Is there a way to instruct PureConfig to parse an absent field as an empty collection?
As @LuisMiguelMejíaSuárez suggested in the comment, you should add a default argument:
import pureconfig._
import pureconfig.generic.auto._
import com.typesafe.config.ConfigFactory
case class MyConfig(url: String, m: Map[String, String] = Map.empty)
val config1 = ConfigFactory.parseString("""{ "url": "https" }""")
val config2 = ConfigSource.fromConfig(config1).load[MyConfig]
println(config2)
Code run at Scastie.