diff options
Diffstat (limited to 'node_modules/ajv-errors/lib/dot')
-rw-r--r-- | node_modules/ajv-errors/lib/dot/errorMessage.jst | 372 |
1 files changed, 372 insertions, 0 deletions
diff --git a/node_modules/ajv-errors/lib/dot/errorMessage.jst b/node_modules/ajv-errors/lib/dot/errorMessage.jst new file mode 100644 index 0000000..60cf89d --- /dev/null +++ b/node_modules/ajv-errors/lib/dot/errorMessage.jst @@ -0,0 +1,372 @@ +{{# def.definitions }} +{{# def.errors }} +{{# def.setupKeyword }} + +{{## def.em_errorMatch: + {{# def._em_commonErrorMatch }} + && ({{=$err}}.dataPath == {{=$dataPath}} || + ({{=$err}}.dataPath.indexOf({{=$dataPath}}) == 0 && + {{=$err}}.dataPath[{{=$dataPath}}.length] == '/')) + && {{=$err}}.schemaPath.indexOf({{=$errSchemaPathString}}) == 0 + && {{=$err}}.schemaPath[{{=it.errSchemaPath.length}}] == '/' +#}} + +{{## def.em_keywordErrorMatch: + {{# def._em_commonErrorMatch }} + && {{=$err}}.keyword in {{=$errors}} + && {{=$err}}.dataPath == {{=$dataPath}} + && {{=$err}}.schemaPath.indexOf({{=$errSchemaPathString}}) == 0 + && /^\/[^\/]*$/.test({{=$err}}.schemaPath.slice({{=it.errSchemaPath.length}})) +#}} + +{{## def.em_childErrorMatch: + {{# def._em_commonErrorMatch }} + && {{=$err}}.dataPath.indexOf({{=$dataPath}}) == 0 + && ({{=$matches}} = {{=$err}}.dataPath.slice({{=$dataPath}}.length).match(/^\/([^\/]*)(?:\/|$)/), + {{=$child}} = {{=$matches}} && {{=$matches}}[1].replace(/~1/g, '/').replace(/~0/g, '~') + ) !== undefined + && {{=$child}} in {{=$errors}} +#}} + +{{## def._em_commonErrorMatch: + {{=$err}}.keyword != '{{=$keyword}}' + {{? $config.options.keepErrors }} + && !{{=$err}}.emUsed + {{?}} +#}} + +{{## def.em_useError: + {{? $config.options.keepErrors }} + {{=$err}}.emUsed = true; + {{??}} + vErrors.splice({{=$i}}, 1); + errors--; + {{?}} +#}} + +{{## def.em_compileTemplates: _keysArray: + var {{=$templates}} = { + {{ var $comma = false; }} + {{~ _keysArray:$k }} + {{? INTERPOLATION.test($schema[$k]) }} + {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: {{= templateFunc($schema[$k]) }} + {{ $comma = true; }} + {{?}} + {{~}} + }; +#}} + +{{## def.em_compilePropsTemplates: _keywordProps: + var {{=$templates}} = { + {{ var $comma = false; }} + {{~ Object.keys(_keywordProps):$k }} + {{ var $keywordMsgs = $schema[$k]; }} + {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: { + {{ $comma = true; var $innerComma = false; }} + {{~ Object.keys($keywordMsgs):$prop }} + {{? INTERPOLATION.test($keywordMsgs[$prop]) }} + {{?$innerComma}},{{?}}{{= it.util.toQuotedString($prop) }}: {{= templateFunc($keywordMsgs[$prop]) }} + {{ $innerComma = true; }} + {{?}} + {{~}} + } + {{~}} + }; +#}} + +{{## def.em_compileChildTemplates: _children: + {{ var _keysArray = Object.keys($childErrors._children); }} + var {{=$templates}} = { + {{ var $comma = false; }} + {{~ _keysArray:$k }} + {{? INTERPOLATION.test($schema._children[$k]) }} + {{?$comma}},{{?}}{{= it.util.toQuotedString($k) }}: {{= templateFunc($schema._children[$k]) }} + {{ $comma = true; }} + {{?}} + {{~}} + }; +#}} + +{{## def.em_errorMessage: + {{=$key}} in {{=$templates}} + ? {{=$templates}}[{{=$key}}] () + : validate.schema{{=$schemaPath}}[{{=$key}}] +#}} + +{{## def.em_keywordError: + var err = { + keyword: '{{=$keyword}}' + , dataPath: {{=$dataPath}} + , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}' + , params: { errors: {{=$paramsErrors}} } + , message: {{=$message}} + {{? it.opts.verbose }} + , schema: validate.schema{{=$schemaPath}} + , parentSchema: validate.schema{{=it.schemaPath}} + , data: {{=$data}} + {{?}} + }; + {{# def._addError:'custom' }} +#}} + + +{{? it.createErrors !== false }} + {{ + var INTERPOLATION = /\$\{[^\}]+\}/; + var INTERPOLATION_REPLACE = /\$\{([^\}]+)\}/g; + var EMPTY_STR = /^\'\'\s*\+\s*|\s*\+\s*\'\'$/g; + + var $config = it.self.getKeyword($keyword).config + , $dataPath = '_em_dataPath' + $lvl + , $i = '_em_i' + $lvl + , $key = '_em_key' + $lvl + , $keyProp = '_em_keyProp' + $lvl + , $err = '_em_err' + $lvl + , $child = '_em_child' + $lvl + , $childKeyword = '_em_childKeyword' + $lvl + , $matches = '_em_matches' + $lvl + , $isArray = '_em_isArray' + $lvl + , $errors = '_em_errors' + $lvl + , $message = '_em_message' + $lvl + , $paramsErrors = '_em_paramsErrors' + $lvl + , $propParam = '_em_propParam' + $lvl + , $keywordPropParams = '_em_keywordPropParams' + $lvl + , $templates = '_em_templates' + $lvl + , $errSchemaPathString = it.util.toQuotedString(it.errSchemaPath); + }} + + if (errors > 0) { + var {{=$dataPath}} = (dataPath || '') + {{= it.errorPath }}; + var {{=$i}}, {{=$err}}, {{=$errors}}; + + {{? typeof $schema == 'object' }} + {{ + var $keywordErrors = {} + , $keywordPropErrors = {} + , $childErrors = { properties: {}, items: {} } + , $hasKeywordProps = false + , $hasProperties = false + , $hasItems = false; + + for (var $k in $schema) { + switch ($k) { + case 'properties': + for (var $prop in $schema.properties) { + $hasProperties = true; + $childErrors.properties[$prop] = []; + } + break; + case 'items': + for (var $item=0; $item<$schema.items.length; $item++) { + $hasItems = true; + $childErrors.items[$item] = []; + } + break; + default: + if (typeof $schema[$k] == 'object') { + $hasKeywordProps = true; + $keywordPropErrors[$k] = {}; + for (var $prop in $schema[$k]) { + $keywordPropErrors[$k][$prop] = []; + } + } else { + $keywordErrors[$k] = []; + } + } + } + }} + + {{ var $keywordErrorsArr = Object.keys($keywordErrors); }} + {{? $keywordErrorsArr.length }} + {{=$i}} = 0; + {{=$errors}} = {{= JSON.stringify($keywordErrors) }}; + {{# def.em_compileTemplates:$keywordErrorsArr }} + while ({{=$i}} < errors) { + {{=$err}} = vErrors[{{=$i}}]; + if ({{# def.em_keywordErrorMatch}}) { + {{=$errors}}[{{=$err}}.keyword].push({{=$err}}); + {{# def.em_useError }} + } else { + {{=$i}}++; + } + } + + {{? $config.options.singleError }} + var {{=$message}} = ''; + var {{=$paramsErrors}} = []; + {{?}} + + for (var {{=$key}} in {{=$errors}}) { + if ({{=$errors}}[{{=$key}}].length) { + + {{? $config.options.singleError }} + if ({{=$message}}) { + {{=$message}} += {{? typeof $config.options.singleError == 'string' }} + {{= it.util.toQuotedString($config.options.singleError) }} + {{??}} + '; ' + {{?}}; + } + {{=$message}} += {{# def.em_errorMessage }}; + {{=$paramsErrors}} = {{=$paramsErrors}}.concat({{=$errors}}[{{=$key}}]); + } + } + {{??}} + var {{=$message}} = {{# def.em_errorMessage }}; + var {{=$paramsErrors}} = {{=$errors}}[{{=$key}}]; + {{?}} + + {{# def.em_keywordError}} + + {{? !$config.options.singleError }} + } + } + {{?}} + {{?}} /* $keywordErrorsArr */ + + {{? $hasKeywordProps }} + {{=$i}} = 0; + {{=$errors}} = {{= JSON.stringify($keywordPropErrors) }}; + var {{=$paramsErrors}}, {{=$propParam}}; + var {{=$keywordPropParams}} = {{= JSON.stringify($config.KEYWORD_PROPERTY_PARAMS) }}; + {{# def.em_compilePropsTemplates:$keywordPropErrors }} + + while ({{=$i}} < errors) { + {{=$err}} = vErrors[{{=$i}}]; + if ({{# def.em_keywordErrorMatch}}) { + {{=$propParam}} = {{=$keywordPropParams}}[{{=$err}}.keyword]; + {{=$paramsErrors}} = {{=$errors}}[{{=$err}}.keyword][{{=$err}}.params[{{=$propParam}}]]; + if ({{=$paramsErrors}}) { + {{=$paramsErrors}}.push({{=$err}}); + {{# def.em_useError }} + } else { + {{=$i}}++; + } + } else { + {{=$i}}++; + } + } + + for (var {{=$key}} in {{=$errors}}) { + for (var {{=$keyProp}} in {{=$errors}}[{{=$key}}]) { + {{=$paramsErrors}} = {{=$errors}}[{{=$key}}][{{=$keyProp}}]; + if ({{=$paramsErrors}}.length) { + var {{=$message}} = {{=$key}} in {{=$templates}} && {{=$keyProp}} in {{=$templates}}[{{=$key}}] + ? {{=$templates}}[{{=$key}}][{{=$keyProp}}] () + : validate.schema{{=$schemaPath}}[{{=$key}}][{{=$keyProp}}]; + {{# def.em_keywordError}} + } + } + } + {{?}} /* $hasKeywordProps */ + + {{? $hasProperties || $hasItems }} + var {{=$isArray}} = Array.isArray({{=$data}}); + if + {{? $hasProperties && $hasItems }} + (typeof {{=$data}} == 'object') { + {{ var $childProp = '[' + $childKeyword + ']'; }} + {{=$i}} = 0; + if ({{=$isArray}}) { + var {{=$childKeyword}} = 'items'; + {{=$errors}} = {{= JSON.stringify($childErrors.items) }}; + {{# def.em_compileChildTemplates: items }} + } else { + var {{=$childKeyword}} = 'properties'; + {{=$errors}} = {{= JSON.stringify($childErrors.properties) }}; + {{# def.em_compileChildTemplates: properties }} + } + {{?? $hasProperties }} + (typeof {{=$data}} == 'object' && !{{=$isArray}}) { + {{ var $childProp = '.properties'; }} + {{=$i}} = 0; + {{=$errors}} = {{= JSON.stringify($childErrors.properties) }}; + {{# def.em_compileChildTemplates: properties }} + {{??}} + ({{=$isArray}}) { + {{ var $childProp = '.items'; }} + {{=$i}} = 0; + {{=$errors}} = {{= JSON.stringify($childErrors.items) }}; + {{# def.em_compileChildTemplates: items }} + {{?}} + + var {{=$child}}, {{=$matches}}; + while ({{=$i}} < errors) { + {{=$err}} = vErrors[{{=$i}}]; + if ({{# def.em_childErrorMatch}}) { + {{=$errors}}[{{=$child}}].push({{=$err}}); + {{# def.em_useError }} + } else { + {{=$i}}++; + } + } + for (var {{=$key}} in {{=$errors}}) { + if ({{=$errors}}[{{=$key}}].length) { + var err = { + keyword: '{{=$keyword}}' + , dataPath: {{=$dataPath}} + '/' + {{=$key}}.replace(/~/g, '~0').replace(/\//g, '~1') + , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}' + , params: { errors: {{=$errors}}[{{=$key}}] } + , message: {{=$key}} in {{=$templates}} + ? {{=$templates}}[{{=$key}}] () + : validate.schema{{=$schemaPath}}{{=$childProp}}[{{=$key}}] + {{? it.opts.verbose }} + , schema: validate.schema{{=$schemaPath}} + , parentSchema: validate.schema{{=it.schemaPath}} + , data: {{=$data}} + {{?}} + }; + {{# def._addError:'custom' }} + } + } /* for */ + } /* if */ + {{?}} /* $hasProperties || $hasItems */ + {{?}} /* $schema is object */ + + {{ var $schemaMessage = typeof $schema == 'string' ? $schema : $schema._; }} + {{? $schemaMessage }} + {{=$i}} = 0; + {{=$errors}} = []; + while ({{=$i}} < errors) { + {{=$err}} = vErrors[{{=$i}}]; + if ({{# def.em_errorMatch}}) { + {{=$errors}}.push({{=$err}}); + {{# def.em_useError }} + } else { + {{=$i}}++; + } + } + if ({{=$errors}}.length) { + var err = { + keyword: '{{=$keyword}}' + , dataPath: {{=$dataPath}} + , schemaPath: {{=$errSchemaPathString}} + '/{{=$keyword}}' + , params: { errors: {{=$errors}} } + , message: {{=templateExpr($schemaMessage)}} + {{? it.opts.verbose }} + , schema: {{=it.util.toQuotedString($schemaMessage)}} + , parentSchema: validate.schema{{=it.schemaPath}} + , data: {{=$data}} + {{?}} + }; + {{# def._addError:'custom' }} + } + {{?}} + } +{{?}} + + +{{ + function templateExpr(str) { + str = it.util.escapeQuotes(str); + if (!INTERPOLATION.test(str)) return "'" + str + "'"; + var expr = "'" + str.replace(INTERPOLATION_REPLACE, function ($0, $1) { + return "' + JSON.stringify(" + it.util.getData($1, $dataLvl, it.dataPathArr) + ") + '"; + }) + "'"; + return expr.replace(EMPTY_STR, ''); + } + + function templateFunc(str) { + return 'function() { return ' + templateExpr(str) + '; }'; + } +}} |