JSPM

dyn-require

0.0.4
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 100
  • Score
    100M100P100Q65225F
  • License MIT

Dynamic loading Node.js modules from filesystem

Package Exports

  • dyn-require

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dyn-require) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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 DynRequire(__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 DynRequire(__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