require.dir
v0.3.0
Published
require folders that may have modules inside
Maintainers
Readme
require.dir 

documentation - install - why
Say we have the following tree
./folder
├── a.js
├── a.json
├── module
│ └── index.js
└── module.jsand each module exports its basename, i.e.
// ./folder/a.js
module.exports = 'a';then
var requireDir = require('require.dir');
requireDir('./folder') // =>
{
a: 'a',
ajson: {
a: 'a'
},
module: 'module',
modulejs: 'module'
}documentation
Require directories that may or may not have modules inside.
The basename of each file/module is used for the exported object. When in the given directory, if so happens, are files that have the same basename the extension is used for that key of the exported object.
Recurse folders if passed as an option.
The caller's path is always excluded.
Note that modules are not recursed. Only folders that either do not have a package.json or an index file
spec
The module.exports a function
function requireDir([string dirname, object options])arguments
dirname, type string optional, directory to inspect and requireoptions, type object optional, properties are:dotwhether to includepathnamesstarting with a.dottest, type regexp, test eachpathnamefound, that is not.dotrecursive, whether continue recursively on next folders
defaults
dirnameto the caller's directory
when
options.dotisfalsydotfiles/folders are excludedoptions.testisfalsethatpathnameis skipped
require('./folder', {test: /\.js$/}) // js files
throws
- When the first
dirnamedoes not exists
returns
- object with all the exports
why
I've used require-dir but wanted to have it also return modules by default without recursing.
install
With npm
npm install --save require.dirtest
npm testrequire.dir
basic
✓ should return folder exports
camelCase
✓ should camelCase folder exports
recursive
✓ should recurse folder exports given {recursive: true}
sameBasename
✓ should add lowerCase extension if basename existed
4 passing (23ms)