| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | 
							- {{# 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 { {{?}}
 
 
  |