{
  "manifest": {
    "author": {
      "name": "Troy Goode",
      "email": "troygoode@gmail.com",
      "url": "http://github.com/troygoode/"
    },
    "name": "require-directory",
    "version": "2.1.1",
    "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.",
    "keywords": [
      "require",
      "directory",
      "library",
      "recursive"
    ],
    "homepage": "https://github.com/troygoode/node-require-directory/",
    "main": "index.js",
    "repository": {
      "type": "git",
      "url": "git://github.com/troygoode/node-require-directory.git"
    },
    "contributors": [
      {
        "name": "Troy Goode",
        "email": "troygoode@gmail.com",
        "url": "http://github.com/troygoode/"
      }
    ],
    "license": "MIT",
    "bugs": {
      "url": "http://github.com/troygoode/node-require-directory/issues/"
    },
    "engines": {
      "node": ">=0.10.0"
    },
    "devDependencies": {
      "jshint": "^2.6.0",
      "mocha": "^2.1.0"
    },
    "scripts": {
      "test": "mocha",
      "lint": "jshint index.js test/test.js"
    },
    "_registry": "npm",
    "_loc": "/homez.1033/heliovt/.cache/yarn/v6/npm-require-directory-2.1.1-8c64ad5fd30dab1c976e2344ffe7f792a6a6df42-integrity/node_modules/require-directory/package.json",
    "readmeFilename": "README.markdown",
    "readme": "# require-directory\n\nRecursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules.\n\n**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)**\n\n[![NPM](https://nodei.co/npm/require-directory.png?downloads=true&stars=true)](https://nodei.co/npm/require-directory/)\n\n[![build status](https://secure.travis-ci.org/troygoode/node-require-directory.png)](http://travis-ci.org/troygoode/node-require-directory)\n\n## How To Use\n\n### Installation (via [npm](https://npmjs.org/package/require-directory))\n\n```bash\n$ npm install require-directory\n```\n\n### Usage\n\nA common pattern in node.js is to include an index file which creates a hash of the files in its current directory. Given a directory structure like so:\n\n* app.js\n* routes/\n  * index.js\n  * home.js\n  * auth/\n    * login.js\n    * logout.js\n    * register.js\n\n`routes/index.js` uses `require-directory` to build the hash (rather than doing so manually) like so:\n\n```javascript\nvar requireDirectory = require('require-directory');\nmodule.exports = requireDirectory(module);\n```\n\n`app.js` references `routes/index.js` like any other module, but it now has a hash/tree of the exports from the `./routes/` directory:\n\n```javascript\nvar routes = require('./routes');\n\n// snip\n\napp.get('/', routes.home);\napp.get('/register', routes.auth.register);\napp.get('/login', routes.auth.login);\napp.get('/logout', routes.auth.logout);\n```\n\nThe `routes` variable above is the equivalent of this:\n\n```javascript\nvar routes = {\n  home: require('routes/home.js'),\n  auth: {\n    login: require('routes/auth/login.js'),\n    logout: require('routes/auth/logout.js'),\n    register: require('routes/auth/register.js')\n  }\n};\n```\n\n*Note that `routes.index` will be `undefined` as you would hope.*\n\n### Specifying Another Directory\n\nYou can specify which directory you want to build a tree of (if it isn't the current directory for whatever reason) by passing it as the second parameter. Not specifying the path (`requireDirectory(module)`) is the equivelant of `requireDirectory(module, __dirname)`:\n\n```javascript\nvar requireDirectory = require('require-directory');\nmodule.exports = requireDirectory(module, './some/subdirectory');\n```\n\nFor example, in the [example in the Usage section](#usage) we could have avoided creating `routes/index.js` and instead changed the first lines of `app.js` to:\n\n```javascript\nvar requireDirectory = require('require-directory');\nvar routes = requireDirectory(module, './routes');\n```\n\n## Options\n\nYou can pass an options hash to `require-directory` as the 2nd parameter (or 3rd if you're passing the path to another directory as the 2nd parameter already). Here are the available options:\n\n### Whitelisting\n\nWhitelisting (either via RegExp or function) allows you to specify that only certain files be loaded.\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  whitelist = /onlyinclude.js$/,\n  hash = requireDirectory(module, {include: whitelist});\n```\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  check = function(path){\n    if(/onlyinclude.js$/.test(path)){\n      return true; // don't include\n    }else{\n      return false; // go ahead and include\n    }\n  },\n  hash = requireDirectory(module, {include: check});\n```\n\n### Blacklisting\n\nBlacklisting (either via RegExp or function) allows you to specify that all but certain files should be loaded.\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  blacklist = /dontinclude\\.js$/,\n  hash = requireDirectory(module, {exclude: blacklist});\n```\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  check = function(path){\n    if(/dontinclude\\.js$/.test(path)){\n      return false; // don't include\n    }else{\n      return true; // go ahead and include\n    }\n  },\n  hash = requireDirectory(module, {exclude: check});\n```\n\n### Visiting Objects As They're Loaded\n\n`require-directory` takes a function as the `visit` option that will be called for each module that is added to module.exports.\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  visitor = function(obj) {\n    console.log(obj); // will be called for every module that is loaded\n  },\n  hash = requireDirectory(module, {visit: visitor});\n```\n\nThe visitor can also transform the objects by returning a value:\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  visitor = function(obj) {\n    return obj(new Date());\n  },\n  hash = requireDirectory(module, {visit: visitor});\n```\n\n### Renaming Keys\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  renamer = function(name) {\n    return name.toUpperCase();\n  },\n  hash = requireDirectory(module, {rename: renamer});\n```\n\n### No Recursion\n\n```javascript\nvar requireDirectory = require('require-directory'),\n  hash = requireDirectory(module, {recurse: false});\n```\n\n## Run Unit Tests\n\n```bash\n$ npm run lint\n$ npm test\n```\n\n## License\n\n[MIT License](http://www.opensource.org/licenses/mit-license.php)\n\n## Author\n\n[Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com))\n\n",
    "licenseText": "The MIT License (MIT)\n\nCopyright (c) 2011 Troy Goode <troygoode@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  "artifacts": [],
  "remote": {
    "resolved": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
    "type": "tarball",
    "reference": "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz",
    "hash": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
    "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
    "registry": "npm",
    "packageName": "require-directory",
    "cacheIntegrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
  },
  "registry": "npm",
  "hash": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
}