From e0f08e98f2803ad3e13ac8817e15461ea26f83a2 Mon Sep 17 00:00:00 2001 From: Alvaro Cabrera <pateketrueke@gmail.com> Date: Fri, 25 Nov 2016 01:06:56 -0600 Subject: [PATCH] Basic support for alwaysFakeOptionals option; fixes #154 --- lib/class/OptionRegistry.js | Bin 880 -> 931 bytes lib/types/object.js | Bin 3677 -> 3777 bytes ts/class/OptionRegistry.ts | 1 + ts/types/object.ts | 4 +++- 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/class/OptionRegistry.js b/lib/class/OptionRegistry.js index fcb9cbc31973eb496376ca33c6bb79e2439e112d..47a41f68d6b4dae3ae957ee2c74b5c8adf17500f 100644 GIT binary patch delta 45 zcmeyswwQf`5c6bhCLY<uobtrVVz<QXRR4mK%>2B>oMQD@1zUx*#GK;P$sEiX0ALso AA^-pY delta 11 ScmZ3?{()_S5c6bL<~RTtyaS&A diff --git a/lib/types/object.js b/lib/types/object.js index 57fdacd5ec54f70fa94e5f5fd631e22faf78b474..c64b062589d7f6bf2bcc99cf09ef63bd23074448 100644 GIT binary patch delta 94 zcmcaBb5M4|Zu$IzlFa-(1zUxp)WXutqErnfJw5%zf=qpg#Kz74S)pn))Dv^c6Dy0| g60=kN!MYN2iq$n0>?b?233G8NK!MffjcjY!0gopjV*mgE delta 15 XcmX>odsk+{?v0PWvu+k+U(F5xKx_vz diff --git a/ts/class/OptionRegistry.ts b/ts/class/OptionRegistry.ts index 3aeb0681..f663dafd 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 7e334c86..26747d59 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 -- GitLab