Comparing version 13.3.0 to 13.4.0
@@ -28,3 +28,3 @@ 'use strict'; | ||
internals.applyDefaults = function (schema) { | ||
internals.callWithDefaults = function (schema, args) { | ||
@@ -39,3 +39,3 @@ Hoek.assert(this, 'Must be invoked on a Joi instance.'); | ||
return schema; | ||
return schema._init(...args); | ||
}; | ||
@@ -55,3 +55,3 @@ | ||
return internals.applyDefaults.call(this, any); | ||
return internals.callWithDefaults.call(this, any, args); | ||
}; | ||
@@ -61,4 +61,3 @@ | ||
const alternatives = internals.applyDefaults.call(this, internals.alternatives); | ||
return args.length ? alternatives.try.apply(alternatives, args) : alternatives; | ||
return internals.callWithDefaults.call(this, internals.alternatives, args); | ||
}; | ||
@@ -70,3 +69,3 @@ | ||
return internals.applyDefaults.call(this, internals.array); | ||
return internals.callWithDefaults.call(this, internals.array, args); | ||
}; | ||
@@ -78,3 +77,3 @@ | ||
return internals.applyDefaults.call(this, internals.boolean); | ||
return internals.callWithDefaults.call(this, internals.boolean, args); | ||
}; | ||
@@ -86,3 +85,3 @@ | ||
return internals.applyDefaults.call(this, internals.binary); | ||
return internals.callWithDefaults.call(this, internals.binary, args); | ||
}; | ||
@@ -94,3 +93,3 @@ | ||
return internals.applyDefaults.call(this, internals.date); | ||
return internals.callWithDefaults.call(this, internals.date, args); | ||
}; | ||
@@ -102,3 +101,3 @@ | ||
return internals.applyDefaults.call(this, internals.func); | ||
return internals.callWithDefaults.call(this, internals.func, args); | ||
}; | ||
@@ -110,3 +109,3 @@ | ||
return internals.applyDefaults.call(this, internals.number); | ||
return internals.callWithDefaults.call(this, internals.number, args); | ||
}; | ||
@@ -116,4 +115,3 @@ | ||
const object = internals.applyDefaults.call(this, internals.object); | ||
return args.length ? object.keys(...args) : object; | ||
return internals.callWithDefaults.call(this, internals.object, args); | ||
}; | ||
@@ -125,3 +123,3 @@ | ||
return internals.applyDefaults.call(this, internals.string); | ||
return internals.callWithDefaults.call(this, internals.string, args); | ||
}; | ||
@@ -229,3 +227,3 @@ | ||
const schemaPath = typeof path === 'string' ? path.split('.') : path.slice(); | ||
const schemaPath = typeof path === 'string' ? (path ? path.split('.') : []) : path.slice(); | ||
@@ -418,5 +416,5 @@ return reach(schema, schemaPath); | ||
const instance = new type(); | ||
joi[extension.name] = function () { | ||
joi[extension.name] = function (...extArgs) { | ||
return internals.applyDefaults.call(this, instance); | ||
return internals.callWithDefaults.call(this, instance, extArgs); | ||
}; | ||
@@ -423,0 +421,0 @@ } |
@@ -64,2 +64,4 @@ 'use strict'; | ||
max: 'must be less than or equal to "{{limit}}"', | ||
less: 'must be less than "{{limit}}"', | ||
greater: 'must be greater than "{{limit}}"', | ||
isoDate: 'must be a valid ISO 8601 date', | ||
@@ -66,0 +68,0 @@ timestamp: { |
@@ -5,3 +5,3 @@ 'use strict'; | ||
const Joi = require('../'); | ||
const Joi = require('./index'); | ||
@@ -8,0 +8,0 @@ |
@@ -26,2 +26,7 @@ 'use strict'; | ||
_init(...args) { | ||
return args.length ? this.try(...args) : this; | ||
} | ||
_base(value, state, options) { | ||
@@ -28,0 +33,0 @@ |
@@ -77,2 +77,7 @@ 'use strict'; | ||
_init() { | ||
return this; | ||
} | ||
get schemaType() { | ||
@@ -79,0 +84,0 @@ |
@@ -171,6 +171,10 @@ 'use strict'; | ||
}; | ||
internals.Date.prototype.min = internals.compare('min', (value, date) => value >= date); | ||
internals.Date.prototype.max = internals.compare('max', (value, date) => value <= date); | ||
internals.Date.prototype.greater = internals.compare('greater', (value, date) => value > date); | ||
internals.Date.prototype.less = internals.compare('less', (value, date) => value < date); | ||
module.exports = new internals.Date(); |
@@ -29,2 +29,7 @@ 'use strict'; | ||
_init(...args) { | ||
return args.length ? this.keys(...args) : this; | ||
} | ||
_base(value, state, options) { | ||
@@ -248,3 +253,6 @@ | ||
if (pattern.regex.test(key)) { | ||
if (pattern.regex ? | ||
pattern.regex.test(key) : | ||
!pattern.schema.validate(key).error) { | ||
unprocessed.delete(key); | ||
@@ -438,6 +446,9 @@ | ||
Hoek.assert(pattern instanceof RegExp, 'Invalid regular expression'); | ||
const isRegExp = pattern instanceof RegExp; | ||
Hoek.assert(isRegExp || pattern instanceof Any, 'pattern must be a regex or schema'); | ||
Hoek.assert(schema !== undefined, 'Invalid rule'); | ||
pattern = new RegExp(pattern.source, pattern.ignoreCase ? 'i' : undefined); // Future version should break this and forbid unsupported regex flags | ||
if (isRegExp) { | ||
pattern = new RegExp(pattern.source, pattern.ignoreCase ? 'i' : undefined); // Future version should break this and forbid unsupported regex flags | ||
} | ||
@@ -455,5 +466,9 @@ try { | ||
const obj = this.clone(); | ||
obj._inner.patterns.push({ regex: pattern, rule: schema }); | ||
if (isRegExp) { | ||
obj._inner.patterns.push({ regex: pattern, rule: schema }); | ||
} | ||
else { | ||
obj._inner.patterns.push({ schema: pattern, rule: schema }); | ||
} | ||
return obj; | ||
@@ -644,3 +659,8 @@ } | ||
const pattern = this._inner.patterns[i]; | ||
description.patterns.push({ regex: pattern.regex.toString(), rule: pattern.rule.describe() }); | ||
if (pattern.regex) { | ||
description.patterns.push({ regex: pattern.regex.toString(), rule: pattern.rule.describe() }); | ||
} | ||
else { | ||
description.patterns.push({ schema: pattern.schema.describe(), rule: pattern.rule.describe() }); | ||
} | ||
} | ||
@@ -647,0 +667,0 @@ } |
{ | ||
"name": "joi", | ||
"description": "Object schema validation", | ||
"version": "13.3.0", | ||
"version": "13.4.0", | ||
"homepage": "https://github.com/hapijs/joi", | ||
@@ -6,0 +6,0 @@ "repository": "git://github.com/hapijs/joi", |
@@ -19,3 +19,3 @@ ![joi Logo](https://raw.github.com/hapijs/joi/master/images/joi.png) | ||
# API | ||
See the detailed [API Reference](https://github.com/hapijs/joi/blob/v13.3.0/API.md). | ||
See the detailed [API Reference](https://github.com/hapijs/joi/blob/v13.4.0/API.md). | ||
@@ -22,0 +22,0 @@ # Example |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
177085
4201