object-hash-strict
Advanced tools
Comparing version 1.2.2 to 1.2.3
const assert = require('assert'); | ||
const get = require('lodash.get'); | ||
const objectHash = require('object-hash'); | ||
@@ -11,3 +9,5 @@ | ||
const scanner = (obj, allowedUndefined) => objectScan(['**'], { | ||
const scanner = (obj, { | ||
allowedUndefined | ||
}) => objectScan(['**'], { | ||
filterFn: (key, value) => { | ||
@@ -20,9 +20,13 @@ if (INVALID.includes(value) && !allowedUndefined.includes(key)) { | ||
const validateObject = (obj, allowedUndefined) => { | ||
const validateObject = (obj, { | ||
allowedUndefined = [] | ||
} = {}) => { | ||
assert(Array.isArray(allowedUndefined), 'Invalid Option Provided'); | ||
scanner(obj, allowedUndefined); | ||
scanner(obj, { | ||
allowedUndefined | ||
}); | ||
return obj; | ||
}; | ||
const wrap = fn => (object, ...args) => fn(validateObject(object, get(args[0], 'allowedUndefined', [])), ...args); | ||
const wrap = fn => (object, ...args) => fn(validateObject(object, args[0]), ...args); | ||
@@ -32,2 +36,2 @@ module.exports = Object.entries(objectHash).reduce((p, [k, v]) => Object.assign(p, { | ||
}), wrap(objectHash)); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwiZ2V0Iiwib2JqZWN0SGFzaCIsIm9iamVjdFNjYW4iLCJJTlZBTElEIiwidW5kZWZpbmVkIiwic2Nhbm5lciIsIm9iaiIsImFsbG93ZWRVbmRlZmluZWQiLCJmaWx0ZXJGbiIsImtleSIsInZhbHVlIiwiaW5jbHVkZXMiLCJFcnJvciIsInZhbGlkYXRlT2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5Iiwid3JhcCIsImZuIiwib2JqZWN0IiwiYXJncyIsIm1vZHVsZSIsImV4cG9ydHMiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwicCIsImsiLCJ2IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLEdBQUcsR0FBR0QsT0FBTyxDQUFDLFlBQUQsQ0FBbkI7O0FBQ0EsTUFBTUUsVUFBVSxHQUFHRixPQUFPLENBQUMsYUFBRCxDQUExQjs7QUFDQSxNQUFNRyxVQUFVLEdBQUdILE9BQU8sQ0FBQyxhQUFELENBQTFCOztBQUVBLE1BQU1JLE9BQU8sR0FBRyxDQUFDQyxTQUFELENBQWhCOztBQUNBLE1BQU1DLE9BQU8sR0FBRyxDQUFDQyxHQUFELEVBQU1DLGdCQUFOLEtBQTJCTCxVQUFVLENBQUMsQ0FBQyxJQUFELENBQUQsRUFBUztBQUM1RE0sRUFBQUEsUUFBUSxFQUFFLENBQUNDLEdBQUQsRUFBTUMsS0FBTixLQUFnQjtBQUN4QixRQUFJUCxPQUFPLENBQUNRLFFBQVIsQ0FBaUJELEtBQWpCLEtBQTJCLENBQUNILGdCQUFnQixDQUFDSSxRQUFqQixDQUEwQkYsR0FBMUIsQ0FBaEMsRUFBZ0U7QUFDOUQsWUFBTSxJQUFJRyxLQUFKLENBQVcsY0FBYUYsS0FBTSxjQUFhRCxHQUFJLFlBQS9DLENBQU47QUFDRDtBQUNGO0FBTDJELENBQVQsQ0FBVixDQU14Q0gsR0FOd0MsQ0FBM0M7O0FBUUEsTUFBTU8sY0FBYyxHQUFHLENBQUNQLEdBQUQsRUFBTUMsZ0JBQU4sS0FBMkI7QUFDaERULEVBQUFBLE1BQU0sQ0FBQ2dCLEtBQUssQ0FBQ0MsT0FBTixDQUFjUixnQkFBZCxDQUFELEVBQWtDLHlCQUFsQyxDQUFOO0FBQ0FGLEVBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxFQUFNQyxnQkFBTixDQUFQO0FBQ0EsU0FBT0QsR0FBUDtBQUNELENBSkQ7O0FBTUEsTUFBTVUsSUFBSSxHQUFJQyxFQUFELElBQVEsQ0FBQ0MsTUFBRCxFQUFTLEdBQUdDLElBQVosS0FBcUJGLEVBQUUsQ0FBQ0osY0FBYyxDQUFDSyxNQUFELEVBQVNsQixHQUFHLENBQUNtQixJQUFJLENBQUMsQ0FBRCxDQUFMLEVBQVUsa0JBQVYsRUFBOEIsRUFBOUIsQ0FBWixDQUFmLEVBQStELEdBQUdBLElBQWxFLENBQTVDOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLE1BQU0sQ0FDcEJDLE9BRGMsQ0FDTnRCLFVBRE0sRUFFZHVCLE1BRmMsQ0FHYixDQUFDQyxDQUFELEVBQUksQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLENBQUosS0FBZUwsTUFBTSxDQUFDTSxNQUFQLENBQWNILENBQWQsRUFBaUI7QUFBRSxHQUFDQyxDQUFELEdBQUtWLElBQUksQ0FBQ1csQ0FBRDtBQUFYLENBQWpCLENBSEYsRUFJYlgsSUFBSSxDQUFDZixVQUFELENBSlMsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IGdldCA9IHJlcXVpcmUoJ2xvZGFzaC5nZXQnKTtcbmNvbnN0IG9iamVjdEhhc2ggPSByZXF1aXJlKCdvYmplY3QtaGFzaCcpO1xuY29uc3Qgb2JqZWN0U2NhbiA9IHJlcXVpcmUoJ29iamVjdC1zY2FuJyk7XG5cbmNvbnN0IElOVkFMSUQgPSBbdW5kZWZpbmVkXTtcbmNvbnN0IHNjYW5uZXIgPSAob2JqLCBhbGxvd2VkVW5kZWZpbmVkKSA9PiBvYmplY3RTY2FuKFsnKionXSwge1xuICBmaWx0ZXJGbjogKGtleSwgdmFsdWUpID0+IHtcbiAgICBpZiAoSU5WQUxJRC5pbmNsdWRlcyh2YWx1ZSkgJiYgIWFsbG93ZWRVbmRlZmluZWQuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgdmFsdWUgXCIke3ZhbHVlfVwiIGZvciBrZXkgXCIke2tleX1cIiBkZXRlY3RlZGApO1xuICAgIH1cbiAgfVxufSkob2JqKTtcblxuY29uc3QgdmFsaWRhdGVPYmplY3QgPSAob2JqLCBhbGxvd2VkVW5kZWZpbmVkKSA9PiB7XG4gIGFzc2VydChBcnJheS5pc0FycmF5KGFsbG93ZWRVbmRlZmluZWQpLCAnSW52YWxpZCBPcHRpb24gUHJvdmlkZWQnKTtcbiAgc2Nhbm5lcihvYmosIGFsbG93ZWRVbmRlZmluZWQpO1xuICByZXR1cm4gb2JqO1xufTtcblxuY29uc3Qgd3JhcCA9IChmbikgPT4gKG9iamVjdCwgLi4uYXJncykgPT4gZm4odmFsaWRhdGVPYmplY3Qob2JqZWN0LCBnZXQoYXJnc1swXSwgJ2FsbG93ZWRVbmRlZmluZWQnLCBbXSkpLCAuLi5hcmdzKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3RcbiAgLmVudHJpZXMob2JqZWN0SGFzaClcbiAgLnJlZHVjZShcbiAgICAocCwgW2ssIHZdKSA9PiBPYmplY3QuYXNzaWduKHAsIHsgW2tdOiB3cmFwKHYpIH0pLFxuICAgIHdyYXAob2JqZWN0SGFzaClcbiAgKTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwib2JqZWN0SGFzaCIsIm9iamVjdFNjYW4iLCJJTlZBTElEIiwidW5kZWZpbmVkIiwic2Nhbm5lciIsIm9iaiIsImFsbG93ZWRVbmRlZmluZWQiLCJmaWx0ZXJGbiIsImtleSIsInZhbHVlIiwiaW5jbHVkZXMiLCJFcnJvciIsInZhbGlkYXRlT2JqZWN0IiwiQXJyYXkiLCJpc0FycmF5Iiwid3JhcCIsImZuIiwib2JqZWN0IiwiYXJncyIsIm1vZHVsZSIsImV4cG9ydHMiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwicCIsImsiLCJ2IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxRQUFELENBQXRCOztBQUNBLE1BQU1DLFVBQVUsR0FBR0QsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTUUsVUFBVSxHQUFHRixPQUFPLENBQUMsYUFBRCxDQUExQjs7QUFFQSxNQUFNRyxPQUFPLEdBQUcsQ0FBQ0MsU0FBRCxDQUFoQjs7QUFDQSxNQUFNQyxPQUFPLEdBQUcsQ0FBQ0MsR0FBRCxFQUFNO0FBQUVDLEVBQUFBO0FBQUYsQ0FBTixLQUErQkwsVUFBVSxDQUFDLENBQUMsSUFBRCxDQUFELEVBQVM7QUFDaEVNLEVBQUFBLFFBQVEsRUFBRSxDQUFDQyxHQUFELEVBQU1DLEtBQU4sS0FBZ0I7QUFDeEIsUUFBSVAsT0FBTyxDQUFDUSxRQUFSLENBQWlCRCxLQUFqQixLQUEyQixDQUFDSCxnQkFBZ0IsQ0FBQ0ksUUFBakIsQ0FBMEJGLEdBQTFCLENBQWhDLEVBQWdFO0FBQzlELFlBQU0sSUFBSUcsS0FBSixDQUFXLGNBQWFGLEtBQU0sY0FBYUQsR0FBSSxZQUEvQyxDQUFOO0FBQ0Q7QUFDRjtBQUwrRCxDQUFULENBQVYsQ0FNNUNILEdBTjRDLENBQS9DOztBQVFBLE1BQU1PLGNBQWMsR0FBRyxDQUFDUCxHQUFELEVBQU07QUFBRUMsRUFBQUEsZ0JBQWdCLEdBQUc7QUFBckIsSUFBNEIsRUFBbEMsS0FBeUM7QUFDOURSLEVBQUFBLE1BQU0sQ0FBQ2UsS0FBSyxDQUFDQyxPQUFOLENBQWNSLGdCQUFkLENBQUQsRUFBa0MseUJBQWxDLENBQU47QUFDQUYsRUFBQUEsT0FBTyxDQUFDQyxHQUFELEVBQU07QUFBRUMsSUFBQUE7QUFBRixHQUFOLENBQVA7QUFDQSxTQUFPRCxHQUFQO0FBQ0QsQ0FKRDs7QUFNQSxNQUFNVSxJQUFJLEdBQUlDLEVBQUQsSUFBUSxDQUFDQyxNQUFELEVBQVMsR0FBR0MsSUFBWixLQUFxQkYsRUFBRSxDQUFDSixjQUFjLENBQUNLLE1BQUQsRUFBU0MsSUFBSSxDQUFDLENBQUQsQ0FBYixDQUFmLEVBQWtDLEdBQUdBLElBQXJDLENBQTVDOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLE1BQU0sQ0FDcEJDLE9BRGMsQ0FDTnRCLFVBRE0sRUFFZHVCLE1BRmMsQ0FHYixDQUFDQyxDQUFELEVBQUksQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLENBQUosS0FBZUwsTUFBTSxDQUFDTSxNQUFQLENBQWNILENBQWQsRUFBaUI7QUFBRSxHQUFDQyxDQUFELEdBQUtWLElBQUksQ0FBQ1csQ0FBRDtBQUFYLENBQWpCLENBSEYsRUFJYlgsSUFBSSxDQUFDZixVQUFELENBSlMsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcbmNvbnN0IG9iamVjdEhhc2ggPSByZXF1aXJlKCdvYmplY3QtaGFzaCcpO1xuY29uc3Qgb2JqZWN0U2NhbiA9IHJlcXVpcmUoJ29iamVjdC1zY2FuJyk7XG5cbmNvbnN0IElOVkFMSUQgPSBbdW5kZWZpbmVkXTtcbmNvbnN0IHNjYW5uZXIgPSAob2JqLCB7IGFsbG93ZWRVbmRlZmluZWQgfSkgPT4gb2JqZWN0U2NhbihbJyoqJ10sIHtcbiAgZmlsdGVyRm46IChrZXksIHZhbHVlKSA9PiB7XG4gICAgaWYgKElOVkFMSUQuaW5jbHVkZXModmFsdWUpICYmICFhbGxvd2VkVW5kZWZpbmVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQmFkIHZhbHVlIFwiJHt2YWx1ZX1cIiBmb3Iga2V5IFwiJHtrZXl9XCIgZGV0ZWN0ZWRgKTtcbiAgICB9XG4gIH1cbn0pKG9iaik7XG5cbmNvbnN0IHZhbGlkYXRlT2JqZWN0ID0gKG9iaiwgeyBhbGxvd2VkVW5kZWZpbmVkID0gW10gfSA9IHt9KSA9PiB7XG4gIGFzc2VydChBcnJheS5pc0FycmF5KGFsbG93ZWRVbmRlZmluZWQpLCAnSW52YWxpZCBPcHRpb24gUHJvdmlkZWQnKTtcbiAgc2Nhbm5lcihvYmosIHsgYWxsb3dlZFVuZGVmaW5lZCB9KTtcbiAgcmV0dXJuIG9iajtcbn07XG5cbmNvbnN0IHdyYXAgPSAoZm4pID0+IChvYmplY3QsIC4uLmFyZ3MpID0+IGZuKHZhbGlkYXRlT2JqZWN0KG9iamVjdCwgYXJnc1swXSksIC4uLmFyZ3MpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdFxuICAuZW50cmllcyhvYmplY3RIYXNoKVxuICAucmVkdWNlKFxuICAgIChwLCBbaywgdl0pID0+IE9iamVjdC5hc3NpZ24ocCwgeyBba106IHdyYXAodikgfSksXG4gICAgd3JhcChvYmplY3RIYXNoKVxuICApO1xuIl19 |
{ | ||
"name": "object-hash-strict", | ||
"version": "1.2.2", | ||
"version": "1.2.3", | ||
"description": "Wrapper around object-hash that restricts allowed values", | ||
@@ -44,4 +44,4 @@ "main": "lib/index.js", | ||
"@babel/register": "7.6.0", | ||
"@blackflux/eslint-plugin-rules": "1.3.9", | ||
"@blackflux/robo-config-plugin": "2.6.5", | ||
"@blackflux/eslint-plugin-rules": "1.3.12", | ||
"@blackflux/robo-config-plugin": "2.6.9", | ||
"babel-eslint": "10.0.3", | ||
@@ -56,4 +56,4 @@ "chai": "4.2.0", | ||
"eslint-plugin-mocha": "6.1.1", | ||
"js-gardener": "2.0.88", | ||
"node-tdd": "2.5.4", | ||
"js-gardener": "2.0.99", | ||
"node-tdd": "2.5.9", | ||
"nyc": "14.1.1", | ||
@@ -105,3 +105,2 @@ "semantic-release": "15.13.24" | ||
"dependencies": { | ||
"lodash.get": "4.4.2", | ||
"object-hash": "1.3.1", | ||
@@ -108,0 +107,0 @@ "object-scan": "10.0.13" |
2
26
9868
- Removedlodash.get@4.4.2
- Removedlodash.get@4.4.2(transitive)