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.
79 lines
1.8 KiB
79 lines
1.8 KiB
{{# def.definitions }} |
|
{{# def.errors }} |
|
{{# def.missing }} |
|
{{# def.setupKeyword }} |
|
{{# def.setupNextLevel }} |
|
|
|
|
|
{{## def.propertyInData: |
|
{{=$data}}{{= it.util.getProperty($property) }} !== undefined |
|
{{? $ownProperties }} |
|
&& Object.prototype.hasOwnProperty.call({{=$data}}, '{{=it.util.escapeQuotes($property)}}') |
|
{{?}} |
|
#}} |
|
|
|
|
|
{{ |
|
var $schemaDeps = {} |
|
, $propertyDeps = {} |
|
, $ownProperties = it.opts.ownProperties; |
|
|
|
for ($property in $schema) { |
|
if ($property == '__proto__') continue; |
|
var $sch = $schema[$property]; |
|
var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps; |
|
$deps[$property] = $sch; |
|
} |
|
}} |
|
|
|
var {{=$errs}} = errors; |
|
|
|
{{ var $currentErrorPath = it.errorPath; }} |
|
|
|
var missing{{=$lvl}}; |
|
{{ for (var $property in $propertyDeps) { }} |
|
{{ $deps = $propertyDeps[$property]; }} |
|
{{? $deps.length }} |
|
if ({{# def.propertyInData }} |
|
{{? $breakOnError }} |
|
&& ({{# def.checkMissingProperty:$deps }})) { |
|
{{# def.errorMissingProperty:'dependencies' }} |
|
{{??}} |
|
) { |
|
{{~ $deps:$propertyKey }} |
|
{{# def.allErrorsMissingProperty:'dependencies' }} |
|
{{~}} |
|
{{?}} |
|
} {{# def.elseIfValid }} |
|
{{?}} |
|
{{ } }} |
|
|
|
{{ |
|
it.errorPath = $currentErrorPath; |
|
var $currentBaseId = $it.baseId; |
|
}} |
|
|
|
|
|
{{ for (var $property in $schemaDeps) { }} |
|
{{ var $sch = $schemaDeps[$property]; }} |
|
{{? {{# def.nonEmptySchema:$sch }} }} |
|
{{=$nextValid}} = true; |
|
|
|
if ({{# def.propertyInData }}) { |
|
{{ |
|
$it.schema = $sch; |
|
$it.schemaPath = $schemaPath + it.util.getProperty($property); |
|
$it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property); |
|
}} |
|
|
|
{{# def.insertSubschemaCode }} |
|
} |
|
|
|
{{# def.ifResultValid }} |
|
{{?}} |
|
{{ } }} |
|
|
|
{{? $breakOnError }} |
|
{{= $closingBraces }} |
|
if ({{=$errs}} == errors) { |
|
{{?}}
|
|
|