mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			108 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			108 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| {{# 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) {
 | |
| {{?}}
 |