Initial commit
[yaffs-website] / node_modules / ajv / lib / dot / required.jst
1 {{# def.definitions }}
2 {{# def.errors }}
3 {{# def.missing }}
4 {{# def.setupKeyword }}
5 {{# def.$data }}
6
7 {{ var $vSchema = 'schema' + $lvl; }}
8
9 {{## def.setupLoop:
10   {{? !$isData }}
11     var {{=$vSchema}} = validate.schema{{=$schemaPath}};
12   {{?}}
13
14   {{
15     var $i = 'i' + $lvl
16       , $propertyPath = 'schema' + $lvl + '[' + $i + ']'
17       , $missingProperty = '\' + ' + $propertyPath + ' + \'';
18     if (it.opts._errorDataPathProperty) {
19       it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);
20     }
21   }}
22 #}}
23
24
25 {{? !$isData }}
26   {{? $schema.length < it.opts.loopRequired &&
27       it.schema.properties && Object.keys(it.schema.properties).length }}
28     {{ var $required = []; }}
29     {{~ $schema:$property }}
30       {{ var $propertySch = it.schema.properties[$property]; }}
31       {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
32         {{ $required[$required.length] = $property; }}
33       {{?}}
34     {{~}}
35   {{??}}
36     {{ var $required = $schema; }}
37   {{?}}
38 {{?}}
39
40
41 {{? $isData || $required.length }}
42   {{
43     var $currentErrorPath = it.errorPath
44       , $loopRequired = $isData || $required.length >= it.opts.loopRequired;
45   }}
46
47   {{? $breakOnError }}
48     var missing{{=$lvl}};
49     {{? $loopRequired }}
50       {{# def.setupLoop }}
51       var {{=$valid}} = true;
52
53       {{?$isData}}{{# def.check$dataIsArray }}{{?}}
54
55       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
56         {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined;
57         if (!{{=$valid}}) break;
58       }
59
60       {{? $isData }}  }  {{?}}
61
62       {{# def.checkError:'required' }}
63       else {
64     {{??}}
65       if ({{# def.checkMissingProperty:$required }}) {
66         {{# def.errorMissingProperty:'required' }}
67       } else {
68     {{?}}
69   {{??}}
70     {{? $loopRequired }}
71       {{# def.setupLoop }}
72       {{? $isData }}
73         if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
74           {{# def.addError:'required' }}
75         } else if ({{=$vSchema}} !== undefined) {
76       {{?}}
77
78       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
79         if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined) {
80           {{# def.addError:'required' }}
81         }
82       }
83
84       {{? $isData }}  }  {{?}}
85     {{??}}
86       {{~ $required:$reqProperty }}
87         {{# def.allErrorsMissingProperty:'required' }}
88       {{~}}
89     {{?}}
90   {{?}}
91
92   {{ it.errorPath = $currentErrorPath; }}
93
94 {{?? $breakOnError }}
95   if (true) {
96 {{?}}