| { |
| "name": "js-select", |
| "description": "Traverse and modify objects with JSONSelect selectors", |
| "version": "0.6.0", |
| "author": { |
| "name": "Heather Arthur", |
| "email": "fayearthur@gmail.com" |
| }, |
| "repository": { |
| "type": "git", |
| "url": "http://github.com/harthur/js-select.git" |
| }, |
| "main": "./index", |
| "dependencies": { |
| "traverse": "0.4.x", |
| "JSONSelect": "0.2.1" |
| }, |
| "devDependencies": { |
| "nomnom": "0.6.x", |
| "color": "0.3.x" |
| }, |
| "keywords": [ |
| "json" |
| ], |
| "readme": "# js-select\n\njs-select uses [js-traverse](https://github.com/substack/js-traverse) to traverse and modify JavaScript object nodes that match [JSONSelect](http://jsonselect.org/) selectors.\n\n```javascript\nvar people = {\n george: {\n age : 35,\n movie: \"Repo Man\"\n },\n mary: {\n age: 15,\n movie: \"Twilight\"\n }\n};\n```\n\n### .forEach(fn)\n\nIterates over all matching nodes in the object. The callback gets a special `this` context. See [js-traverse](https://github.com/substack/js-traverse) for all the things you can do to modify and inspect the node with this context. In addition, js-select adds a `this.matches()` which will test if the node matches a selector:\n\n```javascript\nselect(people).forEach(function(node) {\n if (this.matches(\".mary > .movie\")) {\n this.remove();\n }\n});\n```\n\n### .nodes()\n\nReturns all matching nodes from the object.\n\n```javascript\nselect(people, \".age\").nodes(); // [35, 15]\n```\n\n### .remove()\n\nRemoves matching elements from the original object.\n\n```javascript\nselect(people, \".age\").remove();\n```\n\n### .update(fn)\n\nUpdates all matching nodes using the given callback.\n\n```javascript\nselect(people, \".age\").update(function(age) {\n return age - 5;\n});\n```\n\n### .condense()\n\nReduces the original object down to only the matching elements (the hierarchy is maintained).\n\n```javascript\nselect(people, \".age\").condense();\n```\n\n```javascript\n{\n george: { age: 35 },\n mary: { age: 15 }\n}\n```\n\n## Selectors\n\njs-select supports the following [JSONSelect](http://jsonselect.org/) selectors:\n\n```\n*\ntype\n.key\nancestor selector\nparent > selector\nsibling ~ selector\nselector1, selector2\n:root\n:nth-child(n)\n:nth-child(even)\n:nth-child(odd)\n:nth-last-child(n)\n:first-child\n:last-child\n:only-child\n:has(selector)\n:val(\"string\")\n:contains(\"substring\")\n```\n\nSee [details](http://jsonselect.org/#docs/overview) on each selector, and [try them](http://jsonselect.org/#tryit) out on the JSONSelect website.\n\n## Install\n\nFor [node](http://nodejs.org), install with [npm](http://npmjs.org):\n\n```bash\nnpm install js-select\n```\n\nFor the browser, download the select.js file or fetch the latest version from [npm](http://npmjs.org) and build a browser file using [browserify](https://github.com/substack/node-browserify):\n\n```bash\nnpm install browserify -g\nnpm install js-select\n\nbrowserify --require js-select --outfile select.js\n```\nthis will build a browser file with `require('js-select')` available.\n\n## Propers\n\nHuge thanks to [@substack](http://github.com/substack) for the ingenious [js-traverse](https://github.com/substack/js-traverse) and [@lloyd](https://github.com/lloyd) for the ingenious [JSONSelect spec](http://http://jsonselect.org/) and [selector parser](http://search.npmjs.org/#/JSONSelect).", |
| "readmeFilename": "README.md", |
| "_id": "js-select@0.6.0", |
| "dist": { |
| "shasum": "c284e22824d5927aec962dcdf247174aefb0d190", |
| "tarball": "http://registry.npmjs.org/js-select/-/js-select-0.6.0.tgz" |
| }, |
| "_from": "js-select@~0.6.0", |
| "_npmVersion": "1.2.14", |
| "_npmUser": { |
| "name": "harth", |
| "email": "fayearthur@gmail.com" |
| }, |
| "maintainers": [ |
| { |
| "name": "harth", |
| "email": "fayearthur@gmail.com" |
| } |
| ], |
| "directories": {}, |
| "_shasum": "c284e22824d5927aec962dcdf247174aefb0d190", |
| "_resolved": "https://registry.npmjs.org/js-select/-/js-select-0.6.0.tgz", |
| "bugs": { |
| "url": "https://github.com/harthur/js-select/issues" |
| }, |
| "homepage": "https://github.com/harthur/js-select" |
| } |