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

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");
let validator = hasShape({
foo: [ isString ]
foo: [ isString ],
unused: [ isString ]
});
let objectA = {

@ -75,7 +75,11 @@ module.exports = function hasShape(rules) {
});
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;
}
} else {
// Extraneous property
newObject[key] = value;

Loading…
Cancel
Save