source: trip-planner-front/node_modules/ajv-errors/lib/dot/errorMessage.jst@ 188ee53

Last change on this file since 188ee53 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 12.4 KB
Line 
1{{# def.definitions }}
2{{# def.errors }}
3{{# def.setupKeyword }}
4
5{{## def.em_errorMatch:
6 {{# def._em_commonErrorMatch }}
7 && ({{=$err}}.dataPath == {{=$dataPath}} ||
8 ({{=$err}}.dataPath.indexOf({{=$dataPath}}) == 0 &&
9 {{=$err}}.dataPath[{{=$dataPath}}.length] == '/'))
10 && {{=$err}}.schemaPath.indexOf({{=$errSchemaPathString}}) == 0
11 && {{=$err}}.schemaPath[{{=it.errSchemaPath.length}}] == '/'
12#}}
13
14{{## def.em_keywordErrorMatch:
15 {{# def._em_commonErrorMatch }}
16 && {{=$err}}.keyword in {{=$errors}}
17 && {{=$err}}.dataPath == {{=$dataPath}}
18 && {{=$err}}.schemaPath.indexOf({{=$errSchemaPathString}}) == 0
19 && /^\/[^\/]*$/.test({{=$err}}.schemaPath.slice({{=it.errSchemaPath.length}}))
20#}}
21
22{{## def.em_childErrorMatch:
23 {{# def._em_commonErrorMatch }}
24 && {{=$err}}.dataPath.indexOf({{=$dataPath}}) == 0
25 && ({{=$matches}} = {{=$err}}.dataPath.slice({{=$dataPath}}.length).match(/^\/([^\/]*)(?:\/|$)/),
26 {{=$child}} = {{=$matches}} && {{=$matches}}[1].replace(/~1/g, '/').replace(/~0/g, '~')
27 ) !== undefined
28 && {{=$child}} in {{=$errors}}
29#}}
30
31{{## def._em_commonErrorMatch:
32 {{=$err}}.keyword != '{{=$keyword}}'
33 {{? $config.options.keepErrors }}
34 && !{{=$err}}.emUsed
35 {{?}}
36#}}
37
38{{## def.em_useError:
39 {{? $config.options.keepErrors }}
40 {{=$err}}.emUsed = true;
41 {{??}}
42 vErrors.splice({{=$i}}, 1);
43 errors--;
44 {{?}}
45#}}
46
47{{## def.em_compileTemplates: _keysArray:
48 var {{=$templates}} = {
49 {{ var $comma = false; }}
50 {{~ _keysArray:$k }}
51 {{? INTERPOLATION.test($schema[$k]) }}
52 {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: {{= templateFunc($schema[$k]) }}
53 {{ $comma = true; }}
54 {{?}}
55 {{~}}
56 };
57#}}
58
59{{## def.em_compilePropsTemplates: _keywordProps:
60 var {{=$templates}} = {
61 {{ var $comma = false; }}
62 {{~ Object.keys(_keywordProps):$k }}
63 {{ var $keywordMsgs = $schema[$k]; }}
64 {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: {
65 {{ $comma = true; var $innerComma = false; }}
66 {{~ Object.keys($keywordMsgs):$prop }}
67 {{? INTERPOLATION.test($keywordMsgs[$prop]) }}
68 {{?$innerComma}},{{?}}{{= it.util.toQuotedString($prop) }}: {{= templateFunc($keywordMsgs[$prop]) }}
69 {{ $innerComma = true; }}
70 {{?}}
71 {{~}}
72 }
73 {{~}}
74 };
75#}}
76
77{{## def.em_compileChildTemplates: _children:
78 {{ var _keysArray = Object.keys($childErrors._children); }}
79 var {{=$templates}} = {
80 {{ var $comma = false; }}
81 {{~ _keysArray:$k }}
82 {{? INTERPOLATION.test($schema._children[$k]) }}
83 {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: {{= templateFunc($schema._children[$k]) }}
84 {{ $comma = true; }}
85 {{?}}
86 {{~}}
87 };
88#}}
89
90{{## def.em_errorMessage:
91 {{=$key}} in {{=$templates}}
92 ? {{=$templates}}[{{=$key}}] ()
93 : validate.schema{{=$schemaPath}}[{{=$key}}]
94#}}
95
96{{## def.em_keywordError:
97 var err = {
98 keyword: '{{=$keyword}}'
99 , dataPath: {{=$dataPath}}
100 , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}'
101 , params: { errors: {{=$paramsErrors}} }
102 , message: {{=$message}}
103 {{? it.opts.verbose }}
104 , schema: validate.schema{{=$schemaPath}}
105 , parentSchema: validate.schema{{=it.schemaPath}}
106 , data: {{=$data}}
107 {{?}}
108 };
109 {{# def._addError:'custom' }}
110#}}
111
112
113{{? it.createErrors !== false }}
114 {{
115 var INTERPOLATION = /\$\{[^\}]+\}/;
116 var INTERPOLATION_REPLACE = /\$\{([^\}]+)\}/g;
117 var EMPTY_STR = /^\'\'\s*\+\s*|\s*\+\s*\'\'$/g;
118
119 var $config = it.self.getKeyword($keyword).config
120 , $dataPath = '_em_dataPath' + $lvl
121 , $i = '_em_i' + $lvl
122 , $key = '_em_key' + $lvl
123 , $keyProp = '_em_keyProp' + $lvl
124 , $err = '_em_err' + $lvl
125 , $child = '_em_child' + $lvl
126 , $childKeyword = '_em_childKeyword' + $lvl
127 , $matches = '_em_matches' + $lvl
128 , $isArray = '_em_isArray' + $lvl
129 , $errors = '_em_errors' + $lvl
130 , $message = '_em_message' + $lvl
131 , $paramsErrors = '_em_paramsErrors' + $lvl
132 , $propParam = '_em_propParam' + $lvl
133 , $keywordPropParams = '_em_keywordPropParams' + $lvl
134 , $templates = '_em_templates' + $lvl
135 , $errSchemaPathString = it.util.toQuotedString(it.errSchemaPath);
136 }}
137
138 if (errors > 0) {
139 var {{=$dataPath}} = (dataPath || '') + {{= it.errorPath }};
140 var {{=$i}}, {{=$err}}, {{=$errors}};
141
142 {{? typeof $schema == 'object' }}
143 {{
144 var $keywordErrors = {}
145 , $keywordPropErrors = {}
146 , $childErrors = { properties: {}, items: {} }
147 , $hasKeywordProps = false
148 , $hasProperties = false
149 , $hasItems = false;
150
151 for (var $k in $schema) {
152 switch ($k) {
153 case 'properties':
154 for (var $prop in $schema.properties) {
155 $hasProperties = true;
156 $childErrors.properties[$prop] = [];
157 }
158 break;
159 case 'items':
160 for (var $item=0; $item<$schema.items.length; $item++) {
161 $hasItems = true;
162 $childErrors.items[$item] = [];
163 }
164 break;
165 default:
166 if (typeof $schema[$k] == 'object') {
167 $hasKeywordProps = true;
168 $keywordPropErrors[$k] = {};
169 for (var $prop in $schema[$k]) {
170 $keywordPropErrors[$k][$prop] = [];
171 }
172 } else {
173 $keywordErrors[$k] = [];
174 }
175 }
176 }
177 }}
178
179 {{ var $keywordErrorsArr = Object.keys($keywordErrors); }}
180 {{? $keywordErrorsArr.length }}
181 {{=$i}} = 0;
182 {{=$errors}} = {{= JSON.stringify($keywordErrors) }};
183 {{# def.em_compileTemplates:$keywordErrorsArr }}
184 while ({{=$i}} < errors) {
185 {{=$err}} = vErrors[{{=$i}}];
186 if ({{# def.em_keywordErrorMatch}}) {
187 {{=$errors}}[{{=$err}}.keyword].push({{=$err}});
188 {{# def.em_useError }}
189 } else {
190 {{=$i}}++;
191 }
192 }
193
194 {{? $config.options.singleError }}
195 var {{=$message}} = '';
196 var {{=$paramsErrors}} = [];
197 {{?}}
198
199 for (var {{=$key}} in {{=$errors}}) {
200 if ({{=$errors}}[{{=$key}}].length) {
201
202 {{? $config.options.singleError }}
203 if ({{=$message}}) {
204 {{=$message}} += {{? typeof $config.options.singleError == 'string' }}
205 {{= it.util.toQuotedString($config.options.singleError) }}
206 {{??}}
207 '; '
208 {{?}};
209 }
210 {{=$message}} += {{# def.em_errorMessage }};
211 {{=$paramsErrors}} = {{=$paramsErrors}}.concat({{=$errors}}[{{=$key}}]);
212 }
213 }
214 {{??}}
215 var {{=$message}} = {{# def.em_errorMessage }};
216 var {{=$paramsErrors}} = {{=$errors}}[{{=$key}}];
217 {{?}}
218
219 {{# def.em_keywordError}}
220
221 {{? !$config.options.singleError }}
222 }
223 }
224 {{?}}
225 {{?}} /* $keywordErrorsArr */
226
227 {{? $hasKeywordProps }}
228 {{=$i}} = 0;
229 {{=$errors}} = {{= JSON.stringify($keywordPropErrors) }};
230 var {{=$paramsErrors}}, {{=$propParam}};
231 var {{=$keywordPropParams}} = {{= JSON.stringify($config.KEYWORD_PROPERTY_PARAMS) }};
232 {{# def.em_compilePropsTemplates:$keywordPropErrors }}
233
234 while ({{=$i}} < errors) {
235 {{=$err}} = vErrors[{{=$i}}];
236 if ({{# def.em_keywordErrorMatch}}) {
237 {{=$propParam}} = {{=$keywordPropParams}}[{{=$err}}.keyword];
238 {{=$paramsErrors}} = {{=$errors}}[{{=$err}}.keyword][{{=$err}}.params[{{=$propParam}}]];
239 if ({{=$paramsErrors}}) {
240 {{=$paramsErrors}}.push({{=$err}});
241 {{# def.em_useError }}
242 } else {
243 {{=$i}}++;
244 }
245 } else {
246 {{=$i}}++;
247 }
248 }
249
250 for (var {{=$key}} in {{=$errors}}) {
251 for (var {{=$keyProp}} in {{=$errors}}[{{=$key}}]) {
252 {{=$paramsErrors}} = {{=$errors}}[{{=$key}}][{{=$keyProp}}];
253 if ({{=$paramsErrors}}.length) {
254 var {{=$message}} = {{=$key}} in {{=$templates}} && {{=$keyProp}} in {{=$templates}}[{{=$key}}]
255 ? {{=$templates}}[{{=$key}}][{{=$keyProp}}] ()
256 : validate.schema{{=$schemaPath}}[{{=$key}}][{{=$keyProp}}];
257 {{# def.em_keywordError}}
258 }
259 }
260 }
261 {{?}} /* $hasKeywordProps */
262
263 {{? $hasProperties || $hasItems }}
264 var {{=$isArray}} = Array.isArray({{=$data}});
265 if
266 {{? $hasProperties && $hasItems }}
267 (typeof {{=$data}} == 'object') {
268 {{ var $childProp = '[' + $childKeyword + ']'; }}
269 {{=$i}} = 0;
270 if ({{=$isArray}}) {
271 var {{=$childKeyword}} = 'items';
272 {{=$errors}} = {{= JSON.stringify($childErrors.items) }};
273 {{# def.em_compileChildTemplates: items }}
274 } else {
275 var {{=$childKeyword}} = 'properties';
276 {{=$errors}} = {{= JSON.stringify($childErrors.properties) }};
277 {{# def.em_compileChildTemplates: properties }}
278 }
279 {{?? $hasProperties }}
280 (typeof {{=$data}} == 'object' && !{{=$isArray}}) {
281 {{ var $childProp = '.properties'; }}
282 {{=$i}} = 0;
283 {{=$errors}} = {{= JSON.stringify($childErrors.properties) }};
284 {{# def.em_compileChildTemplates: properties }}
285 {{??}}
286 ({{=$isArray}}) {
287 {{ var $childProp = '.items'; }}
288 {{=$i}} = 0;
289 {{=$errors}} = {{= JSON.stringify($childErrors.items) }};
290 {{# def.em_compileChildTemplates: items }}
291 {{?}}
292
293 var {{=$child}}, {{=$matches}};
294 while ({{=$i}} < errors) {
295 {{=$err}} = vErrors[{{=$i}}];
296 if ({{# def.em_childErrorMatch}}) {
297 {{=$errors}}[{{=$child}}].push({{=$err}});
298 {{# def.em_useError }}
299 } else {
300 {{=$i}}++;
301 }
302 }
303 for (var {{=$key}} in {{=$errors}}) {
304 if ({{=$errors}}[{{=$key}}].length) {
305 var err = {
306 keyword: '{{=$keyword}}'
307 , dataPath: {{=$dataPath}} + '/' + {{=$key}}.replace(/~/g, '~0').replace(/\//g, '~1')
308 , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}'
309 , params: { errors: {{=$errors}}[{{=$key}}] }
310 , message: {{=$key}} in {{=$templates}}
311 ? {{=$templates}}[{{=$key}}] ()
312 : validate.schema{{=$schemaPath}}{{=$childProp}}[{{=$key}}]
313 {{? it.opts.verbose }}
314 , schema: validate.schema{{=$schemaPath}}
315 , parentSchema: validate.schema{{=it.schemaPath}}
316 , data: {{=$data}}
317 {{?}}
318 };
319 {{# def._addError:'custom' }}
320 }
321 } /* for */
322 } /* if */
323 {{?}} /* $hasProperties || $hasItems */
324 {{?}} /* $schema is object */
325
326 {{ var $schemaMessage = typeof $schema == 'string' ? $schema : $schema._; }}
327 {{? $schemaMessage }}
328 {{=$i}} = 0;
329 {{=$errors}} = [];
330 while ({{=$i}} < errors) {
331 {{=$err}} = vErrors[{{=$i}}];
332 if ({{# def.em_errorMatch}}) {
333 {{=$errors}}.push({{=$err}});
334 {{# def.em_useError }}
335 } else {
336 {{=$i}}++;
337 }
338 }
339 if ({{=$errors}}.length) {
340 var err = {
341 keyword: '{{=$keyword}}'
342 , dataPath: {{=$dataPath}}
343 , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}'
344 , params: { errors: {{=$errors}} }
345 , message: {{=templateExpr($schemaMessage)}}
346 {{? it.opts.verbose }}
347 , schema: {{=it.util.toQuotedString($schemaMessage)}}
348 , parentSchema: validate.schema{{=it.schemaPath}}
349 , data: {{=$data}}
350 {{?}}
351 };
352 {{# def._addError:'custom' }}
353 }
354 {{?}}
355 }
356{{?}}
357
358
359{{
360 function templateExpr(str) {
361 str = it.util.escapeQuotes(str);
362 if (!INTERPOLATION.test(str)) return "'" + str + "'";
363 var expr = "'" + str.replace(INTERPOLATION_REPLACE, function ($0, $1) {
364 return "' + JSON.stringify(" + it.util.getData($1, $dataLvl, it.dataPathArr) + ") + '";
365 }) + "'";
366 return expr.replace(EMPTY_STR, '');
367 }
368
369 function templateFunc(str) {
370 return 'function() { return ' + templateExpr(str) + '; }';
371 }
372}}
Note: See TracBrowser for help on using the repository browser.