require.dir
v0.3.0
Published
require folders that may have modules inside
Downloads
2
Maintainers
Readme
require.dir
documentation - install - why
Say we have the following tree
./folder
├── a.js
├── a.json
├── module
│ └── index.js
└── module.js
and 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:dot
whether to includepathnames
starting with a.dot
test
, type regexp, test eachpathname
found, that is not.dot
recursive
, whether continue recursively on next folders
defaults
dirname
to the caller's directory
when
options.dot
isfalsy
dotfiles/folders are excludedoptions.test
isfalse
thatpathname
is skipped
require('./folder', {test: /\.js$/}) // js files
throws
- When the first
dirname
does 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.dir
test
npm test
require.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)