diff options
Diffstat (limited to 'tools/node_modules/eslint/node_modules/ajv/lib')
26 files changed, 111 insertions, 60 deletions
diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/ajv.d.ts b/tools/node_modules/eslint/node_modules/ajv/lib/ajv.d.ts index 763a09be65..6593d0788d 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/ajv.d.ts +++ b/tools/node_modules/eslint/node_modules/ajv/lib/ajv.d.ts @@ -1,12 +1,36 @@ declare var ajv: { (options?: ajv.Options): ajv.Ajv; - new (options?: ajv.Options): ajv.Ajv; - ValidationError: ValidationError; - MissingRefError: MissingRefError; + new(options?: ajv.Options): ajv.Ajv; + ValidationError: typeof AjvErrors.ValidationError; + MissingRefError: typeof AjvErrors.MissingRefError; $dataMetaSchema: object; } +declare namespace AjvErrors { + class ValidationError extends Error { + constructor(errors: Array<ajv.ErrorObject>); + + message: string; + errors: Array<ajv.ErrorObject>; + ajv: true; + validation: true; + } + + class MissingRefError extends Error { + constructor(baseId: string, ref: string, message?: string); + static message: (baseId: string, ref: string) => string; + + message: string; + missingRef: string; + missingSchema: string; + } +} + declare namespace ajv { + type ValidationError = AjvErrors.ValidationError; + + type MissingRefError = AjvErrors.MissingRefError; + interface Ajv { /** * Validate data using schema @@ -268,11 +292,11 @@ declare namespace ajv { } type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams | - DependenciesParams | FormatParams | ComparisonParams | - MultipleOfParams | PatternParams | RequiredParams | - TypeParams | UniqueItemsParams | CustomParams | - PatternRequiredParams | PropertyNamesParams | - IfParams | SwitchParams | NoParams | EnumParams; + DependenciesParams | FormatParams | ComparisonParams | + MultipleOfParams | PatternParams | RequiredParams | + TypeParams | UniqueItemsParams | CustomParams | + PatternRequiredParams | PropertyNamesParams | + IfParams | SwitchParams | NoParams | EnumParams; interface RefParams { ref: string; @@ -344,29 +368,11 @@ declare namespace ajv { caseIndex: number; } - interface NoParams {} + interface NoParams { } interface EnumParams { allowedValues: Array<any>; } } -declare class ValidationError extends Error { - constructor(errors: Array<ajv.ErrorObject>); - - message: string; - errors: Array<ajv.ErrorObject>; - ajv: true; - validation: true; -} - -declare class MissingRefError extends Error { - constructor(baseId: string, ref: string, message?: string); - static message: (baseId: string, ref: string) => string; - - message: string; - missingRef: string; - missingSchema: string; -} - export = ajv; diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/compile/equal.js b/tools/node_modules/eslint/node_modules/ajv/lib/compile/equal.js index 911774c855..4b271d5436 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/compile/equal.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/compile/equal.js @@ -1,3 +1,5 @@ 'use strict'; +// do NOT remove this file - it would break pre-compiled schemas +// https://github.com/epoberezkin/ajv/issues/889 module.exports = require('fast-deep-equal'); diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dot/defaults.def b/tools/node_modules/eslint/node_modules/ajv/lib/dot/defaults.def index 5ad8d1d2d2..f100cc4bf4 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dot/defaults.def +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dot/defaults.def @@ -1,5 +1,10 @@ {{## def.assignDefault: - if ({{=$passData}} === undefined) + if ({{=$passData}} === undefined + {{? it.opts.useDefaults == 'empty' }} + || {{=$passData}} === null + || {{=$passData}} === '' + {{?}} + ) {{=$passData}} = {{? it.opts.useDefaults == 'shared' }} {{= it.useDefault($sch.default) }} {{??}} diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limit.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limit.js index 20485c8d07..f02a760144 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limit.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limit.js @@ -52,7 +52,8 @@ module.exports = function generate__limit(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -138,7 +139,8 @@ module.exports = function generate__limit(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitItems.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitItems.js index 2f6f6ce8f2..a27d11886e 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitItems.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitItems.js @@ -59,7 +59,8 @@ module.exports = function generate__limitItems(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitLength.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitLength.js index e6927f39c6..789f3741ed 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitLength.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitLength.js @@ -64,7 +64,8 @@ module.exports = function generate__limitLength(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js index cd8c62a873..11dc939314 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/_limitProperties.js @@ -59,7 +59,8 @@ module.exports = function generate__limitProperties(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/anyOf.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/anyOf.js index 994b091230..819c6f8a4b 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/anyOf.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/anyOf.js @@ -52,7 +52,8 @@ module.exports = function generate_anyOf(it, $keyword, $ruleType) { out += ' {} '; } out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError(vErrors); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/const.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/const.js index acad86f79f..15b7c619ff 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/const.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/const.js @@ -38,7 +38,8 @@ module.exports = function generate_const(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/contains.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/contains.js index 04c6e936f7..8899ce5930 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/contains.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/contains.js @@ -60,7 +60,8 @@ module.exports = function generate_contains(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/custom.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/custom.js index 0623e24403..f3e641e701 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/custom.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/custom.js @@ -153,7 +153,8 @@ module.exports = function generate_custom(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -199,7 +200,8 @@ module.exports = function generate_custom(it, $keyword, $ruleType) { out += ' {} '; } out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError(vErrors); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/dependencies.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/dependencies.js index 58814c6129..fe4dc091ae 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/dependencies.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/dependencies.js @@ -80,7 +80,8 @@ module.exports = function generate_dependencies(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/enum.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/enum.js index 03f3a8caae..90580b9ff7 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/enum.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/enum.js @@ -48,7 +48,8 @@ module.exports = function generate_enum(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/format.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/format.js index 20a467ee29..cd9a5693e7 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/format.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/format.js @@ -132,7 +132,8 @@ module.exports = function generate_format(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/if.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/if.js index 6f0ea6446d..eff9090b81 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/if.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/if.js @@ -82,7 +82,8 @@ module.exports = function generate_if(it, $keyword, $ruleType) { out += ' {} '; } out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError(vErrors); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/items.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/items.js index 77be5e214a..99ce738544 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/items.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/items.js @@ -43,7 +43,8 @@ module.exports = function generate_items(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/multipleOf.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/multipleOf.js index df5a315444..af087d2c3a 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/multipleOf.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/multipleOf.js @@ -59,7 +59,8 @@ module.exports = function generate_multipleOf(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/not.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/not.js index 67add9f672..c8f8af7f04 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/not.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/not.js @@ -47,7 +47,8 @@ module.exports = function generate_not(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/oneOf.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/oneOf.js index b6be640923..e9df4532c8 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/oneOf.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/oneOf.js @@ -57,7 +57,8 @@ module.exports = function generate_oneOf(it, $keyword, $ruleType) { out += ' {} '; } out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError(vErrors); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/pattern.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/pattern.js index 76b7794e0e..1d74d6b04b 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/pattern.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/pattern.js @@ -57,7 +57,8 @@ module.exports = function generate_pattern(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/properties.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/properties.js index 409692fce2..7d2ea869b9 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/properties.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/properties.js @@ -109,7 +109,8 @@ module.exports = function generate_properties(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -239,7 +240,8 @@ module.exports = function generate_properties(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/propertyNames.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/propertyNames.js index 547d5dd0ad..c86a8cb69c 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/propertyNames.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/propertyNames.js @@ -61,7 +61,8 @@ module.exports = function generate_propertyNames(it, $keyword, $ruleType) { out += ' {} '; } out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError(vErrors); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/ref.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/ref.js index cac481186b..8042a47882 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/ref.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/ref.js @@ -40,7 +40,8 @@ module.exports = function generate_ref(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/required.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/required.js index 15b36bb7a7..68cedb3f1c 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/required.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/required.js @@ -89,7 +89,8 @@ module.exports = function generate_required(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -148,7 +149,8 @@ module.exports = function generate_required(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js index d2dedf5a7c..c4f6536b47 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/uniqueItems.js @@ -63,7 +63,8 @@ module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { diff --git a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/validate.js b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/validate.js index 019c193ac1..1402b6a15a 100644 --- a/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/validate.js +++ b/tools/node_modules/eslint/node_modules/ajv/lib/dotjs/validate.js @@ -49,7 +49,8 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -205,7 +206,8 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -252,7 +254,8 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { @@ -301,7 +304,11 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { var $sch = $schema[$propertyKey]; if ($sch.default !== undefined) { var $passData = $data + it.util.getProperty($propertyKey); - out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + out += ' if (' + ($passData) + ' === undefined '; + if (it.opts.useDefaults == 'empty') { + out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; + } + out += ' ) ' + ($passData) + ' = '; if (it.opts.useDefaults == 'shared') { out += ' ' + (it.useDefault($sch.default)) + ' '; } else { @@ -320,7 +327,11 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { $sch = arr4[$i += 1]; if ($sch.default !== undefined) { var $passData = $data + '[' + $i + ']'; - out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + out += ' if (' + ($passData) + ' === undefined '; + if (it.opts.useDefaults == 'empty') { + out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \'\' '; + } + out += ' ) ' + ($passData) + ' = '; if (it.opts.useDefaults == 'shared') { out += ' ' + (it.useDefault($sch.default)) + ' '; } else { @@ -388,7 +399,8 @@ module.exports = function generate_validate(it, $keyword, $ruleType) { } var __err = out; out = $$outStack.pop(); - if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (!it.compositeRule && $breakOnError) { + /* istanbul ignore if */ if (it.async) { out += ' throw new ValidationError([' + (__err) + ']); '; } else { |