2 ms·
The main difference between jsonnet and JavaScript/typescript is that it's lazily evaluated. Evaluation is driven "from the output"; by which I mean that only
by ithkuil 3y ago
The main difference between jsonnet and JavaScript/typescript is that it's lazily evaluated.
Evaluation is driven "from the output"; by which I mean that only the code that has an effect on the output is evaluated. When an object is rendered (manifested) all it's non-hidfen fields are evaluated and every expression they contain produces a value which is then manifested and recursively only the fields that are manifested have their expressions evaluated.
This ia particularly important when combined the key operation that jsonnet provides: object overlay/merges. When you overlay an object on another object it may shadow a field of the "super" object causing the expression of the super object to not be evaluated.