An error occurred while loading the file. Please try again.
format.jst 3.06 KiB
{{# 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 { {{?}}