object-scan
Advanced tools
Comparing version 1.1.5 to 1.1.6
const parser = require("./util/parser"); | ||
module.exports = (needles, valueFn = undefined) => { | ||
module.exports = (needles, valueFn = undefined, joined = true) => { | ||
const search = needles.map(parser); | ||
const find = (haystack, checks, pathIn = undefined) => { | ||
const find = (haystack, checks, pathIn = []) => { | ||
const result = []; | ||
@@ -11,3 +11,6 @@ | ||
if (valueFn === undefined || valueFn(haystack)) { | ||
result.push(pathIn); | ||
result.push(joined ? pathIn.reduce((p, c) => { | ||
const isNumber = typeof c === "number"; | ||
return `${p}${p === "" || isNumber ? "" : "."}${isNumber ? `[${c}]` : c}`; | ||
}, "") : pathIn); | ||
} | ||
@@ -20,3 +23,3 @@ } | ||
checks.filter(check => check.length !== 0).forEach(check => { | ||
const pathOut = `${pathIn === undefined ? "" : pathIn}[${i}]`; | ||
const pathOut = [].concat(...pathIn).concat(i); | ||
@@ -34,3 +37,3 @@ if (check[0] === "**") { | ||
const escapedKey = key.replace(/[,.*[\]{}]/g, "\\$&"); | ||
const pathOut = pathIn === undefined ? escapedKey : `${pathIn}.${escapedKey}`; | ||
const pathOut = [].concat(...pathIn).concat(key); | ||
@@ -52,2 +55,2 @@ if (check[0] === "**") { | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwYXJzZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm5lZWRsZXMiLCJ2YWx1ZUZuIiwidW5kZWZpbmVkIiwic2VhcmNoIiwibWFwIiwiZmluZCIsImhheXN0YWNrIiwiY2hlY2tzIiwicGF0aEluIiwicmVzdWx0Iiwic29tZSIsImNoZWNrIiwibGVuZ3RoIiwicHVzaCIsIk9iamVjdCIsIkFycmF5IiwiaXNBcnJheSIsImkiLCJmaWx0ZXIiLCJmb3JFYWNoIiwicGF0aE91dCIsInNsaWNlIiwiaW5kZXhPZiIsImtleXMiLCJrZXkiLCJlc2NhcGVkS2V5IiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTUEsU0FBU0MsUUFBUSxlQUFSLENBQWY7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUIsQ0FBQ0MsT0FBRCxFQUFVQyxVQUFVQyxTQUFwQixLQUFrQztBQUNqRCxRQUFNQyxTQUFTSCxRQUFRSSxHQUFSLENBQVlSLE1BQVosQ0FBZjs7QUFFQSxRQUFNUyxPQUFPLENBQUNDLFFBQUQsRUFBV0MsTUFBWCxFQUFtQkMsU0FBU04sU0FBNUIsS0FBMEM7QUFDckQsVUFBTU8sU0FBUyxFQUFmOztBQUNBLFFBQUlGLE9BQU9HLElBQVAsQ0FBWUMsU0FBU0EsTUFBTUMsTUFBTixLQUFpQixDQUF0QyxDQUFKLEVBQThDO0FBQzVDLFVBQUlYLFlBQVlDLFNBQVosSUFBeUJELFFBQVFLLFFBQVIsQ0FBN0IsRUFBZ0Q7QUFDOUNHLGVBQU9JLElBQVAsQ0FBWUwsTUFBWjtBQUNEO0FBQ0Y7O0FBQ0QsUUFBSUYsb0JBQW9CUSxNQUF4QixFQUFnQztBQUM5QixVQUFJQyxNQUFNQyxPQUFOLENBQWNWLFFBQWQsQ0FBSixFQUE2QjtBQUMzQixhQUFLLElBQUlXLElBQUksQ0FBYixFQUFnQkEsSUFBSVgsU0FBU00sTUFBN0IsRUFBcUNLLEtBQUssQ0FBMUMsRUFBNkM7QUFDM0NWLGlCQUNHVyxNQURILENBQ1VQLFNBQVNBLE1BQU1DLE1BQU4sS0FBaUIsQ0FEcEMsRUFFR08sT0FGSCxDQUVZUixLQUFELElBQVc7QUFDbEIsa0JBQU1TLFVBQVcsR0FBRVosV0FBV04sU0FBWCxHQUF1QixFQUF2QixHQUE0Qk0sTUFBTyxJQUFHUyxDQUFFLEdBQTNEOztBQUNBLGdCQUFJTixNQUFNLENBQU4sTUFBYSxJQUFqQixFQUF1QjtBQUNyQkYscUJBQU9JLElBQVAsQ0FBWSxHQUFHUixLQUFLQyxTQUFTVyxDQUFULENBQUwsRUFBa0IsQ0FBQ04sS0FBRCxFQUFRQSxNQUFNVSxLQUFOLENBQVksQ0FBWixDQUFSLENBQWxCLEVBQTJDRCxPQUEzQyxDQUFmO0FBQ0QsYUFGRCxNQUVPLElBQ0xULE1BQU0sQ0FBTixNQUFhLEtBQWIsSUFDQUEsTUFBTSxDQUFOLE1BQWMsSUFBR00sQ0FBRSxHQURuQixJQUVDTixNQUFNLENBQU4sYUFBb0JJLEtBQXBCLElBQTZCSixNQUFNLENBQU4sRUFBU1csT0FBVCxDQUFrQixJQUFHTCxDQUFFLEdBQXZCLE1BQStCLENBQUMsQ0FIekQsRUFJTDtBQUNBUixxQkFBT0ksSUFBUCxDQUFZLEdBQUdSLEtBQUtDLFNBQVNXLENBQVQsQ0FBTCxFQUFrQixDQUFDTixNQUFNVSxLQUFOLENBQVksQ0FBWixDQUFELENBQWxCLEVBQW9DRCxPQUFwQyxDQUFmO0FBQ0Q7QUFDRixXQWJIO0FBY0Q7QUFDRixPQWpCRCxNQWlCTztBQUNMTixlQUFPUyxJQUFQLENBQVlqQixRQUFaLEVBQXNCYSxPQUF0QixDQUErQkssR0FBRCxJQUFTO0FBQ3JDakIsaUJBQ0dXLE1BREgsQ0FDVVAsU0FBU0EsTUFBTUMsTUFBTixLQUFpQixDQURwQyxFQUVHTyxPQUZILENBRVlSLEtBQUQsSUFBVztBQUNsQixrQkFBTWMsYUFBYUQsSUFBSUUsT0FBSixDQUFZLGFBQVosRUFBMkIsTUFBM0IsQ0FBbkI7QUFDQSxrQkFBTU4sVUFBVVosV0FBV04sU0FBWCxHQUF1QnVCLFVBQXZCLEdBQXFDLEdBQUVqQixNQUFPLElBQUdpQixVQUFXLEVBQTVFOztBQUNBLGdCQUFJZCxNQUFNLENBQU4sTUFBYSxJQUFqQixFQUF1QjtBQUNyQkYscUJBQU9JLElBQVAsQ0FBWSxHQUFHUixLQUFLQyxTQUFTa0IsR0FBVCxDQUFMLEVBQW9CLENBQUNiLEtBQUQsRUFBUUEsTUFBTVUsS0FBTixDQUFZLENBQVosQ0FBUixDQUFwQixFQUE2Q0QsT0FBN0MsQ0FBZjtBQUNELGFBRkQsTUFFTyxJQUNMVCxNQUFNLENBQU4sTUFBYSxHQUFiLElBQ0FBLE1BQU0sQ0FBTixNQUFhYyxVQURiLElBRUNkLE1BQU0sQ0FBTixhQUFvQkksS0FBcEIsSUFBNkJKLE1BQU0sQ0FBTixFQUFTVyxPQUFULENBQWlCRyxVQUFqQixNQUFpQyxDQUFDLENBSDNELEVBSUw7QUFDQWhCLHFCQUFPSSxJQUFQLENBQVksR0FBR1IsS0FBS0MsU0FBU2tCLEdBQVQsQ0FBTCxFQUFvQixDQUFDYixNQUFNVSxLQUFOLENBQVksQ0FBWixDQUFELENBQXBCLEVBQXNDRCxPQUF0QyxDQUFmO0FBQ0Q7QUFDRixXQWRIO0FBZUQsU0FoQkQ7QUFpQkQ7QUFDRjs7QUFDRCxXQUFPWCxNQUFQO0FBQ0QsR0E5Q0Q7O0FBZ0RBLFNBQU9ILFlBQVlELEtBQUtDLFFBQUwsRUFBZUgsTUFBZixDQUFuQjtBQUNELENBcEREIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFyc2VyID0gcmVxdWlyZShcIi4vdXRpbC9wYXJzZXJcIik7XG5cbm1vZHVsZS5leHBvcnRzID0gKG5lZWRsZXMsIHZhbHVlRm4gPSB1bmRlZmluZWQpID0+IHtcbiAgY29uc3Qgc2VhcmNoID0gbmVlZGxlcy5tYXAocGFyc2VyKTtcblxuICBjb25zdCBmaW5kID0gKGhheXN0YWNrLCBjaGVja3MsIHBhdGhJbiA9IHVuZGVmaW5lZCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmIChjaGVja3Muc29tZShjaGVjayA9PiBjaGVjay5sZW5ndGggPT09IDApKSB7XG4gICAgICBpZiAodmFsdWVGbiA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlRm4oaGF5c3RhY2spKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHBhdGhJbik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXlzdGFjayBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaGF5c3RhY2spKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGF5c3RhY2subGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICBjaGVja3NcbiAgICAgICAgICAgIC5maWx0ZXIoY2hlY2sgPT4gY2hlY2subGVuZ3RoICE9PSAwKVxuICAgICAgICAgICAgLmZvckVhY2goKGNoZWNrKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGhPdXQgPSBgJHtwYXRoSW4gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiBwYXRoSW59WyR7aX1dYDtcbiAgICAgICAgICAgICAgaWYgKGNoZWNrWzBdID09PSBcIioqXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5maW5kKGhheXN0YWNrW2ldLCBbY2hlY2ssIGNoZWNrLnNsaWNlKDEpXSwgcGF0aE91dCkpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGNoZWNrWzBdID09PSBcIlsqXVwiIHx8XG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IGBbJHtpfV1gIHx8XG4gICAgICAgICAgICAgICAgKGNoZWNrWzBdIGluc3RhbmNlb2YgQXJyYXkgJiYgY2hlY2tbMF0uaW5kZXhPZihgWyR7aX1dYCkgIT09IC0xKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5maW5kKGhheXN0YWNrW2ldLCBbY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3Qua2V5cyhoYXlzdGFjaykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgY2hlY2tzXG4gICAgICAgICAgICAuZmlsdGVyKGNoZWNrID0+IGNoZWNrLmxlbmd0aCAhPT0gMClcbiAgICAgICAgICAgIC5mb3JFYWNoKChjaGVjaykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBlc2NhcGVkS2V5ID0ga2V5LnJlcGxhY2UoL1ssLipbXFxde31dL2csIFwiXFxcXCQmXCIpO1xuICAgICAgICAgICAgICBjb25zdCBwYXRoT3V0ID0gcGF0aEluID09PSB1bmRlZmluZWQgPyBlc2NhcGVkS2V5IDogYCR7cGF0aElufS4ke2VzY2FwZWRLZXl9YDtcbiAgICAgICAgICAgICAgaWYgKGNoZWNrWzBdID09PSBcIioqXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5maW5kKGhheXN0YWNrW2tleV0sIFtjaGVjaywgY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IFwiKlwiIHx8XG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IGVzY2FwZWRLZXkgfHxcbiAgICAgICAgICAgICAgICAoY2hlY2tbMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBjaGVja1swXS5pbmRleE9mKGVzY2FwZWRLZXkpICE9PSAtMSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uZmluZChoYXlzdGFja1trZXldLCBbY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICByZXR1cm4gaGF5c3RhY2sgPT4gZmluZChoYXlzdGFjaywgc2VhcmNoKTtcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwYXJzZXIiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIm5lZWRsZXMiLCJ2YWx1ZUZuIiwidW5kZWZpbmVkIiwiam9pbmVkIiwic2VhcmNoIiwibWFwIiwiZmluZCIsImhheXN0YWNrIiwiY2hlY2tzIiwicGF0aEluIiwicmVzdWx0Iiwic29tZSIsImNoZWNrIiwibGVuZ3RoIiwicHVzaCIsInJlZHVjZSIsInAiLCJjIiwiaXNOdW1iZXIiLCJPYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJpIiwiZmlsdGVyIiwiZm9yRWFjaCIsInBhdGhPdXQiLCJjb25jYXQiLCJzbGljZSIsImluZGV4T2YiLCJrZXlzIiwia2V5IiwiZXNjYXBlZEtleSIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiJBQUFBLE1BQU1BLFNBQVNDLFFBQVEsZUFBUixDQUFmOztBQUVBQyxPQUFPQyxPQUFQLEdBQWlCLENBQUNDLE9BQUQsRUFBVUMsVUFBVUMsU0FBcEIsRUFBK0JDLFNBQVMsSUFBeEMsS0FBaUQ7QUFDaEUsUUFBTUMsU0FBU0osUUFBUUssR0FBUixDQUFZVCxNQUFaLENBQWY7O0FBRUEsUUFBTVUsT0FBTyxDQUFDQyxRQUFELEVBQVdDLE1BQVgsRUFBbUJDLFNBQVMsRUFBNUIsS0FBbUM7QUFDOUMsVUFBTUMsU0FBUyxFQUFmOztBQUNBLFFBQUlGLE9BQU9HLElBQVAsQ0FBWUMsU0FBU0EsTUFBTUMsTUFBTixLQUFpQixDQUF0QyxDQUFKLEVBQThDO0FBQzVDLFVBQUlaLFlBQVlDLFNBQVosSUFBeUJELFFBQVFNLFFBQVIsQ0FBN0IsRUFBZ0Q7QUFDOUNHLGVBQU9JLElBQVAsQ0FBWVgsU0FBU00sT0FBT00sTUFBUCxDQUFjLENBQUNDLENBQUQsRUFBSUMsQ0FBSixLQUFVO0FBQzNDLGdCQUFNQyxXQUFXLE9BQU9ELENBQVAsS0FBYSxRQUE5QjtBQUNBLGlCQUFRLEdBQUVELENBQUUsR0FBRUEsTUFBTSxFQUFOLElB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LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGFyc2VyID0gcmVxdWlyZShcIi4vdXRpbC9wYXJzZXJcIik7XG5cbm1vZHVsZS5leHBvcnRzID0gKG5lZWRsZXMsIHZhbHVlRm4gPSB1bmRlZmluZWQsIGpvaW5lZCA9IHRydWUpID0+IHtcbiAgY29uc3Qgc2VhcmNoID0gbmVlZGxlcy5tYXAocGFyc2VyKTtcblxuICBjb25zdCBmaW5kID0gKGhheXN0YWNrLCBjaGVja3MsIHBhdGhJbiA9IFtdKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKGNoZWNrcy5zb21lKGNoZWNrID0+IGNoZWNrLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIGlmICh2YWx1ZUZuID09PSB1bmRlZmluZWQgfHwgdmFsdWVGbihoYXlzdGFjaykpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goam9pbmVkID8gcGF0aEluLnJlZHVjZSgocCwgYykgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gdHlwZW9mIGMgPT09IFwibnVtYmVyXCI7XG4gICAgICAgICAgcmV0dXJuIGAke3B9JHtwID09PSBcIlwiIHx8IGlzTnVtYmVyID8gXCJcIiA6IFwiLlwifSR7aXNOdW1iZXIgPyBgWyR7Y31dYCA6IGN9YDtcbiAgICAgICAgfSwgXCJcIikgOiBwYXRoSW4pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoaGF5c3RhY2sgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGhheXN0YWNrKSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhheXN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgY2hlY2tzXG4gICAgICAgICAgICAuZmlsdGVyKGNoZWNrID0+IGNoZWNrLmxlbmd0aCAhPT0gMClcbiAgICAgICAgICAgIC5mb3JFYWNoKChjaGVjaykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBwYXRoT3V0ID0gW10uY29uY2F0KC4uLnBhdGhJbikuY29uY2F0KGkpO1xuICAgICAgICAgICAgICBpZiAoY2hlY2tbMF0gPT09IFwiKipcIikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmZpbmQoaGF5c3RhY2tbaV0sIFtjaGVjaywgY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IFwiWypdXCIgfHxcbiAgICAgICAgICAgICAgICBjaGVja1swXSA9PT0gYFske2l9XWAgfHxcbiAgICAgICAgICAgICAgICAoY2hlY2tbMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBjaGVja1swXS5pbmRleE9mKGBbJHtpfV1gKSAhPT0gLTEpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKC4uLmZpbmQoaGF5c3RhY2tbaV0sIFtjaGVjay5zbGljZSgxKV0sIHBhdGhPdXQpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGhheXN0YWNrKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBjaGVja3NcbiAgICAgICAgICAgIC5maWx0ZXIoY2hlY2sgPT4gY2hlY2subGVuZ3RoICE9PSAwKVxuICAgICAgICAgICAgLmZvckVhY2goKGNoZWNrKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVzY2FwZWRLZXkgPSBrZXkucmVwbGFjZSgvWywuKltcXF17fV0vZywgXCJcXFxcJCZcIik7XG4gICAgICAgICAgICAgIGNvbnN0IHBhdGhPdXQgPSBbXS5jb25jYXQoLi4ucGF0aEluKS5jb25jYXQoa2V5KTtcbiAgICAgICAgICAgICAgaWYgKGNoZWNrWzBdID09PSBcIioqXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaCguLi5maW5kKGhheXN0YWNrW2tleV0sIFtjaGVjaywgY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IFwiKlwiIHx8XG4gICAgICAgICAgICAgICAgY2hlY2tbMF0gPT09IGVzY2FwZWRLZXkgfHxcbiAgICAgICAgICAgICAgICAoY2hlY2tbMF0gaW5zdGFuY2VvZiBBcnJheSAmJiBjaGVja1swXS5pbmRleE9mKGVzY2FwZWRLZXkpICE9PSAtMSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goLi4uZmluZChoYXlzdGFja1trZXldLCBbY2hlY2suc2xpY2UoMSldLCBwYXRoT3V0KSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICByZXR1cm4gaGF5c3RhY2sgPT4gZmluZChoYXlzdGFjaywgc2VhcmNoKTtcbn07XG4iXX0= |
{ | ||
"name": "object-scan", | ||
"version": "1.1.5", | ||
"version": "1.1.6", | ||
"description": "Find Keys using Wildcard matching and optional value function.", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -31,2 +31,12 @@ # Object-Scan | ||
### Value Function | ||
Constructor takes second value function parameter which gets passed in the value of the key and is expected to return true or false. | ||
Only results where the value function returns true are returned. | ||
### Joined | ||
When dealing with special characters it might be desired to not have the output merged. In this case | ||
the constructor takes a third option which can be set to false to return each key as a list. | ||
## Examples | ||
@@ -66,2 +76,4 @@ | ||
// => ["a.b.c", "a.e.f"] | ||
objectScan(["a.*.{c,f}"], () => true, false)(obj); | ||
// => [["a", "b", "c"], ["a", "e", "f"]] | ||
@@ -91,1 +103,3 @@ // list filter | ||
be escaped if they should be matched in a key: `[`, `]`, `{`, `}`, `,`, `.` and `*`. | ||
When dealing with special characters the `joined` option might be desirable to set to `false`. |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19722
58
103