in multiversion/src/main/scala/multiversion/configs/ForceVersionsConfig.scala [31:59]
def decode(
context: DecodingContext
): Result[ForceVersionsConfig] = {
context.json match {
case JsonArray(elements) =>
val overrides = elements.map {
case j @ JsonString(OrgArtifact(org, artifact, version)) =>
ValueResult(
ModuleConfig(
JsonString(org)
.withPosition(j.position)
// NOTE(olafur): sob, avoid this cast upstream
.asInstanceOf[JsonString],
JsonString(artifact)
.withPosition(j.position)
.asInstanceOf[JsonString]
) -> version
)
case _ =>
ErrorResult(Diagnostic.typeMismatch("ORG:ARTIFACT", context))
}
Result
.fromResults(overrides)
.map(x => ForceVersionsConfig(x.toMap))
case _ =>
ErrorResult(new TypeMismatchDiagnostic("Object", context))
}
}