[d565449] | 1 | {{# def.definitions }}
|
---|
| 2 |
|
---|
| 3 | {{## def._error:_rule:
|
---|
| 4 | {{ 'istanbul ignore else'; }}
|
---|
| 5 | {{? it.createErrors !== false }}
|
---|
| 6 | {
|
---|
| 7 | keyword: '{{= $errorKeyword || _rule }}'
|
---|
| 8 | , dataPath: (dataPath || '') + {{= it.errorPath }}
|
---|
| 9 | , schemaPath: {{=it.util.toQuotedString($errSchemaPath)}}
|
---|
| 10 | , params: {{# def._errorParams[_rule] }}
|
---|
| 11 | {{? it.opts.messages !== false }}
|
---|
| 12 | , message: {{# def._errorMessages[_rule] }}
|
---|
| 13 | {{?}}
|
---|
| 14 | {{? it.opts.verbose }}
|
---|
| 15 | , schema: {{# def._errorSchemas[_rule] }}
|
---|
| 16 | , parentSchema: validate.schema{{=it.schemaPath}}
|
---|
| 17 | , data: {{=$data}}
|
---|
| 18 | {{?}}
|
---|
| 19 | }
|
---|
| 20 | {{??}}
|
---|
| 21 | {}
|
---|
| 22 | {{?}}
|
---|
| 23 | #}}
|
---|
| 24 |
|
---|
| 25 |
|
---|
| 26 | {{## def._addError:_rule:
|
---|
| 27 | if (vErrors === null) vErrors = [err];
|
---|
| 28 | else vErrors.push(err);
|
---|
| 29 | errors++;
|
---|
| 30 | #}}
|
---|
| 31 |
|
---|
| 32 |
|
---|
| 33 | {{## def.addError:_rule:
|
---|
| 34 | var err = {{# def._error:_rule }};
|
---|
| 35 | {{# def._addError:_rule }}
|
---|
| 36 | #}}
|
---|
| 37 |
|
---|
| 38 |
|
---|
| 39 | {{## def.error:_rule:
|
---|
| 40 | {{# def.beginDefOut}}
|
---|
| 41 | {{# def._error:_rule }}
|
---|
| 42 | {{# def.storeDefOut:__err }}
|
---|
| 43 |
|
---|
| 44 | {{? !it.compositeRule && $breakOnError }}
|
---|
| 45 | {{ 'istanbul ignore if'; }}
|
---|
| 46 | {{? it.async }}
|
---|
| 47 | throw new ValidationError([{{=__err}}]);
|
---|
| 48 | {{??}}
|
---|
| 49 | validate.errors = [{{=__err}}];
|
---|
| 50 | return false;
|
---|
| 51 | {{?}}
|
---|
| 52 | {{??}}
|
---|
| 53 | var err = {{=__err}};
|
---|
| 54 | {{# def._addError:_rule }}
|
---|
| 55 | {{?}}
|
---|
| 56 | #}}
|
---|
| 57 |
|
---|
| 58 |
|
---|
| 59 | {{## def.extraError:_rule:
|
---|
| 60 | {{# def.addError:_rule}}
|
---|
| 61 | {{? !it.compositeRule && $breakOnError }}
|
---|
| 62 | {{ 'istanbul ignore if'; }}
|
---|
| 63 | {{? it.async }}
|
---|
| 64 | throw new ValidationError(vErrors);
|
---|
| 65 | {{??}}
|
---|
| 66 | validate.errors = vErrors;
|
---|
| 67 | return false;
|
---|
| 68 | {{?}}
|
---|
| 69 | {{?}}
|
---|
| 70 | #}}
|
---|
| 71 |
|
---|
| 72 |
|
---|
| 73 | {{## def.checkError:_rule:
|
---|
| 74 | if (!{{=$valid}}) {
|
---|
| 75 | {{# def.error:_rule }}
|
---|
| 76 | }
|
---|
| 77 | #}}
|
---|
| 78 |
|
---|
| 79 |
|
---|
| 80 | {{## def.resetErrors:
|
---|
| 81 | errors = {{=$errs}};
|
---|
| 82 | if (vErrors !== null) {
|
---|
| 83 | if ({{=$errs}}) vErrors.length = {{=$errs}};
|
---|
| 84 | else vErrors = null;
|
---|
| 85 | }
|
---|
| 86 | #}}
|
---|
| 87 |
|
---|
| 88 |
|
---|
| 89 | {{## def.concatSchema:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=$schema}}{{?}}#}}
|
---|
| 90 | {{## def.appendSchema:{{?$isData}}' + {{=$schemaValue}}{{??}}{{=$schemaValue}}'{{?}}#}}
|
---|
| 91 | {{## def.concatSchemaEQ:{{?$isData}}' + {{=$schemaValue}} + '{{??}}{{=it.util.escapeQuotes($schema)}}{{?}}#}}
|
---|
| 92 |
|
---|
| 93 | {{## def._errorMessages = {
|
---|
| 94 | 'false schema': "'boolean schema is false'",
|
---|
| 95 | $ref: "'can\\\'t resolve reference {{=it.util.escapeQuotes($schema)}}'",
|
---|
| 96 | additionalItems: "'should NOT have more than {{=$schema.length}} items'",
|
---|
| 97 | additionalProperties: "'{{? it.opts._errorDataPathProperty }}is an invalid additional property{{??}}should NOT have additional properties{{?}}'",
|
---|
| 98 | anyOf: "'should match some schema in anyOf'",
|
---|
| 99 | const: "'should be equal to constant'",
|
---|
| 100 | contains: "'should contain a valid item'",
|
---|
| 101 | dependencies: "'should have {{? $deps.length == 1 }}property {{= it.util.escapeQuotes($deps[0]) }}{{??}}properties {{= it.util.escapeQuotes($deps.join(\", \")) }}{{?}} when property {{= it.util.escapeQuotes($property) }} is present'",
|
---|
| 102 | 'enum': "'should be equal to one of the allowed values'",
|
---|
| 103 | format: "'should match format \"{{#def.concatSchemaEQ}}\"'",
|
---|
| 104 | 'if': "'should match \"' + {{=$ifClause}} + '\" schema'",
|
---|
| 105 | _limit: "'should be {{=$opStr}} {{#def.appendSchema}}",
|
---|
| 106 | _exclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'",
|
---|
| 107 | _limitItems: "'should NOT have {{?$keyword=='maxItems'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} items'",
|
---|
| 108 | _limitLength: "'should NOT be {{?$keyword=='maxLength'}}longer{{??}}shorter{{?}} than {{#def.concatSchema}} characters'",
|
---|
| 109 | _limitProperties:"'should NOT have {{?$keyword=='maxProperties'}}more{{??}}fewer{{?}} than {{#def.concatSchema}} properties'",
|
---|
| 110 | multipleOf: "'should be multiple of {{#def.appendSchema}}",
|
---|
| 111 | not: "'should NOT be valid'",
|
---|
| 112 | oneOf: "'should match exactly one schema in oneOf'",
|
---|
| 113 | pattern: "'should match pattern \"{{#def.concatSchemaEQ}}\"'",
|
---|
| 114 | propertyNames: "'property name \\'{{=$invalidName}}\\' is invalid'",
|
---|
| 115 | required: "'{{? it.opts._errorDataPathProperty }}is a required property{{??}}should have required property \\'{{=$missingProperty}}\\'{{?}}'",
|
---|
| 116 | type: "'should be {{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}'",
|
---|
| 117 | uniqueItems: "'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)'",
|
---|
| 118 | custom: "'should pass \"{{=$rule.keyword}}\" keyword validation'",
|
---|
| 119 | patternRequired: "'should have property matching pattern \\'{{=$missingPattern}}\\''",
|
---|
| 120 | switch: "'should pass \"switch\" keyword validation'",
|
---|
| 121 | _formatLimit: "'should be {{=$opStr}} \"{{#def.concatSchemaEQ}}\"'",
|
---|
| 122 | _formatExclusiveLimit: "'{{=$exclusiveKeyword}} should be boolean'"
|
---|
| 123 | } #}}
|
---|
| 124 |
|
---|
| 125 |
|
---|
| 126 | {{## def.schemaRefOrVal: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=$schema}}{{?}} #}}
|
---|
| 127 | {{## def.schemaRefOrQS: {{?$isData}}validate.schema{{=$schemaPath}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
|
---|
| 128 |
|
---|
| 129 | {{## def._errorSchemas = {
|
---|
| 130 | 'false schema': "false",
|
---|
| 131 | $ref: "{{=it.util.toQuotedString($schema)}}",
|
---|
| 132 | additionalItems: "false",
|
---|
| 133 | additionalProperties: "false",
|
---|
| 134 | anyOf: "validate.schema{{=$schemaPath}}",
|
---|
| 135 | const: "validate.schema{{=$schemaPath}}",
|
---|
| 136 | contains: "validate.schema{{=$schemaPath}}",
|
---|
| 137 | dependencies: "validate.schema{{=$schemaPath}}",
|
---|
| 138 | 'enum': "validate.schema{{=$schemaPath}}",
|
---|
| 139 | format: "{{#def.schemaRefOrQS}}",
|
---|
| 140 | 'if': "validate.schema{{=$schemaPath}}",
|
---|
| 141 | _limit: "{{#def.schemaRefOrVal}}",
|
---|
| 142 | _exclusiveLimit: "validate.schema{{=$schemaPath}}",
|
---|
| 143 | _limitItems: "{{#def.schemaRefOrVal}}",
|
---|
| 144 | _limitLength: "{{#def.schemaRefOrVal}}",
|
---|
| 145 | _limitProperties:"{{#def.schemaRefOrVal}}",
|
---|
| 146 | multipleOf: "{{#def.schemaRefOrVal}}",
|
---|
| 147 | not: "validate.schema{{=$schemaPath}}",
|
---|
| 148 | oneOf: "validate.schema{{=$schemaPath}}",
|
---|
| 149 | pattern: "{{#def.schemaRefOrQS}}",
|
---|
| 150 | propertyNames: "validate.schema{{=$schemaPath}}",
|
---|
| 151 | required: "validate.schema{{=$schemaPath}}",
|
---|
| 152 | type: "validate.schema{{=$schemaPath}}",
|
---|
| 153 | uniqueItems: "{{#def.schemaRefOrVal}}",
|
---|
| 154 | custom: "validate.schema{{=$schemaPath}}",
|
---|
| 155 | patternRequired: "validate.schema{{=$schemaPath}}",
|
---|
| 156 | switch: "validate.schema{{=$schemaPath}}",
|
---|
| 157 | _formatLimit: "{{#def.schemaRefOrQS}}",
|
---|
| 158 | _formatExclusiveLimit: "validate.schema{{=$schemaPath}}"
|
---|
| 159 | } #}}
|
---|
| 160 |
|
---|
| 161 |
|
---|
| 162 | {{## def.schemaValueQS: {{?$isData}}{{=$schemaValue}}{{??}}{{=it.util.toQuotedString($schema)}}{{?}} #}}
|
---|
| 163 |
|
---|
| 164 | {{## def._errorParams = {
|
---|
| 165 | 'false schema': "{}",
|
---|
| 166 | $ref: "{ ref: '{{=it.util.escapeQuotes($schema)}}' }",
|
---|
| 167 | additionalItems: "{ limit: {{=$schema.length}} }",
|
---|
| 168 | additionalProperties: "{ additionalProperty: '{{=$additionalProperty}}' }",
|
---|
| 169 | anyOf: "{}",
|
---|
| 170 | const: "{ allowedValue: schema{{=$lvl}} }",
|
---|
| 171 | contains: "{}",
|
---|
| 172 | dependencies: "{ property: '{{= it.util.escapeQuotes($property) }}', missingProperty: '{{=$missingProperty}}', depsCount: {{=$deps.length}}, deps: '{{= it.util.escapeQuotes($deps.length==1 ? $deps[0] : $deps.join(\", \")) }}' }",
|
---|
| 173 | 'enum': "{ allowedValues: schema{{=$lvl}} }",
|
---|
| 174 | format: "{ format: {{#def.schemaValueQS}} }",
|
---|
| 175 | 'if': "{ failingKeyword: {{=$ifClause}} }",
|
---|
| 176 | _limit: "{ comparison: {{=$opExpr}}, limit: {{=$schemaValue}}, exclusive: {{=$exclusive}} }",
|
---|
| 177 | _exclusiveLimit: "{}",
|
---|
| 178 | _limitItems: "{ limit: {{=$schemaValue}} }",
|
---|
| 179 | _limitLength: "{ limit: {{=$schemaValue}} }",
|
---|
| 180 | _limitProperties:"{ limit: {{=$schemaValue}} }",
|
---|
| 181 | multipleOf: "{ multipleOf: {{=$schemaValue}} }",
|
---|
| 182 | not: "{}",
|
---|
| 183 | oneOf: "{ passingSchemas: {{=$passingSchemas}} }",
|
---|
| 184 | pattern: "{ pattern: {{#def.schemaValueQS}} }",
|
---|
| 185 | propertyNames: "{ propertyName: '{{=$invalidName}}' }",
|
---|
| 186 | required: "{ missingProperty: '{{=$missingProperty}}' }",
|
---|
| 187 | type: "{ type: '{{? $typeIsArray }}{{= $typeSchema.join(\",\") }}{{??}}{{=$typeSchema}}{{?}}' }",
|
---|
| 188 | uniqueItems: "{ i: i, j: j }",
|
---|
| 189 | custom: "{ keyword: '{{=$rule.keyword}}' }",
|
---|
| 190 | patternRequired: "{ missingPattern: '{{=$missingPattern}}' }",
|
---|
| 191 | switch: "{ caseIndex: {{=$caseIndex}} }",
|
---|
| 192 | _formatLimit: "{ comparison: {{=$opExpr}}, limit: {{#def.schemaValueQS}}, exclusive: {{=$exclusive}} }",
|
---|
| 193 | _formatExclusiveLimit: "{}"
|
---|
| 194 | } #}}
|
---|