Skip to content

v0.3.11

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 16 Oct 23:06
fdae912

Patch Changes

  • f78c082 Thanks @jviide! - Add experimental support for .optional(() => x)

    The .optional() method now supports default value functions for replacing undefined and missing values from the input and wrapped validator. The functionality is similar to .default(x), except that defaultFn has to be a function and is executed for each validation run. This allows patterns like the following:

    const Item = v.object({ id: v.string() });
    
    const Items = v.array(Item).optional(() => []);

    This avoids a common pitfall with using .default([]) for the same pattern. As the newly created empty arrays are not shared, mutating them is safe(r) as it doesn't affect other validation outputs.

    This feature is marked experimental for the time being.