refactor: clean up keyword templates

master
Evgeny Poberezkin 2016-12-23 22:02:41 +00:00
parent 3f61cf73a6
commit c02a3bdc48
12 changed files with 59 additions and 52 deletions

View File

@ -24,7 +24,7 @@
{{# def.insertSubschemaCode }}
{{=$valid}} = {{=$valid}} || valid{{=$it.level}};
{{=$valid}} = {{=$valid}} || {{=$nextValid}};
if (!{{=$valid}}) {
{{ $closingBraces += '}'; }}

View File

@ -72,7 +72,7 @@ var valid{{=$lvl}};
({{= $ruleValidate.validate }})
{{?}}
{{?? $macro }}
valid{{=$it.level}}
{{=$nextValid}}
{{??}}
{{? $asyncKeyword }}
{{? $rDef.errors === false }}

View File

@ -33,6 +33,7 @@
var $it = it.util.copy(it);
var $closingBraces = '';
$it.level++;
var $nextValid = 'valid' + $it.level;
}}
#}}
@ -47,7 +48,7 @@
{{## def.ifResultValid:
{{? $breakOnError }}
if (valid{{=$it.level}}) {
if ({{=$nextValid}}) {
{{ $closingBraces += '}'; }}
{{?}}
#}}

View File

@ -45,7 +45,7 @@ var missing{{=$lvl}};
{{ for (var $property in $schemaDeps) { }}
{{ var $sch = $schemaDeps[$property]; }}
{{? {{# def.nonEmptySchema:$sch }} }}
valid{{=$it.level}} = true;
{{=$nextValid}} = true;
if ({{=$data}}['{{= $property }}'] !== undefined) {
{{

View File

@ -3,9 +3,13 @@
{{# def.setupKeyword }}
{{# def.$data }}
{{ var $i = 'i' + $lvl; }}
{{
var $i = 'i' + $lvl
, $vSchema = 'schema' + $lvl;
}}
{{? !$isData }}
var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
var {{=$vSchema}} = validate.schema{{=$schemaPath}};
{{?}}
var {{=$valid}};
@ -13,8 +17,8 @@ var {{=$valid}};
{{=$valid}} = false;
for (var {{=$i}}=0; {{=$i}}<schema{{=$lvl}}.length; {{=$i}}++)
if (equal({{=$data}}, schema{{=$lvl}}[{{=$i}}])) {
for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
{{=$valid}} = true;
break;
}

View File

@ -5,24 +5,25 @@
{{## def.validateItems:startFrom:
for (var i{{=$lvl}} = {{=startFrom}}; i{{=$lvl}} < {{=$data}}.length; i{{=$lvl}}++) {
for (var {{=$idx}} = {{=startFrom}}; {{=$idx}} < {{=$data}}.length; {{=$idx}}++) {
{{
$it.errorPath = it.util.getPathExpr(it.errorPath, 'i' + $lvl, it.opts.jsonPointers, true);
var $passData = $data + '[i' + $lvl + ']';
$it.dataPathArr[$dataNxt] = 'i' + $lvl;
$it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);
var $passData = $data + '[' + $idx + ']';
$it.dataPathArr[$dataNxt] = $idx;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
{{? $breakOnError }}
if (!valid{{=$it.level}}) break;
if (!{{=$nextValid}}) break;
{{?}}
}
#}}
{{
var $dataNxt = $it.dataLevel = it.dataLevel + 1
var $idx = 'i' + $lvl
, $dataNxt = $it.dataLevel = it.dataLevel + 1
, $nextData = 'data' + $dataNxt
, $currentBaseId = it.baseId;
}}
@ -46,7 +47,7 @@ var {{=$valid}};
{{~ $schema:$sch:$i }}
{{? {{# def.nonEmptySchema:$sch }} }}
valid{{=$it.level}} = true;
{{=$nextValid}} = true;
if ({{=$data}}.length > {{=$i}}) {
{{
@ -72,7 +73,7 @@ var {{=$valid}};
$it.schemaPath = it.schemaPath + '.additionalItems';
$it.errSchemaPath = it.errSchemaPath + '/additionalItems';
}}
valid{{=$it.level}} = true;
{{=$nextValid}} = true;
if ({{=$data}}.length > {{= $schema.length }}) {
{{# def.validateItems: $schema.length }}

View File

@ -30,7 +30,7 @@
{{# def.resetCompositeRule }}
if (valid{{=$it.level}}) {
if ({{=$nextValid}}) {
{{# def.error:'not' }}
} else {
{{# def.resetErrors }}

View File

@ -20,17 +20,17 @@ var {{=$valid}} = false;
{{# def.insertSubschemaCode }}
{{??}}
var valid{{=$it.level}} = true;
var {{=$nextValid}} = true;
{{?}}
{{? $i }}
if (valid{{=$it.level}} && prevValid{{=$lvl}})
if ({{=$nextValid}} && prevValid{{=$lvl}})
{{=$valid}} = false;
else {
{{ $closingBraces += '}'; }}
{{?}}
if (valid{{=$it.level}}) {{=$valid}} = prevValid{{=$lvl}} = true;
if ({{=$nextValid}}) {{=$valid}} = prevValid{{=$lvl}} = true;
{{~}}
{{# def.resetCompositeRule }}

View File

@ -11,9 +11,9 @@
$it.errSchemaPath = it.errSchemaPath + '/additionalProperties';
$it.errorPath = it.opts._errorDataPathProperty
? it.errorPath
: it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
var $passData = $data + '[key' + $lvl + ']';
$it.dataPathArr[$dataNxt] = 'key' + $lvl;
: it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + '[' + $key + ']';
$it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
@ -51,7 +51,7 @@
var {{=$errs}} = errors;
var valid{{=$it.level}} = true;
var {{=$nextValid}} = true;
{{? $checkAdditional }}
for (var {{=$key}} in {{=$data}}) {
@ -86,16 +86,16 @@ var valid{{=$it.level}} = true;
{{??}}
{{
var $currentErrorPath = it.errorPath;
var $additionalProperty = '\' + key' + $lvl + ' + \'';
var $additionalProperty = '\' + ' + $key + ' + \'';
if (it.opts._errorDataPathProperty) {
it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
}
}}
{{? $noAdditional }}
{{? $removeAdditional }}
delete {{=$data}}[{{=$key}}];
{{??}}
valid{{=$it.level}} = false;
{{=$nextValid}} = false;
{{
var $currErrSchemaPath = $errSchemaPath;
$errSchemaPath = it.errSchemaPath + '/additionalProperties';
@ -111,7 +111,7 @@ var valid{{=$it.level}} = true;
{{# def.validateAdditional }}
if (!valid{{=$it.level}}) {
if (!{{=$nextValid}}) {
errors = {{=$errs}};
if (validate.errors !== null) {
if (errors) validate.errors.length = errors;
@ -123,7 +123,7 @@ var valid{{=$it.level}} = true;
{{# def.resetCompositeRule }}
{{??}}
{{# def.validateAdditional }}
{{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
{{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
{{?}}
{{?}}
{{ it.errorPath = $currentErrorPath; }}
@ -171,7 +171,7 @@ var valid{{=$it.level}} = true;
{{??}}
{{? $requiredHash && $requiredHash[$propertyKey] }}
if ({{=$useData}} === undefined) {
valid{{=$it.level}} = false;
{{=$nextValid}} = false;
{{
var $currentErrorPath = it.errorPath
, $currErrSchemaPath = $errSchemaPath
@ -188,7 +188,7 @@ var valid{{=$it.level}} = true;
{{??}}
{{? $breakOnError }}
if ({{=$useData}} === undefined) {
valid{{=$it.level}} = true;
{{=$nextValid}} = true;
} else {
{{??}}
if ({{=$useData}} !== undefined) {
@ -219,17 +219,17 @@ var valid{{=$it.level}} = true;
{{# def.checkOwnProperty }}
if ({{= it.usePattern($pProperty) }}.test({{=$key}})) {
{{
$it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
var $passData = $data + '[key' + $lvl + ']';
$it.dataPathArr[$dataNxt] = 'key' + $lvl;
$it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + '[' + $key + ']';
$it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
{{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
{{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
}
{{? $breakOnError }} else valid{{=$it.level}} = true; {{?}}
{{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
}
{{# def.ifResultValid }}
@ -261,17 +261,17 @@ var valid{{=$it.level}} = true;
pgPropCount{{=$lvl}}++;
{{
$it.errorPath = it.util.getPathExpr(it.errorPath, 'key' + $lvl, it.opts.jsonPointers);
var $passData = $data + '[key' + $lvl + ']';
$it.dataPathArr[$dataNxt] = 'key' + $lvl;
$it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);
var $passData = $data + '[' + $key + ']';
$it.dataPathArr[$dataNxt] = $key;
}}
{{# def.generateSubschemaCode }}
{{# def.optimizeValidate }}
{{? $breakOnError }} if (!valid{{=$it.level}}) break; {{?}}
{{? $breakOnError }} if (!{{=$nextValid}}) break; {{?}}
}
{{? $breakOnError }} else valid{{=$it.level}} = true; {{?}}
{{? $breakOnError }} else {{=$nextValid}} = true; {{?}}
}
{{# def.ifResultValid }}

View File

@ -51,7 +51,7 @@
{{ var $code = it.validate($it).replace(/validate\.schema/g, $refVal.code); }}
{{= $code }}
{{? $breakOnError}}
if (valid{{=$it.level}}) {
if ({{=$nextValid}}) {
{{?}}
{{??}}
{{

View File

@ -4,10 +4,11 @@
{{# def.setupKeyword }}
{{# def.$data }}
{{ var $vSchema = 'schema' + $lvl; }}
{{## def.setupLoop:
{{? !$isData }}
var schema{{=$lvl}} = validate.schema{{=$schemaPath}};
var {{=$vSchema}} = validate.schema{{=$schemaPath}};
{{?}}
{{
@ -51,8 +52,8 @@
{{?$isData}}{{# def.check$dataIsArray }}{{?}}
for (var {{=$i}} = 0; {{=$i}} < schema{{=$lvl}}.length; {{=$i}}++) {
{{=$valid}} = {{=$data}}[schema{{=$lvl}}[{{=$i}}]] !== undefined;
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
{{=$valid}} = {{=$data}}[{{=$vSchema}}[{{=$i}}]] !== undefined;
if (!{{=$valid}}) break;
}
@ -69,13 +70,13 @@
{{? $loopRequired }}
{{# def.setupLoop }}
{{? $isData }}
if (schema{{=$lvl}} && !Array.isArray(schema{{=$lvl}})) {
if ({{=$vSchema}} && !Array.isArray({{=$vSchema}})) {
{{# def.addError:'required' }}
} else if (schema{{=$lvl}} !== undefined) {
} else if ({{=$vSchema}} !== undefined) {
{{?}}
for (var {{=$i}} = 0; {{=$i}} < schema{{=$lvl}}.length; {{=$i}}++) {
if ({{=$data}}[schema{{=$lvl}}[{{=$i}}]] === undefined) {
for (var {{=$i}} = 0; {{=$i}} < {{=$vSchema}}.length; {{=$i}}++) {
if ({{=$data}}[{{=$vSchema}}[{{=$i}}]] === undefined) {
{{# def.addError:'required' }}
}
}

View File

@ -10,7 +10,7 @@
{{# def._validateSwitchRule:if }}
{{ $it.createErrors = true; }}
{{# def.resetCompositeRule }}
{{=$ifPassed}} = valid{{=$it.level}};
{{=$ifPassed}} = {{=$nextValid}};
#}}
{{## def.validateThen:
@ -18,7 +18,7 @@
{{? $sch.then === false }}
{{# def.error:'switch' }}
{{?}}
var valid{{=$it.level}} = {{= $sch.then }};
var {{=$nextValid}} = {{= $sch.then }};
{{??}}
{{# def._validateSwitchRule:then }}
{{?}}
@ -68,6 +68,6 @@ var {{=$ifPassed}};
{{= $closingBraces }}
var {{=$valid}} = valid{{=$it.level}};
var {{=$valid}} = {{=$nextValid}};
{{# def.cleanUp }}