go-jsonnet/testdata/builtinObjectRemoveKey_hidden.jsonnet
John Bartholomew 8d4b3b72ab reimplement builtinObjectRemoveKey to support inheritance
This follows the same pattern as I used for the C++ implementation.
Flattening the object is probably also possible, but I think it would
involve binding references to 'super' iff they are satisfied by fields
in existing ancestors and leaving them unbound if they're unsatisfied
so that they can be late-bound by extending the output object.

That seems at least as complicated as defining a new form of
uncachedObject to represent a key-removal operation.

For https://github.com/google/go-jsonnet/issues/830
2026-01-29 20:12:46 +00:00

8 lines
173 B
Jsonnet

local o = std.objectRemoveKey({foo: 1, bar:: 2, baz: 3}, "foo");
{
fields: std.objectFields(o),
all_fields: std.objectFieldsAll(o),
bar: o.bar,
object: o,
}