Don't scatter explicit undefineds through objects because of unused rules

remotes/1723093605276550129/master
Sven Slootweg 4 years ago
parent 6669307fcd
commit 7472f83d0c

@ -5,7 +5,8 @@ const { validateValue } = require("@validatem/core");
const isString = require("@validatem/is-string"); const isString = require("@validatem/is-string");
let validator = hasShape({ let validator = hasShape({
foo: [ isString ] foo: [ isString ],
unused: [ isString ]
}); });
let objectA = { let objectA = {

@ -75,7 +75,11 @@ module.exports = function hasShape(rules) {
}); });
errors.push(... annotatedErrors); errors.push(... annotatedErrors);
// Don't scatter explicit `undefined`s across the result object, just because an optional rule existed for some properties but the corresponding value didn't
if (newValue !== undefined) {
newObject[key] = newValue; newObject[key] = newValue;
}
} else { } else {
// Extraneous property // Extraneous property
newObject[key] = value; newObject[key] = value;

Loading…
Cancel
Save