From 7921c11d4676db12d62bc68788b03ca0f00102c0 Mon Sep 17 00:00:00 2001 From: Alvaro Cabrera <pateketrueke@gmail.com> Date: Fri, 25 Nov 2016 02:21:41 -0600 Subject: [PATCH] Apply defaultMinItems option; fixes #170 --- lib/class/OptionRegistry.js | Bin 977 -> 1020 bytes lib/types/array.js | Bin 2757 -> 2982 bytes ts/class/OptionRegistry.ts | 1 + ts/types/array.ts | 7 +++++++ 4 files changed, 8 insertions(+) diff --git a/lib/class/OptionRegistry.js b/lib/class/OptionRegistry.js index bf56c1ff7b7d18b722a7f2b990b33c4729d0e3d0..5736c386c65fbfe2794bad7d5815cc0b3fc2291d 100644 GIT binary patch delta 30 lcmcb}{)c^oDl?yNW}atBYHqQ5tb(nA!DK}yvB`4Gn*p7r2}}S0 delta 11 Scmeyvevy5HD)Zz3<~0BuVFX41 diff --git a/lib/types/array.js b/lib/types/array.js index 497432959b875cc64b3e7283ec3de10e0b16eac7..24a8e05ba9eff2c66542be2d63edf4db55dbd0eb 100644 GIT binary patch delta 222 zcmX>qx=eh-9k%+E)U?FXoD$#6JkOHU++uZ21vNE=TqsY$*49>`G%qDJEi*4QMN^@g zO92Y>^%c@GD-@FQOY>3^i!xJ-;W7xl3W~Xj6<|~0k|5po3i$;knfZAd>M5ydfvA?F jD6~@WO)SaK%gxNwK+=J#K}P{*ho&`HbM5BSY`>TR+c`tr delta 12 UcmZ1`epGbB9k$JT*<UgP03}5QjQ{`u diff --git a/ts/class/OptionRegistry.ts b/ts/class/OptionRegistry.ts index 4120800c..3af4e746 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['defaultMinItems'] = 0; this.data['defaultRandExpMax'] = 10; this.data['alwaysFakeOptionals'] = false; } diff --git a/ts/types/array.ts b/ts/types/array.ts index 0699f29f..a8871aa2 100644 --- a/ts/types/array.ts +++ b/ts/types/array.ts @@ -60,6 +60,13 @@ var arrayType: FTypeGenerator = function arrayType(value: IArraySchema, path: Sc var minItems = value.minItems; var maxItems = value.maxItems; + if (option('defaultMinItems') && minItems === undefined) { + // fix boundaries + minItems = !maxItems + ? option('defaultMinItems') + : Math.min(option('defaultMinItems'), maxItems); + } + if (option('maxItems')) { // Don't allow user to set max items above our maximum if (maxItems && maxItems > option('maxItems')) { -- GitLab