1

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?

Tomer Shetah
  • 8,413
  • 7
  • 27
  • 35
Edmondo
  • 19,559
  • 13
  • 62
  • 115

1 Answers1

3

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.

Tomer Shetah
  • 8,413
  • 7
  • 27
  • 35