JSONSelect
JSONSelect copied to clipboard
Usage is not clear.
Usage is not clear, I suggest adding it to the Readme.
Not the most obvious place to look for it, but usage is described in comments at the top of the debug js file.
/*
* This is the JSONSelect reference implementation, in javascript. This
* code is designed to run under node.js or in a browser. In the former
* case, the "public API" is exposed as properties on the `export` object,
* in the latter, as properties on `window.JSONSelect`. That API is thus:
*
* Selector formating and parameter escaping:
*
* Anywhere where a string selector is selected, it may be followed by an
* optional array of values. When provided, they will be escaped and
* inserted into the selector string properly escaped. i.e.:
*
* .match(':has(?)', [ 'foo' ], {})
*
* would result in the seclector ':has("foo")' being matched against {}.
*
* This feature makes dynamically generated selectors more readable.
*
* .match(selector, [ values ], object)
*
* Parses and "compiles" the selector, then matches it against the object
* argument. Matches are returned in an array. Throws an error when
* there's a problem parsing the selector.
*
* .forEach(selector, [ values ], object, callback)
*
* Like match, but rather than returning an array, invokes the provided
* callback once per match as the matches are discovered.
*
* .compile(selector, [ values ])
*
* Parses the selector and compiles it to an internal form, and returns
* an object which contains the compiled selector and has two properties:
* `match` and `forEach`. These two functions work identically to the
* above, except they do not take a selector as an argument and instead
* use the compiled selector.
*
* For cases where a complex selector is repeatedly used, this method
* should be faster as it will avoid recompiling the selector each time.
*/
Shouldn''t this be in the README? :)