An easy way to automatically include and name modules in subdirectories.
JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
test
.gitignore
LICENSE
README.md
index.js
package.json

README.md

#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.