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