require-layer-parts
v1.0.0
Published
Node module to require multiples files based on a pattern.
Downloads
91
Readme
require-layer-parts
Node module to require multiples files based on a pattern.
This module helps to require multiples files at once based on a naming convention.
installation
npm install require-layer-parts
Usage
Example
Given the following files :
routes/
|-- a-routes.js
|-- b-routes.js
|-- c-routes.js
`-- some-ugly-helper.js
index.js
Now require every files that matches -routes.js
to build your routes layer.
var parts = require('require-layer-parts')();
parts.require('./**/*-routes.js');
//--> {a:[Function], b:[Function], c:[Function]}
API
### parts
Create an object than can require files with a glob pattern.
var parts = require('require-layer-parts')(__dirname);
parts.require('./**/*-routes.js');
//--> {a:[Function], b:[Function], c:[Function]}
Options
cwd
: (string) glob search base path default isprocess.cwd()
failDups
: (boolean) fail if an export is already defined.nameMapper
: function to create an export name from the required filename.
require
Search for files matching a pattern and require it.
var parts = require('require-layer-parts')(__dirname);
parts.require('./**/*-routes.js');
//--> {a:[Function], b:[Function], c:[Function]}
parameters
string
glob search patternreducer
: optional reduce function to be applied on each element.
mapper
Builds a reducer that apply a mapper on each require.
var parts = require('require-layer-parts')(__dirname);
parts.require('./**/*-routes.js', parts.mapper(function (obj) { return obj.name}));
//--> {a:'a', b:'b', c:'c'}
parameters
function
: a function that take an object with following properties:file
: the absolute file namename
: the name of the property on the resulting object as evaluated by the default namemapper.mod
: the result of requiring the corresponding file.
requireInit
Much like require but it enables to map required module.
var parts = require('require-layer-parts')(__dirname);
parts.requireInit('./**/*-routes.js', function (mod) {
return mod();
});
//--> {a:{}, b:{}, c:{}}
string
glob search patternmapper
: map function to be applied on each element module.
parameters
string
glob search patternreducer
: optional reduce function to be applied on each element.