Spaces:
Runtime error
Runtime error
{{# 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 { {{?}} | |