{"_id":"require_tree","_rev":"34-398737ce370c14d4f994d9f28d180c46","name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","dist-tags":{"latest":"0.6.8"},"versions":{"0.3.2":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.3.2","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.3.2","dist":{"shasum":"afd650bd44511244ae92b628a3b033e5f85d65a6","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.3.2.tgz","integrity":"sha512-sVzRL9A88hQgFNebuVUGPjv3n7Ngyj2DFINVkAo06vJ9lqjgQNEuv/EvDx3Td7eSlAB30X1ipfGcwoeP8BkHHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEw8DLB+b9yjPLKUzlOpvplQmcsTiQFqw9yRRW4NrYhlAiAWb1n1q7eXdiorWCVviXGCJg9nx/m9Cz6GIKqXoKroww=="}]},"_from":"require_tree","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.3.3":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.3.3","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.3.3","dist":{"shasum":"16d8a663fec5ceea65497685cdd1a45de2ae5530","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.3.3.tgz","integrity":"sha512-m2iEyf4gOKFisntnSlzQsTJZWt1sZSCxIY81IJ8Yw9liyTxiZMW7qytmR0oE+VvQ4LbEZt9BXkueonrduY4/wQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkOTeqlVdQzEWLR/71eFMXNguWa3dTni1PldjFPAi1OAiBeRk8AUHJQfqAAGLsaZX4kSWg7zF1qJttpF3ApC32khw=="}]},"_from":"require_tree","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.4.1":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.4.1","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.4.1","dist":{"shasum":"ea47b4ea09744b2799eb615d3f9c63a6ffb9b33e","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.4.1.tgz","integrity":"sha512-+PNavLIqf6ReUjxFt4lHQ6BZxnwTiwpziUrRaR+R7pi/+iIfIsyrrB22ExxLIjSOSa5RAPsil/+u127oc1PdDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkPl23y0Z5DoGbCSoOc4GTZ6EL+2Hmjmy3DQIyHZ7SegIgTiFGBJM9zpWfV4fYWpUYiYLqSx0tkx17yBrXFDBV1rk="}]},"_from":"require_tree","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.5.1":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.5.1","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.5.1","dist":{"shasum":"d5159dcf4790d2fc40d63f98e331a60c7224535f","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.5.1.tgz","integrity":"sha512-LbdFrMAz3vA9irx8G1Fq/PsrAWw2BVpExLXdOl8GalTUSRr2LgjwWGV9tZi1QRhhHuPZfenEcPaoIJC91jDhrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDeJw8O7BmVylGoqqx4FNIFVqWYE/9i2m8ErVxbKfhGJAiA4xd2zWbhEL6ZVtcZoifmGb4eAUW2erv8BX3wxGuDTCA=="}]},"_from":"require_tree","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.5.2":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.5.2","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.5.2","dist":{"shasum":"ecac01dcaa9f513ef7475f6289e199110fcef333","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.5.2.tgz","integrity":"sha512-OK24+PFm3s2n+EYLHo/TyPxJXLJo5sWblef89I/c/IbWKKJK6f90lkK/ePh+2EospzQ+L+V9JfmPC17lm4UP0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFseqnCsg9PBG0uUXYVxpDv7+82uiDBoqzTpHHboMPREAiEAzLTLMrSG4iQfJMbN1SVJ7n+DTVZ8u3d7IKPlheA1h50="}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.6.1":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.6.1","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.6.1","dist":{"shasum":"4a10540bc7aae4869ee17f06a5c9895c6d225358","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.6.1.tgz","integrity":"sha512-FQtO8McXdAtf5owGx8OLtBMnvIMsnXN7yS99pH7wezz3JjkfE1JoonZDF02cfXYTG24MeMz/fGTjS3ztmO/bUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZFJWKNv7UdrvoswtjLQwESrEyGQOh4SOznfJ6buy6zQIgfI0BAqhdBEiGbW6feVGE3AI4HqJNFQJeH5IyLyKB6FM="}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.6.5":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.6.5","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.6.5","dist":{"shasum":"96593eb01d3251d5bd12a46fef6147f60735283f","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.6.5.tgz","integrity":"sha512-UPxiXFvimM0qc18uS9j9gOAnkcTvxeZiNm2skDFQPsIAqOXhqhDGXCzh8juEUzGheruhk9ya2M+LD8PVnZv5+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtjakWvw8R2lSTRYXBW4D8TfHRzIaAPxgKwWz38zQsAAIhAIYtkJT4apQeQWuW086v8AgPq+3/8xcjmLdhvyu2TP+U"}]},"_from":".","_npmVersion":"1.2.23","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"directories":{}},"0.6.6":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.6.6","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.6.6","dist":{"shasum":"ca0449a7a194f52d33ee7a1b79f0d56a13beacdb","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.6.6.tgz","integrity":"sha512-ygL9wK3R994SUoODi5Itohe5UK5yyCMdCrg2a9RVTpDYxSwr6JFAyULuWhT7f31P53fJ79WUc/qnWu9v+AWiCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFaPbwHewOAPg/sFJA7u2nvyQ2E+0KVFolACXnpab7DJAiEA4WWgZNEuS+6alUvuKuXM5QF0WosaLeZKSyWxzQIccyQ="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}]},"0.6.8":{"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"name":"require_tree","description":"Recursive Package like Module and JSON Loading for Nodejs","keywords":["recursive","require","tree","model","filesystem","js","json","import","package","module","loading","export"],"version":"0.6.8","main":"require_tree.js","licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"dependencies":{},"devDependencies":{"coffee-script":"~1.6.3","mocha":"~1.12.0","chai":"~1.7.2","docco":"~0.6.2"},"homepage":"http://vancarney.github.io/require_tree/","scripts":{"test":"cake test"},"bugs":{"url":"https://github.com/vancarney/require_tree/issues"},"_id":"require_tree@0.6.8","dist":{"shasum":"d4351ee0f647368e3a799d3e9915582fe620fac2","tarball":"https://registry.npmjs.org/require_tree/-/require_tree-0.6.8.tgz","integrity":"sha512-rHvsBYMyE4sB8mQ7Hcp6nl2Dwyo+FHkgoNpvFz1DDc6FvYke4T4ioZfoJmh3LqLL4RA+J2HyssO5r77CpGO9qw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHPSdjj/1GfzaiNoNw+0BqOcwJ09q0C+j7ycx6AJxMcQAiEA+fR8cD+zP9xTsmA+HJTwoMBxXvOeX/+4GIfiVmZ/7e8="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"vancarney","email":"carney.van@gmail.com"},"maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}]}},"readme":"require_tree([path], [options])\n============\n\nRecursive Package like Module and JSON Loading for NodeJS\n\n[![Build Status](https://travis-ci.org/vancarney/require_tree.png)](https://travis-ci.org/vancarney/require_tree)\n\nInstallation\n-----------\n```\nnpm install require_tree\n```\n\nBasic Usage\n-----------\n\nGiven a directory structure as follows\n\n```\n- lib/\n\t- models/\n\t\t- User.js\n\t- controllers/\n\t\t- Login.js\n\t- utils/\n\t\t- index.js\n\t\t- specialUtility.js\n\t- config.json\n```\n\nYou can import all these in a single `require_tree` statement and access them via hash syntax like a traditional OO Package\n\n```\nvar app = require('require_tree').require_tree('lib');\n \n// models.User is now accessable\n \tvar user  = new app.models.User();\n \n// JSON objects are accessed in the same manner\nvar configVal = app.config.myValue;\n \n// index files are appended directly to the local root\napp.utils.myIndexFunction();\n \n// other files are appended within the same scope\nvar util = new app.utils.specialUtility();\n```\n\nArguments\n-----------\n\n**path**: A standard path to a given directory to import. This parameter is optional and defaults to null\n\n**options**: The `options` object accepts these properties:\n\n> **locals**: A user defined JS Object that will be made avialable to loaded modules\n\n> **packages**: An arbitrary object or existing package structure from another require_tree instance that will serve as the basis for the current require_tree instance\n\n> **preserve_filenames**: A boolean value instructing require_tree to preserve the filename in the package path structure. The default value is `false`\n> *note*: This directive will be temporarily ignored and the filename used to name an unnamed function to support sloppy `module.exports = function() {...}` usage\n\n\nMethods\n-----------\n\nThe following `methods` are accessable from both the returned `package` structure and the `module.parent.exports`\n\n\n**getTree(path)**\n\nReturns a given `package` and it\\'s descendants. Accepts both hash and path syntax\n\n*example:*\n\n```\n// from application scope\ntree = require('require_tree').require_tree('lib');\nconsole.log( tree.require_tree.getTree('models') );\n\n// from loaded module\nconsole.log( module.parent.exports.getTree('models') );\n```\n\n\n**addTree(path)**\n\nRecursively loads a new directory structure into the `package` structure of the current scope\n\n*example:*\n\n```\n// from application scope\ntree = require('require_tree').require_tree('lib');\ntree.require_tree.addTree('otherLib');\n\n// from loaded module\nmodule.parent.exports.addTree('otherLib');\n```\n\n**extendTree(object)**\n\nMerges a given `package` and it\\'s descendants with the existing `package` structure. \n\n*example:*\n\n```\n// from application scope\ntree = require('require_tree').require_tree('lib');\neTree = require('require_tree').require_tree('lib2');\ntree.require_tree.extendTree(eTree);\n\n// from loaded module\neTree = require('require_tree').require_tree('lib2');\nmodule.parent.exports.extendTree(eTree);\n```\n\n**removeTree(path)**\n\nRemoves a given `package` and it\\'s descendants from the `package` strucure. Accepts both hash and path syntax. \n\n*Note*: This will not remove loaded Modules from the Module Cache.\n\n*example:*\n\n```\n// from application scope\ntree = require('require_tree').require_tree('lib');\ntree.require_tree.removeTree('models');\n\n// from loaded module\nmodule.parent.exports.removeTree('models');\n```\n\n**on(name, callback, context)**\n\nAdds an event handler for a given event\n\n*example:*\n\n```\n// -- will print contents of package to console when loading has completed\n(rTree = require('require_tree')).on( 'completed', function(data) {\n\tconsole.log(data);\n});\n\t\nrTree.require_tree('./lib');  \n```\n\n**off(name, callback, context)**\n\nRemoves an event handler for a given event\n\n*example:*\n\n```\n\n(rTree = require('require_tree')).on( 'completed', function(data) {\n\t// -- will remove the event handler for further completed events.\n\tdata.require_tree.off('completed');\n\tconsole.log(data);\n});\n\t\nrTree.require_tree('./lib');  \n```\n\n**trigger(name, ...)**\n\nDispatches an event to all listeners\n\n*example:*\n\n```\n\n(rTree = require('require_tree')).on( 'myEvent', function(data) {\n\tconsole.log(data);\n});\n\n// -- calling trigger will cause the above listener to capture and event\nrTree.trigger('myEvent', {data:\"hello world\"});\n```\n\nEvents\n-----------\n Event listeners may be added and removed using the `on` and `off` methods listed above\n the following events are dispatched by require_tree\n \n**completed**\n\nTriggered when `require_tree` has been called directly, passes package structure as it's data payload\n\n**changed**\n\nTriggered when `addTree`, `removeTree` or `extendTree` have been called with the following payload:\n\n> *packages*: the complete package structure in it's present state\n> *added*: If present, will contain the tree that has been added. Passed on addTree or extendTree operations\n> *removed*: If present will contain the tree that has been removed. Only passed on removeTree operations\n\n\nPassing Data\n-----------\n\nBy passing a JS Object to the `locals` param of the`options` object, you can set that Object for access from `module.parent.exports.locals` in your loaded Module\\'s scope.\n\n*index.js:*\n\n```\nvar myMods = require_tree(\"lib\", {locals:{\"myArray\":[1,2,3,4]}});\n``` \n\n*lib/myMod.js:*\n\n```\nvar passedArray = module.parent.exports.locals.myArray;\nconsole.log(passedArray);\n```\n\nNesting `require_tree` Calls\n-----------\n\nMaking nested `require_tree` calls from within loaded Modules will create a new `require_tree` instance and Module Scope with a new package structure.\nUse the `packages` params of the `options` argument to pass in an exising object or `package` structure to `inherit` from. \n\n*example:*\n\n```\n(function(global)\n{\n\t// use require_tree to load a structure into a new scope\n\t// note that we pass in the packages object in the options for the new sub-tree\n\tglobal.config = require('require_tree').require_tree( '../subtree', {packages:{module.parent.exports.getPath('.')}});\n\t\n\t// our new tree will have inherited the parent require_tree packages\n\tconsole.log( global.config );\n})(exports);\n```\n\nBuilding Data Structures\n-----------\n\n`require_tree` allows you to import JSON documents and treats each index file as a root element.\nThis functionality allows you to create multiple index and data files to selectively build complex JSON data sets from static files.\n\n```\n- conf/\n\t- condition_1/\n\t\t- index.js\n\t- condition_2/\n\t\t- index.js\n- lib/\n\t- config.js\n- index.js\n```\n\nIn the above diagram, we see a `configure.js` file and a `conf` structure.\nThe intent here is to have build a config file based on the user environment much as we would build an application config using a `configure` script\n\n*lib/config.js*\n\n```\n(function(global)\n{\n\t// attempt to get passed data from locals Object\n\tvar conditionValue = module.parent.exports.locals.condition || 1;\n\t// use require_tree to load a given structure into the current scope\n\tmodule.parent.exports.addTree( '../conf/condition_' +  conditionValue);\n})(exports);\n```\n\n*index.js:*\n\n```\nconfig = require_tree(\"lib\", {locals:{\"condition\":2}});\n\n// config will now contain the dynmically generated JS object structure\nconsole.log(config);\n```\n\nAccessing the Package Structure\n-----------\n\nWhile `require_tree` returns the loaded package Structure to the caller, it can be very useful to be aware of the Package Structure from within a loaded module\n`require_tree` exports the packages as `exports.packages` and includes a `require_tree` package containing the exported methods listed in the`Methods` section above. \n\n### From the Application Scope\n\n*example:*\n\n```\nvar tree = require('require_tree').require_tree('path/to/dir');\n\n// using the `module.parent.exports.getTree` method\nvar otherObjectRef = tree.getTree('path.to.other.Object');\nthis.myRefInstance = new otherObjectRef();\n\n// add another directory structure to the current package\ntree.addTree('path/to/new/dir');\n// access the new tree\nconsole.log( tree.getTree('dir') );\n\n// remove a directory structure to the current package\ntree.removeTree('dir/subtree');\n// access the updated tree\nconsole.log( tree.getTree('dir') );\n\n// remove a directory structure to the current package\ntree.extendTree({dir:{newSubTree:{val1:\"value1\", val2:\"value2\"}}});\n// tree 'dir' will now have 'newSubTree' nested\nconsole.log( tree.getTree('dir') );\n```\n\n### From Loaded Modules\n\n*example:*\n\n```\n(function(global)\n{\n\t// using the `module.parent.exports.getTree` method\n\tvar otherObjectRef = module.parent.exports.getTree('path.to.other.Object');\n\tglobal.myModule = function() {\n\t\tthis.myRefInstance = new otherObjectRef();\n\t}\n\t\n\t// add another directory structure to the current package\n\tmodule.parent.exports.addTree('path/to/new/dir');\n\t// access the new tree\n\tconsole.log( module.parent.exports.getTree('dir') )\n\t\n\t// remove a directory structure to the current package\n\tmodule.parent.exports.removeTree('dir/subtree');\n\t// access the updated tree\n\tconsole.log( module.parent.exports.getTree('dir') );\n\n\t// remove a directory structure to the current package\n\tmodule.parent.exports.extendTree({dir:{newSubTree:{val1:\"value1\", val2:\"value2\"}}});\n\t// tree 'dir' will now have 'newSubTree' nested\n\tconsole.log( module.parent.exports.getTree('dir') );\n})(exports)\n\n```","maintainers":[{"name":"vancarney","email":"carney.van@gmail.com"}],"time":{"modified":"2022-06-26T11:41:46.482Z","created":"2013-10-11T17:35:06.453Z","0.3.2":"2013-10-11T17:35:07.730Z","0.3.3":"2013-10-11T17:43:43.791Z","0.4.1":"2013-10-12T02:55:32.615Z","0.5.1":"2013-10-17T20:12:54.850Z","0.5.2":"2013-11-05T22:18:50.219Z","0.6.1":"2013-11-08T22:18:46.141Z","0.6.5":"2014-01-05T22:51:33.209Z","0.6.6":"2014-01-30T03:42:46.984Z","0.6.7":"2014-02-12T18:12:00.015Z","0.6.8":"2014-02-12T19:20:50.633Z"},"author":{"name":"Van Carney","email":"carney.van@gmail.com"},"repository":{"type":"git","url":"github.com/vancarney/require_tree.git"},"readmeFilename":"README.md","users":{"code-curious":true}}