Browse Source

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

master
Sven Slootweg 1 year ago
parent
commit
7472f83d0c
  1. 3
      example.js
  2. 6
      index.js

3
example.js

@ -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 = {

6
index.js

@ -75,7 +75,11 @@ module.exports = function hasShape(rules) {
});
errors.push(... annotatedErrors);
newObject[key] = newValue;
// 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