easy-folderator

An easy way to automatically include and name modules in subdirectories.

npm install easy-folderator
16 downloads in the last month

Easy Folderator

An easy way to automatically include and name modules in subdirectories.

Installation

npm install easy-folderator

Usage

Easy Folderator makes use of promises.

Lets say we have the following directory structure:

folder/
    inner-folder/
        deeper-inner-folder/
            deeper-inner-test-module.js
        inner-test-module.js
    test-module.js

The folderator.createPackage function will return an object with the following structure:

var package = {
    innerFolder: {
        deeperInnerFolder {
            deeperInnerTestModule: /* module.exports of deeper-inner-test-module.js */
        },
        innerTestModule: /* module.exports of inner-test-module.js */
    },
    testModule: /* module.exports of test-module.js */
}

Example

This example uses the same folder structure as above under Usage. lets say we have a folder called models with the following structure:

models/
    user.js
    post.js

Let's also say that the exports object of each model is simply this:

module.exports = __filename;

Now lets look at what will happen:

var path = require('path');
var folderator = require('easy-folderator');

var packagePath = path.join(__dirname, 'models');

folderator
    .createPackage({
        rootDir: packagePath, // a required option
        captializeModules: true
    })
    .then(function (pack) {
        console.log(pack.User);
        //    logs:
        //        /path/to/file/models/user.js
    });

Options

Options are passed to the createPackage function via an object:

folderator
    .createPackage({
        rootDir: myPath
    })

Only rootDir is required. There are no default options so you must always pass an object with rootDir set to a string in order for the it to work.

  • rootDir required
    • rootDir is a required option that tells which folder to package up.
  • captializeModules
    • captializeModules is not required. When a js file is required it will capitalize it when it attaches it to the packed object if this is set to true.
npm loves you