load-directory

3.0.1 • Public • Published

load-directory

CircleCI codecov Codacy Badge npm npm David David license

codecov

npm install --save load-directory

API

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;
    }
};

Usage

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

Examples using strategies

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.

Package Sidebar

Install

npm i load-directory

Weekly Downloads

39

Version

3.0.1

License

MIT

Unpacked Size

10.1 kB

Total Files

7

Last publish

Collaborators

  • suddi