source: imaps-frontend/node_modules/ajv/lib/dot/format.jst@ d565449

main
Last change on this file since d565449 was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 3.1 KB
Line 
1{{# def.definitions }}
2{{# def.errors }}
3{{# def.setupKeyword }}
4
5{{## def.skipFormat:
6 {{? $breakOnError }} if (true) { {{?}}
7 {{ return out; }}
8#}}
9
10{{? it.opts.format === false }}{{# def.skipFormat }}{{?}}
11
12
13{{# def.$data }}
14
15
16{{## def.$dataCheckFormat:
17 {{# def.$dataNotType:'string' }}
18 ({{? $unknownFormats != 'ignore' }}
19 ({{=$schemaValue}} && !{{=$format}}
20 {{? $allowUnknown }}
21 && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
22 {{?}}) ||
23 {{?}}
24 ({{=$format}} && {{=$formatType}} == '{{=$ruleType}}'
25 && !(typeof {{=$format}} == 'function'
26 ? {{? it.async}}
27 (async{{=$lvl}} ? await {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
28 {{??}}
29 {{=$format}}({{=$data}})
30 {{?}}
31 : {{=$format}}.test({{=$data}}))))
32#}}
33
34{{## def.checkFormat:
35 {{
36 var $formatRef = 'formats' + it.util.getProperty($schema);
37 if ($isObject) $formatRef += '.validate';
38 }}
39 {{? typeof $format == 'function' }}
40 {{=$formatRef}}({{=$data}})
41 {{??}}
42 {{=$formatRef}}.test({{=$data}})
43 {{?}}
44#}}
45
46
47{{
48 var $unknownFormats = it.opts.unknownFormats
49 , $allowUnknown = Array.isArray($unknownFormats);
50}}
51
52{{? $isData }}
53 {{
54 var $format = 'format' + $lvl
55 , $isObject = 'isObject' + $lvl
56 , $formatType = 'formatType' + $lvl;
57 }}
58 var {{=$format}} = formats[{{=$schemaValue}}];
59 var {{=$isObject}} = typeof {{=$format}} == 'object'
60 && !({{=$format}} instanceof RegExp)
61 && {{=$format}}.validate;
62 var {{=$formatType}} = {{=$isObject}} && {{=$format}}.type || 'string';
63 if ({{=$isObject}}) {
64 {{? it.async}}
65 var async{{=$lvl}} = {{=$format}}.async;
66 {{?}}
67 {{=$format}} = {{=$format}}.validate;
68 }
69 if ({{# def.$dataCheckFormat }}) {
70{{??}}
71 {{ var $format = it.formats[$schema]; }}
72 {{? !$format }}
73 {{? $unknownFormats == 'ignore' }}
74 {{ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }}
75 {{# def.skipFormat }}
76 {{?? $allowUnknown && $unknownFormats.indexOf($schema) >= 0 }}
77 {{# def.skipFormat }}
78 {{??}}
79 {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
80 {{?}}
81 {{?}}
82 {{
83 var $isObject = typeof $format == 'object'
84 && !($format instanceof RegExp)
85 && $format.validate;
86 var $formatType = $isObject && $format.type || 'string';
87 if ($isObject) {
88 var $async = $format.async === true;
89 $format = $format.validate;
90 }
91 }}
92 {{? $formatType != $ruleType }}
93 {{# def.skipFormat }}
94 {{?}}
95 {{? $async }}
96 {{
97 if (!it.async) throw new Error('async format in sync schema');
98 var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
99 }}
100 if (!(await {{=$formatRef}}({{=$data}}))) {
101 {{??}}
102 if (!{{# def.checkFormat }}) {
103 {{?}}
104{{?}}
105 {{# def.error:'format' }}
106 } {{? $breakOnError }} else { {{?}}
Note: See TracBrowser for help on using the repository browser.