Skip to content

Dynamic loading Node.js modules from filesystem

Notifications You must be signed in to change notification settings

Crabbey/dyn-require

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynRequire

Build Status NPM version

Dynamic loading Node.js modules from filesystem.

Intro

Sometimes you need to dynamically scan some directory, load all modules (js or json files) and perform some generic work with all of them. You need to recoursively scan directories and filter non js files, that causes lots of boilerplate to be written. DynRequire solves this problem for you. Just pass base path, and it will scan all modules and provides it to you as object (relative path) -> (module). require-like syntax also supported!

Installation

$ npm install dyn-require

Usage

Sync work
var DynRequire = require('dyn-require');

var modules = new DynRequre(__dirname + '/modules');

/* get all modules as array */
console.log( modules.requireAll() );

/* get all modules as object (relative path) -> (module) */
console.log( modules.requireAllEx() );

/* require module */
console.log( modules.require('modules/a') );
Async work

If using async method, DynRequire will emit two kind of messages: 'next' on next module loaded and 'done' when all modules are scanned and loaded.

var DynRequire = require('dyn-require');

var modules = new DynRequre(__dirname + '/modules', {
    async: true
});

/* Next module */
modules.on('next', function(relPath, module) {
    console.log(relPath, module);
});

/* All modules */
modules.on('done', function(allModules, allModulesWithPaths) {
    console.log(allModules);

    // Here you can use 
    // modules.require and modules.requireAll, etc...
});

Author

License

MIT

About

Dynamic loading Node.js modules from filesystem

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%