object-hash-strict
Advanced tools
Comparing version 1.0.0 to 1.1.0
@@ -1,2 +0,26 @@ | ||
module.exports = (a, b) => a + b; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiYSIsImIiXSwibWFwcGluZ3MiOiJBQUFBQSxNQUFNLENBQUNDLE9BQVAsR0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsR0FBR0MsQ0FBL0IiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChhLCBiKSA9PiBhICsgYjtcbiJdfQ== | ||
const objectHash = require('object-hash'); | ||
const objectScan = require('object-scan'); | ||
const INVALID = [undefined]; | ||
const scanner = objectScan(['**'], { | ||
filterFn: (key, value) => { | ||
if (INVALID.includes(value)) { | ||
throw new Error(`Bad value "${value}" for key "${key}" detected`); | ||
} | ||
} | ||
}); | ||
const validateObject = obj => { | ||
scanner(obj); | ||
return obj; | ||
}; | ||
const wrap = fn => (object, ...args) => fn(validateObject(object), ...args); | ||
module.exports = Object.entries(objectHash).reduce((p, [k, v]) => { | ||
// eslint-disable-next-line no-param-reassign | ||
p[k] = wrap(v); | ||
return p; | ||
}, wrap(objectHash)); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJvYmplY3RIYXNoIiwicmVxdWlyZSIsIm9iamVjdFNjYW4iLCJJTlZBTElEIiwidW5kZWZpbmVkIiwic2Nhbm5lciIsImZpbHRlckZuIiwia2V5IiwidmFsdWUiLCJpbmNsdWRlcyIsIkVycm9yIiwidmFsaWRhdGVPYmplY3QiLCJvYmoiLCJ3cmFwIiwiZm4iLCJvYmplY3QiLCJhcmdzIiwibW9kdWxlIiwiZXhwb3J0cyIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJwIiwiayIsInYiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFVBQVUsR0FBR0MsT0FBTyxDQUFDLGFBQUQsQ0FBMUI7O0FBQ0EsTUFBTUMsVUFBVSxHQUFHRCxPQUFPLENBQUMsYUFBRCxDQUExQjs7QUFFQSxNQUFNRSxPQUFPLEdBQUcsQ0FBQ0MsU0FBRCxDQUFoQjtBQUNBLE1BQU1DLE9BQU8sR0FBR0gsVUFBVSxDQUFDLENBQUMsSUFBRCxDQUFELEVBQVM7QUFDakNJLEVBQUFBLFFBQVEsRUFBRSxDQUFDQyxHQUFELEVBQU1DLEtBQU4sS0FBZ0I7QUFDeEIsUUFBSUwsT0FBTyxDQUFDTSxRQUFSLENBQWlCRCxLQUFqQixDQUFKLEVBQTZCO0FBQzNCLFlBQU0sSUFBSUUsS0FBSixDQUFXLGNBQWFGLEtBQU0sY0FBYUQsR0FBSSxZQUEvQyxDQUFOO0FBQ0Q7QUFDRjtBQUxnQyxDQUFULENBQTFCOztBQVFBLE1BQU1JLGNBQWMsR0FBSUMsR0FBRCxJQUFTO0FBQzlCUCxFQUFBQSxPQUFPLENBQUNPLEdBQUQsQ0FBUDtBQUNBLFNBQU9BLEdBQVA7QUFDRCxDQUhEOztBQUtBLE1BQU1DLElBQUksR0FBSUMsRUFBRCxJQUFRLENBQUNDLE1BQUQsRUFBUyxHQUFHQyxJQUFaLEtBQXFCRixFQUFFLENBQUNILGNBQWMsQ0FBQ0ksTUFBRCxDQUFmLEVBQXlCLEdBQUdDLElBQTVCLENBQTVDOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsR0FBaUJDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlcEIsVUFBZixFQUEyQnFCLE1BQTNCLENBQWtDLENBQUNDLENBQUQsRUFBSSxDQUFDQyxDQUFELEVBQUlDLENBQUosQ0FBSixLQUFlO0FBQ2hFO0FBQ0FGLEVBQUFBLENBQUMsQ0FBQ0MsQ0FBRCxDQUFELEdBQU9WLElBQUksQ0FBQ1csQ0FBRCxDQUFYO0FBQ0EsU0FBT0YsQ0FBUDtBQUNELENBSmdCLEVBSWRULElBQUksQ0FBQ2IsVUFBRCxDQUpVLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgb2JqZWN0SGFzaCA9IHJlcXVpcmUoJ29iamVjdC1oYXNoJyk7XG5jb25zdCBvYmplY3RTY2FuID0gcmVxdWlyZSgnb2JqZWN0LXNjYW4nKTtcblxuY29uc3QgSU5WQUxJRCA9IFt1bmRlZmluZWRdO1xuY29uc3Qgc2Nhbm5lciA9IG9iamVjdFNjYW4oWycqKiddLCB7XG4gIGZpbHRlckZuOiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgIGlmIChJTlZBTElELmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCYWQgdmFsdWUgXCIke3ZhbHVlfVwiIGZvciBrZXkgXCIke2tleX1cIiBkZXRlY3RlZGApO1xuICAgIH1cbiAgfVxufSk7XG5cbmNvbnN0IHZhbGlkYXRlT2JqZWN0ID0gKG9iaikgPT4ge1xuICBzY2FubmVyKG9iaik7XG4gIHJldHVybiBvYmo7XG59O1xuXG5jb25zdCB3cmFwID0gKGZuKSA9PiAob2JqZWN0LCAuLi5hcmdzKSA9PiBmbih2YWxpZGF0ZU9iamVjdChvYmplY3QpLCAuLi5hcmdzKTtcblxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuZW50cmllcyhvYmplY3RIYXNoKS5yZWR1Y2UoKHAsIFtrLCB2XSkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgcFtrXSA9IHdyYXAodik7XG4gIHJldHVybiBwO1xufSwgd3JhcChvYmplY3RIYXNoKSk7XG4iXX0= |
{ | ||
"name": "object-hash-strict", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Wrapper around object-hash that restricts allowed values", | ||
@@ -57,2 +57,3 @@ "main": "lib/index.js", | ||
"js-gardener": "2.0.70", | ||
"node-tdd": "2.0.0", | ||
"nyc": "14.1.1", | ||
@@ -102,3 +103,7 @@ "semantic-release": "15.13.21" | ||
"lib" | ||
] | ||
], | ||
"dependencies": { | ||
"object-hash": "1.3.1", | ||
"object-scan": "10.0.9" | ||
} | ||
} |
@@ -0,1 +1,3 @@ | ||
# object-hash-strict | ||
[![Build Status](https://circleci.com/gh/blackflux/object-hash-strict.png?style=shield)](https://circleci.com/gh/blackflux/object-hash-strict) | ||
@@ -9,3 +11,20 @@ [![Test Coverage](https://img.shields.io/coveralls/blackflux/object-hash-strict/master.svg)](https://coveralls.io/github/blackflux/object-hash-strict?branch=master) | ||
[![Gardener](https://github.com/blackflux/js-gardener/blob/master/assets/badge.svg)](https://github.com/blackflux/js-gardener) | ||
# object-hash-strict | ||
Wrapper around object-hash that restricts allowed values | ||
## Install | ||
Install with [npm](https://www.npmjs.com/): | ||
$ npm install --save object-hash-strict | ||
## Usage | ||
Use exactly as [object-hash](https://www.npmjs.com/package/object-hash). | ||
## How it's different from object-hash | ||
- Will throw error if a "real" key has an unknown value | ||
- Does not currently deal with "real" path recursion | ||
** Real means a proper object hierarchy, not hidden properties, symbols, etc |
Trivial Package
Supply chain riskPackages less than 10 lines of code are easily copied into your own project and may not warrant the additional supply chain risk of an external dependency.
Found 1 instance in 1 package
8691
20
30
0
2
20
+ Addedobject-hash@1.3.1
+ Addedobject-scan@10.0.9
+ Addedobject-hash@1.3.1(transitive)
+ Addedobject-scan@10.0.9(transitive)