Converts indicative rules and messages schema to a tree
Indicative parser pre-compiles the Indicative schema to a recursive tree of nodes. Each node is given one of the following types.
object: Node with one or more nested children.
array: Node with one or more index or wildcard based nested children.
literal: The leaf nodes.
Do note, that the
Table of contents
Why Indicative needs a parser?
If you look at the Indicative schema, it is very concise and developer friendly. However, the same schema needs to be parsed to execute the validation rules.
username: 'required''account.type': 'required|in:email,social'
One way is to loop over the schema object keys, split them by
. and then inline execute the validations for each field. This process is very straight forward, but will have performance issues.
Instead, we parse the schema into a tree. The tree is later converted to an array of top level functions that are highly optimized for performance.
Install the package from npm registry as follows:
npm i indicative-parser# yarnyarn add indicative-parser
and then use it as follows:
Above code outputs the following tree.