Projekt

Obecné

Profil

Stáhnout (3.06 KB) Statistiky
| Větev: | Revize:
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 { {{?}}
(17-17/30)