Skip to content
This repository was archived by the owner on Apr 11, 2024. It is now read-only.
/ spotlight.js Public archive

An object crawler/property search library.

License

Notifications You must be signed in to change notification settings

bestiejs/spotlight.js

Folders and files

NameName
Last commit message
Last commit date
Jan 26, 2016
Jan 1, 2016
Jan 1, 2016
May 16, 2014
Mar 17, 2014
Jun 12, 2017
Mar 24, 2015
Jul 3, 2018
Aug 22, 2016
Jun 12, 2017
Jul 3, 2018
Jul 3, 2018

Repository files navigation

Spotlight.js v1.2.0

An object crawler/property search library that works on nearly all JavaScript platforms.

Documentation

Installation

Spotlight.js’ only hard dependency is lodash.

In a browser:

<script src="lodash.js"></script>
<script src="spotlight.js"></script>

In an AMD loader:

require({
  'paths': {
    'spotlight': 'path/to/spotlight',
    'lodash': 'path/to/lodash'
  }
},
['spotlight'], function(spotlight) {/*…*/});

Using npm:

$ npm i --save spotlight

In Node.js:

var spotlight = require('spotlight');

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; });

Support

Tested in Chrome 46-47, Firefox 42-43, IE 9-11, Edge 13, Safari 8-9, Node.js 0.10-6, & PhantomJS 1.9.8.

BestieJS

Spotlight.js is part of the BestieJS “Best in Class” module collection. This means we promote solid browser/environment support, ES5+ precedents, unit testing, & plenty of documentation.