load-directory
npm install --save load-directory
API
const Require = ; Requireall<path-to-directory> <options>;
Default configuration, can be overwritten with user-defined options:
filter: /^*\..*$/ // index.js will be ignored by default excludeDirs: /^\.$/ // .git, .svn directories will be ignored by default recursive: true // true, if files are to be required by traversing nested directories map: moduleexportsStrategiesFilenamepascalCase // pascalCase will be applied by default { // resolving of files will be simply return module.exports by default return func; };
Usage
const Require = ; Requireall__dirname excludeDirs : /^primitive$/ // will exclude the directory "primitive" map: RequireStrategiesFilenamepascalCase // 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
Examples using strategies
const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamelowerCase;console;// { generate_filename: [Function],// predict_value: [Function],// templates: { standard: [Function], ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenameupperCase;console;// { GENERATE_FILENAME: [Function],// PREDICT_VALUE: [Function],// TEMPLATES: { STANDARD: [Function], ULTIMATE: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamedotCase;console;// { 'generate.filename': [Function],// 'predict.value': [Function],// templates: { standard: [Function], ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenameheaderCase;console;// { 'Generate-Filename': [Function],// 'Predict-Value': [Function],// Templates: { Standard: [Function], Ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenameparamCase;console;// { 'generate-filename': [Function],// 'predict-value': [Function],// templates: { standard: [Function], ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamesentenceCase;console;// { 'Generate filename': [Function],// 'Predict value': [Function],// Templates: { Standard: [Function], Ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamesnakeCase;console;// { generate_filename: [Function],// predict_value: [Function],// templates: { standard: [Function], ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamecamelCase;console;// { generateFilename: [Function],// predictValue: [Function],// templates: { standard: [Function], ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamepascalCase;console;// { GenerateFilename: [Function],// PredictValue: [Function],// Templates: { Standard: [Function], Ultimate: [Function] } } const Utils = Requireall__dirname + 'utils' map: RequireStrategiesFilenamefunctionCase;console;// { generateFilename: [Function],// predictValue: [Function],// Templates: { standard: [Function], ultimate: [Function] } }
For more workable examples, please see fixtures.