indicative-parser
Version:
Schema parser for Indicative
60 lines (59 loc) • 1.25 kB
TypeScript
import { Schema, Messages, ParsedSchema, ParsedMessages } from './Contracts';
/**
* Parses the schema object to a tree of parsed schema. The
* output is optimized for executing validation rules.
*
* @example
* ```
* parser({
* 'users.*.username': 'required'
* })
*
* // output
*
* {
* users: {
* type: 'array',
* rules: [],
* each: {
* '*': {
* rules: [],
* children: {
* username: {
* type: 'literal',
* rules: [{
* name: 'required',
* args: []
* }]
* }
* }
* }
* }
* }
* }
* ```
*/
export declare function rulesParser(schema: Schema): ParsedSchema;
/**
* Parses an object of messages to [[ParsedMessages]] list. The messages list
* is simpler than rules tree, since compiler can use the schema tree to find
* the appropriate messages from the flat list of messages.
*
* @example
* ```
* parser({
* 'users.*.username.required': 'Username is required'
* })
*
* // output
*
* {
* fields: {
* 'users.*.username': {
* required: 'Username is required'
* }
* },
* rules: {},
* }
*/
export declare function messagesParser(schema: Messages): ParsedMessages;