support dynamic defaults via registered callback functions #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thank you for joi-json. This package is a missing piece of functionality to joi, in my humble opinion. The ability to define validation in data structures instead of raw code is a key draw to joi/joi-json.
Unfortunately, there are a few things that joi can do that joi-json cannot. This PR adds support for dynamic defaults by registering callback functions with the parser that can be invoked if a string is supplied as a default that contains enclosing parentheses.
For example, if we had a list of Express routes with separate validation profiles:
What if we wanted "50" to be a global default defined in a central configuration using the config package, we could define a callback that would pull it from a global configuration:
Pretty powerful, yeah?