{{# def.definitions }} {{# def.errors }} {{# def.setupKeyword }} {{# def.$data }} {{ var $rule = this , $definition = 'definition' + $lvl , $rDef = $rule.definition , $closingBraces = ''; var $validate = $rDef.validate; var $compile, $inline, $macro, $ruleValidate, $validateCode; }} {{? $isData && $rDef.$data }} {{ $validateCode = 'keywordValidate' + $lvl; var $validateSchema = $rDef.validateSchema; }} var {{=$definition}} = RULES.custom['{{=$keyword}}'].definition; var {{=$validateCode}} = {{=$definition}}.validate; {{??}} {{ $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); if (!$ruleValidate) return; $schemaValue = 'validate.schema' + $schemaPath; $validateCode = $ruleValidate.code; $compile = $rDef.compile; $inline = $rDef.inline; $macro = $rDef.macro; }} {{?}} {{ var $ruleErrs = $validateCode + '.errors' , $i = 'i' + $lvl , $ruleErr = 'ruleErr' + $lvl , $asyncKeyword = $rDef.async; if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); }} {{? !($inline || $macro) }}{{=$ruleErrs}} = null;{{?}} var {{=$errs}} = errors; var {{=$valid}}; {{## def.callRuleValidate: {{=$validateCode}}.call( {{? it.opts.passContext }}this{{??}}self{{?}} {{? $compile || $rDef.schema === false }} , {{=$data}} {{??}} , {{=$schemaValue}} , {{=$data}} , validate.schema{{=it.schemaPath}} {{?}} , {{# def.dataPath }} {{# def.passParentData }} , rootData ) #}} {{## def.extendErrors:_inline: for (var {{=$i}}={{=$errs}}; {{=$i}}