
Security News
Node.js Drops Bug Bounty Rewards After Funding Dries Up
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.
load-directory
Advanced tools
Recursively load the entire directory with strategies for customized object structure
npm install --save load-directory
const Require = require('load-directory');
Require.all(<path-to-directory>, <options>);
Default configuration, can be overwritten with user-defined options:
{
filter: /^((?!index).+)*\..*$/, // index.js will be ignored by default
excludeDirs: /^\.(git|svn)$/, // .git, .svn directories will be ignored by default
recursive: true, // true, if files are to be required by traversing nested directories
map: module.exports.Strategies.Filename.pascalCase, // pascalCase will be applied by default
resolve: function (func) { // resolving of files will be simply return module.exports by default
return func;
}
};
const Require = require('load-directory');
Require.all(__dirname, {
excludeDirs : /^primitive$/, // will exclude the directory "primitive"
map: Require.Strategies.Filename.pascalCase // will use Pascal Case to map the required filenames
});
A few strategies are provided on requiring files and setting filenames on require eg. Given the file structure:
.
└── utils
├── generate_filename.js
└── predict_value.js
└── templates
└── standard.js
└── ultimate.js
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.lowerCase
});
console.log(Utils);
// { generate_filename: [Function],
// predict_value: [Function],
// templates: { standard: [Function], ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.upperCase
});
console.log(Utils);
// { GENERATE_FILENAME: [Function],
// PREDICT_VALUE: [Function],
// TEMPLATES: { STANDARD: [Function], ULTIMATE: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.dotCase
});
console.log(Utils);
// { 'generate.filename': [Function],
// 'predict.value': [Function],
// templates: { standard: [Function], ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.headerCase
});
console.log(Utils);
// { 'Generate-Filename': [Function],
// 'Predict-Value': [Function],
// Templates: { Standard: [Function], Ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.paramCase
});
console.log(Utils);
// { 'generate-filename': [Function],
// 'predict-value': [Function],
// templates: { standard: [Function], ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.sentenceCase
});
console.log(Utils);
// { 'Generate filename': [Function],
// 'Predict value': [Function],
// Templates: { Standard: [Function], Ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.snakeCase
});
console.log(Utils);
// { generate_filename: [Function],
// predict_value: [Function],
// templates: { standard: [Function], ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.camelCase
});
console.log(Utils);
// { generateFilename: [Function],
// predictValue: [Function],
// templates: { standard: [Function], ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.pascalCase
});
console.log(Utils);
// { GenerateFilename: [Function],
// PredictValue: [Function],
// Templates: { Standard: [Function], Ultimate: [Function] } }
const Utils = Require.all(__dirname + 'utils', {
map: Require.Strategies.Filename.functionCase
});
console.log(Utils);
// { generateFilename: [Function],
// predictValue: [Function],
// Templates: { standard: [Function], ultimate: [Function] } }
For more workable examples, please see fixtures.
FAQs
Recursively load the entire directory with strategies for customized object structure
We found that load-directory demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.