package starter import com.electronwill.nightconfig.core.file.FileConfig import com.electronwill.nightconfig.core.Config as NightConfig data class StarterConfig(val dependencies: List, val inputs: List) class Config { fun load(): StarterConfig { val cfg = FileConfig.of("config.toml") cfg.load() val dependenciesNode: NightConfig = cfg["dependencies"] @Suppress("UNCHECKED_CAST") val dependenciesMap = dependenciesNode.valueMap() as Map val dependencies = dependenciesMap.map { (name, values) -> Dependency(name, values["groupId"], values["artifactId"], values["version"], values.getOrElse("default", false)) } val inputsNode: NightConfig = cfg["inputs"] @Suppress("UNCHECKED_CAST") val inputMap = inputsNode.valueMap() as Map val inputs = inputMap.map { (name, values) -> Input(name, values["display"], values["default"]) } return StarterConfig(dependencies, inputs) } }