xray.js
Recursively scan JavaScript objects' properties. Useful for testing to see whether an object contains something of interest. If you're using Google Chrome, consider loading this via JSKit.
Usage:
xray(object, scanner)
returns an array of JSONPaths to (nested) object values that are matched by the scanner
someObj = propA: 1 propB: "find me" propC: propA: "find me" propB: "can you" "find me" "too" propC: tooDeep: propA: "hello... can you find me" "propD-find me": "OK" ; // Scan the object with a string:paths = ; // paths === ["$.propB", "$.propC.propA", "$.propC['propD-find me']"] // Or, with a RegExp object:paths = // Or, with a custom function that indicates a match by returning a truthy value:paths = ;
Todo:
- handle DOM Node scanning better
Changes:
0.5
- node module now directly exports a function (ie.
var xray = require('xray')
vs.var xray = require('xray').xray
) - JSONPath output
- added
properties
argument to custom scanner callback