diff --git a/lib/class/OptionRegistry.js b/lib/class/OptionRegistry.js index fcb9cbc31973eb496376ca33c6bb79e2439e112d..47a41f68d6b4dae3ae957ee2c74b5c8adf17500f 100644 Binary files a/lib/class/OptionRegistry.js and b/lib/class/OptionRegistry.js differ diff --git a/lib/types/object.js b/lib/types/object.js index 57fdacd5ec54f70fa94e5f5fd631e22faf78b474..c64b062589d7f6bf2bcc99cf09ef63bd23074448 100644 Binary files a/lib/types/object.js and b/lib/types/object.js differ diff --git a/ts/class/OptionRegistry.ts b/ts/class/OptionRegistry.ts index 3aeb06815e6a52cb2fb62be942ce1f4c936403dc..f663dafd941c1dbf14e67c8b043c7566cd742d63 100644 --- a/ts/class/OptionRegistry.ts +++ b/ts/class/OptionRegistry.ts @@ -14,6 +14,7 @@ class OptionRegistry extends Registry<Option> { this.data['useDefaultValue'] = false; this.data['maxItems'] = null; this.data['maxLength'] = null; + this.data['alwaysFakeOptionals'] = false; } } diff --git a/ts/types/object.ts b/ts/types/object.ts index 7e334c86afa4bbf915ed9890b2f7a974c4faff36..26747d59a853eab3a7d80b98bc4f1c9b0d7e686c 100644 --- a/ts/types/object.ts +++ b/ts/types/object.ts @@ -2,6 +2,7 @@ import container = require('../class/Container'); import random = require('../core/random'); import words = require('../generators/words'); import utils = require('../core/utils'); +import option = require('../api/option'); import ParseError = require('../core/error'); var randexp = container.get('randexp'); @@ -44,7 +45,8 @@ var objectType: FTypeGenerator = function objectType(value: IObjectSchema, path, }); // properties are read from right-to-left - var _props = requiredProperties.slice(0, random.number(min, max)); + var _props = option('alwaysFakeOptionals') ? requiredProperties + : requiredProperties.slice(0, random.number(min, max)); _props.forEach(function(key) { // first ones are the required properies