///|
/// Evaluate MapValues
fn eval_map_values(
expr : Expr,
input : Json,
env : Env,
) -> Iter[Json] raise InterpreterError {
guard input is Object(obj) else {
raise TypeMismatch("object", @ast_internal.json_type_name(input))
}
let result : Map[String, Json] = Map([])
for key, value in obj {
let transformed_results = eval_with_env(expr, value, env).collect()
match transformed_results {
[first, ..] => result[key] = first
_ => ()
}
}
Iter::singleton(Json::object(result))
}