Blame view

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