An object crawler/property search library that works on nearly all JavaScript platforms1.
Spotlight.js is part of the BestieJS "Best in Class" module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, and plenty of documentation.
The documentation for Spotlight.js can be viewed here: /doc/README.md
For a list of upcoming features, check out our roadmap.
Spotlight.jsâ only hard dependency is Lo-Dash.
In a browser:
<script src="lodash.js"></script>
<script src="spotlight.js"></script>
Via npm:
npm install spotlight
var spotlight = require('spotlight');
In Rhino:
load('spotlight.js');
In an AMD loader like RequireJS:
require({
'paths': {
'spotlight': 'path/to/spotlight',
'lodash': 'path/to/lodash'
}
},
['spotlight'], function(spotlight) {
spotlight.byKind('constructor');
});
Usage example:
// find all "length" properties
spotlight.byName('length');
// or find all "map" properties on jQuery
spotlight.byName('map', { 'object': jQuery, 'path': '$' });
// or all properties with `jQuery` objects
spotlight.byKind(jQuery);
// or all properties with `RegExp` values
spotlight.byKind('RegExp');
// or all properties with `null` values
spotlight.byKind('null');
// or all properties with `undefined` values
spotlight.byKind('undefined');
// or all constructors
spotlight.byKind('constructor');
// or all properties with the value `0`
spotlight.byValue(0);
// or all properties containing "oo" in their name
spotlight.custom(function(value, key) { return key.indexOf('oo') > -1; });
// or all properties with falsey values
spotlight.custom(function(value) { return !value; });
- Spotlight.js has been tested in at least Chrome 5
32, Firefox 227, IE 6-11, Opera 9.2519, Safari 3-7, Node.js 0.6.210.10.26, Narwhal 0.3.2, PhantomJS 1.9.2, RingoJS 0.9, and Rhino 1.7RC5. â©
John-David Dalton |