.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / 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 {{## def.isRequiredOwnProperty:
26   Object.prototype.hasOwnProperty.call({{=$data}}, {{=$vSchema}}[{{=$i}}])
27 #}}
28
29
30 {{? !$isData }}
31   {{? $schema.length < it.opts.loopRequired &&
32       it.schema.properties && Object.keys(it.schema.properties).length }}
33     {{ var $required = []; }}
34     {{~ $schema:$property }}
35       {{ var $propertySch = it.schema.properties[$property]; }}
36       {{? !($propertySch && {{# def.nonEmptySchema:$propertySch}}) }}
37         {{ $required[$required.length] = $property; }}
38       {{?}}
39     {{~}}
40   {{??}}
41     {{ var $required = $schema; }}
42   {{?}}
43 {{?}}
44
45
46 {{? $isData || $required.length }}
47   {{
48     var $currentErrorPath = it.errorPath
49       , $loopRequired = $isData || $required.length >= it.opts.loopRequired
50       , $ownProperties = it.opts.ownProperties;
51   }}
52
53   {{? $breakOnError }}
54     var missing{{=$lvl}};
55     {{? $loopRequired }}
56       {{# def.setupLoop }}
57       var {{=$valid}} = true;
58
59       {{?$isData}}{{# def.check$dataIsArray }}{{?}}
60
61       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
62         {{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined
63                       {{? $ownProperties }}
64                         && {{# def.isRequiredOwnProperty }}
65                       {{?}};
66         if (!{{=$valid}}) break;
67       }
68
69       {{? $isData }}  }  {{?}}
70
71       {{# def.checkError:'required' }}
72       else {
73     {{??}}
74       if ({{# def.checkMissingProperty:$required }}) {
75         {{# def.errorMissingProperty:'required' }}
76       } else {
77     {{?}}
78   {{??}}
79     {{? $loopRequired }}
80       {{# def.setupLoop }}
81       {{? $isData }}
82         if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
83           {{# def.addError:'required' }}
84         } else if ({{=$vSchema}} !== undefined) {
85       {{?}}
86
87       for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
88         if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined
89             {{? $ownProperties }}
90               || !{{# def.isRequiredOwnProperty }}
91             {{?}}) {
92           {{# def.addError:'required' }}
93         }
94       }
95
96       {{? $isData }}  }  {{?}}
97     {{??}}
98       {{~ $required:$propertyKey }}
99         {{# def.allErrorsMissingProperty:'required' }}
100       {{~}}
101     {{?}}
102   {{?}}
103
104   {{ it.errorPath = $currentErrorPath; }}
105
106 {{?? $breakOnError }}
107   if (true) {
108 {{?}}