Spaces:
Runtime error
Runtime error
{{# 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) { | |
{{?}} | |