provisioning/schemas/platform/common/helpers_test.ncl

18 lines
579 B
Text

let rec merge_impl = fun base override =>
if (std.typeof base) == "record" && (std.typeof override) == "record" then
let base_fields = std.record.fields base in
base_fields |> std.array.fold_left
(fun acc key =>
let base_value = base |> std.record.get key in
if std.record.has_field key override then
let override_value = override |> std.record.get key in
acc |> std.record.insert key override_value
else
acc |> std.record.insert key base_value
)
{}
else
override
in
{ merge = merge_impl }