You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
{{# def.definitions }} {{# def.errors }} {{# def.missing }} {{# def.setupKeyword }} {{# def.$data }}
{{ var $vSchema = 'schema' + $lvl; }}
{{## def.setupLoop: {{? !$isData }} var {{=$vSchema}} = validate.schema{{=$schemaPath}}; {{?}}
{{ var $i = 'i' + $lvl , $propertyPath = 'schema' + $lvl + '[' + $i + ']' , $missingProperty = '\' + ' + $propertyPath + ' + \''; if (it.opts._errorDataPathProperty) { it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); } }} #}}
{{## def.isRequiredOwnProperty: Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}]) #}}
{{? !$isData }} {{? $schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length }} {{ var $required = []; }} {{~ $schema:$property }} {{ var $propertySch = it.schema.properties[$property]; }} {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }} {{ $required[$required.length] = $property; }} {{?}} {{~}} {{??}} {{ var $required = $schema; }} {{?}} {{?}}
{{? $isData || $required.length }} {{ var $currentErrorPath = it.errorPath , $loopRequired = $isData || $required.length >= it.opts.loopRequired , $ownProperties = it.opts.ownProperties; }}
{{? $breakOnError }} var missing{{=$lvl}}; {{? $loopRequired }} {{# def.setupLoop }} var {{=$valid}} = true;
{{?$isData}}{{# def.check$dataIsArray }}{{?}}
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined {{? $ownProperties }} && {{# def.isRequiredOwnProperty }} {{?}}; if (!{{=$valid}}) break; }
{{? $isData }} } {{?}}
{{# def.checkError:'required' }} else { {{??}} if ({{# def.checkMissingProperty:$required }}) { {{# def.errorMissingProperty:'required' }} } else { {{?}} {{??}} {{? $loopRequired }} {{# def.setupLoop }} {{? $isData }} if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) { {{# def.addError:'required' }} } else if ({{=$vSchema}} !== undefined) { {{?}}
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) { if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined {{? $ownProperties }} || !{{# def.isRequiredOwnProperty }} {{?}}) { {{# def.addError:'required' }} } }
{{? $isData }} } {{?}} {{??}} {{~ $required:$propertyKey }} {{# def.allErrorsMissingProperty:'required' }} {{~}} {{?}} {{?}}
{{ it.errorPath = $currentErrorPath; }}
{{?? $breakOnError }} if (true) { {{?}}
|