{"_id":"object-tree","_rev":"17-8bd9c91618c87b985a4cee9b1a399129","name":"object-tree","description":"lookup js objects values from a flat structure","dist-tags":{"latest":"0.2.5"},"versions":{"0.1.0":{"name":"object-tree","version":"0.1.0","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.1.0","dist":{"shasum":"0c25be50849dd3d6014187e837f4170ebd9ae8f8","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.1.0.tgz","integrity":"sha512-ZmH2PU88Ts7TzzYFSYu290pivG60N/nHg5gA214Rniprnprc5t3K7WHDufdV4OEF8MmJKyI4LhfPMLHKFbSIuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+Ot+MgmMx6CG2lQgHrj4bU50lEzaFI5mFUBnk6VldnAIhANqsMxUvvpfOY50atL6cw0FDc7qTbLWRlv3Hi/fjC8xj"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"}]},"0.2.0":{"name":"object-tree","version":"0.2.0","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.2.0","dist":{"shasum":"cdc4a10f668a9f1182567716a3d9187f5eec75df","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.0.tgz","integrity":"sha512-5smn8px4L0kJf3Ew1lYbdNGclA/Oez4Qf9S7dBs9AE+3xnsunkIzLIVBpgHHdfGWGLu5rWQUsvkdL3BZcVCMtw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChgt2u+gMGNf3wJhCvqAWnXjfPwUo93yMHImIRWZumrwIgOgZkdJb8rUV5To4k8lsUSF+UIe+y0PThGZRAEWG8g3g="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]},"0.2.1":{"name":"object-tree","version":"0.2.1","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.2.1","dist":{"shasum":"c39c14f0c8e4e0380a7eddb21ff745dd7a3455a3","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.1.tgz","integrity":"sha512-EDBqLmNM/EemFbqVb2NLcS9D7F557b2YuN6Rvb5qGK0w8o235HNdp2YFIbzZzPzXFkAfKbjW+BL3e0UibaG2vg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLs8AyXB4PyfEQ0DurfB3xELigJFCX0kC/H2F3jDT/KAiAnghUi+Mw+u3MdMU7+ucCrWloVXP6wpZXYEFRF3LKTBw=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]},"0.2.2":{"name":"object-tree","version":"0.2.2","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.2.2","dist":{"shasum":"fa97d2382fa32292f56405a5d7a99c1ce7b54e9c","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.2.tgz","integrity":"sha512-gGTOkFfSkebiZ7prellUAr8GSpbfkDZ1SGeab1DSg6QqTtTD3zz/CiuHf5x2PI73Y6mfl/UQQUHMpTWE3V/+0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSjpn4JDSOo8SOCmMHsL+TXqgF2f04UK0F3y+GgOjPFgIgMXDg1A88FI8GCFIdF9K2t//JkvGe3TA/Ka5iD5xCZT4="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]},"0.2.3":{"name":"object-tree","version":"0.2.3","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.2.3","dist":{"shasum":"92ca8cdc86c69028a7abc10d04c9d43a2d528bcd","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.3.tgz","integrity":"sha512-AKi079P5y5zchglrdl/gylgeodNs75CyjpLHU0u71BdrT3eRcP8gIZs5fyayM8kCi3z80naQ7rbmmuOM8AVAgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1oFCyLMLFpRb9VbWKR2f92vswi4uoT5Pcrm5ckN3lmgIgAihwBnfIOq4In5fXi4NVV7h1qYlloVmqmRhuNbxEP0c="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]},"0.2.4":{"name":"object-tree","version":"0.2.4","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"underscore":"^1.6.0"},"devDependencies":{"mocha":"^1.17.1"},"_id":"object-tree@0.2.4","dist":{"shasum":"778af677172702f7b70e4e660a71251c1cec46a8","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.4.tgz","integrity":"sha512-SHMhzqwPbIaUiIxvrr9qpoEtvW9vZZ+yb6Gb5HhV5eGlVGPC2LQ6oVxB5Fu0cTnQlBSckffUz4Vllm7tgJefig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYw35DxNPRL1U4zXPlGP/jQHyV1bgNLN3FF1z7W1ZC9gIgP06tmu65z2euz7sTuZbweVI0yMbsku4dXTx29mJIJMQ="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]},"0.2.5":{"name":"object-tree","version":"0.2.5","description":"lookup js objects values from a flat structure","main":"index.js","scripts":{"test":"mocha test --reporter spec"},"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"keywords":["tree","object","lookup"],"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"homepage":"https://github.com/nherment/node-object-tree","dependencies":{"lodash":"2.4.1"},"devDependencies":{"mocha":"1.17.1"},"_id":"object-tree@0.2.5","dist":{"shasum":"3f0807ada5d13360c8388393350868440f6033f8","tarball":"https://registry.npmjs.org/object-tree/-/object-tree-0.2.5.tgz","integrity":"sha512-IR9KVrO8n1ExfxsH4SfLnlPdNh8sbnrXXplv/VFEqmnnOwme4S7Ds7RwukN6od9whWucZpQj9rXdy63UNrtknQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9IIUHvDFGCtXDHj9MCCe3Fo9rKw34OaUQMXuJjVTHVAiEAwiwRy7LHk4nu0vLDlbBZ7xUJ4kWymnSg2CCQTKRUgms="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"nherment","email":"nherment@gmail.com"},"maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}]}},"readme":"\n[![Build Status](https://api.travis-ci.org/nherment/node-object-tree.png?branch=master)](https://travis-ci.org/nherment/node-object-tree)\n\n\n```npm install --save object-tree```\n\n# value lookup\n\n### string\n\n    var data = {\n      food: {\n        caramel: {\n          tastes: {\n            chocolate: 1.234\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree()\n\n    var actual = ot.lookup('food.caramel.tastes.chocolate', data)\n    console.log(actual) // 1.234\n\n### string with custom separator\n\n    var data = {\n      food: {\n        caramel: {\n          tastes: {\n            chocolate: 1.234\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree({seperator: '::'})\n\n    var actual = ot.lookup('food::caramel::tastes::chocolate', data)\n    console.log(actual) // 1.234\n\n\n### array\n\n    var data = {\n      food: {\n        caramel: {\n          tastes: {\n            chocolate: 1.234\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree()\n\n    var actual = ot.lookup(['food','caramel','tastes','chocolate','smells','code'], data)\n    console.log(actual) // 1.234\n\n### filter\n\n    var data = {\n      food: {\n        caramel: {\n          tastes: {\n            chocolate: 1.234\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree()\n\n    var actual = ot.lookup({'food':'caramel','tastes':'chocolate'}, data)\n    console.log(actual) // 1.234\n\n### filter with wildcard\n\n    var data = {\n      food: {\n        caramel: {\n          tastes: {\n            '*': 444,\n            chocolate: 1.234\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree({\n      wildcard: '*'\n    })\n\n    var actual = ot.lookup({'food':'caramel','tastes':'flower'}, data)\n    console.log(actual) // 444\n\n### template only\n\n    var ot = new ObjectTree()\n\n    var actual = ot.lookupTemplate('{food.caramel.tastes.chocolate}', {\n        food: {\n          'caramel': {\n            tastes: {\n              'chocolate': 1.234\n            }\n          }\n        }\n      }\n    )\n\n    assert.equal(actual, 1.234)\n\n### template with custom delimiter\n\n    var ot = new ObjectTree({\n      template: {\n        left: '<',\n        right: '>'\n      }\n    })\n\n    var actual = ot.lookupTemplate('<food.caramel.tastes.chocolate>', {\n        food: {\n          'caramel': {\n            tastes: {\n              'chocolate': 1.234\n            }\n          }\n        }\n      }\n    )\n\n    assert.equal(actual, 1.234)\n\n# reverse lookup (generate a tree)\n\n### generate filters from the tree\n\n    var tree = {\n      the: {\n        barn: {\n          '*': 0,\n          is: {\n            free: 1\n          }\n        },\n        food: {\n          is: {\n            tasty: 2\n          }\n        }\n      }\n    }\n\n    var ot = new ObjectTree({wildcard: '*'})\n\n    var eventBus = ot.generateFilters(tree)\n\n    eventBus.on('filter', function(value, filter, attrList) {\n      will be called 3 times:\n      // value=0, filter={the: 'barn'}, attrList=['the', 'barn']\n      // value=1, filter={the: 'barn', is: 'free'}, attrList=['the', 'barn', 'is', 'free']\n      // value=2, filter={the: 'food', is: 'tasty'}, attrList=['the', 'food', 'is', 'tasty']\n    })\n    eventBus.on('end', function() {\n      // no more 'filter' events\n    })\n\n# set value\n\n    var obj = {attr1: false, attr2: true}\n\n    ot.set('attr2.nested1.nested2', Date.now(), obj)) // true\n\nset returns true if the object was modified\n","maintainers":[{"name":"nherment","email":"nherment@gmail.com"},{"name":"rjrodger","email":"richard.rodger@nearform.com"}],"time":{"modified":"2022-06-22T17:07:58.131Z","created":"2014-03-13T10:33:49.826Z","0.1.0":"2014-03-13T10:33:49.826Z","0.2.0":"2014-03-13T13:13:45.770Z","0.2.1":"2014-04-08T10:53:35.311Z","0.2.2":"2014-04-14T09:25:30.298Z","0.2.3":"2014-04-14T09:32:19.856Z","0.2.4":"2014-04-14T13:26:34.549Z","0.2.5":"2014-06-09T09:53:17.681Z"},"homepage":"https://github.com/nherment/node-object-tree","keywords":["tree","object","lookup"],"repository":{"type":"git","url":"git://github.com/nherment/node-object-tree.git"},"author":{"name":"Nicolas Herment","email":"nherment@gmail.com"},"bugs":{"url":"https://github.com/nherment/node-object-tree/issues"},"license":"MIT","readmeFilename":"README.md"}