3.0.1 • Published 6 years ago

load-directory v3.0.1

Weekly downloads
48
License
MIT
Repository
github
Last release
6 years ago

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.

3.0.1

6 years ago

2.0.21

8 years ago

2.0.20

9 years ago

2.0.19

9 years ago

2.0.18

9 years ago

2.0.17

9 years ago

2.0.16

9 years ago

2.0.15

9 years ago

2.0.14

9 years ago

2.0.13

9 years ago

2.0.12

9 years ago

2.0.11

9 years ago

2.0.10

9 years ago

2.0.9

9 years ago

2.0.8

9 years ago

2.0.7

9 years ago

2.0.6

9 years ago

2.0.5

9 years ago

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.1.12

9 years ago

1.1.10

9 years ago

1.1.9

10 years ago

1.1.8

10 years ago

1.1.7

10 years ago

1.1.6

10 years ago

1.1.5

10 years ago

1.1.4

10 years ago

1.1.3

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago