superimport
v1.4.1
Published
Loads optional node modules from a third part modules folder
Readme
superimport
Tries to import a node module from the parent module dir or current working dir.
This was build for the logtopus logger.
We need a way to load optional modules from the $PROJECT_DIR/node_modules/ dir which is using logtopus, to load optional dependencies.
For example:
The logtopus module should load logtopus-redis-logger, but not from its own node_modules directory.
It should be load from $PROJECT_DIR/node_modules folder. This gives developers the
opportunity to load optional dependencies from the $PROJECT folder.
The logtopus module loads an optional module with superimport
// logtopus/index.js
const superimport = require('superimport');
const redisLogger = superimport('logtopus-redis-logger');A third part module uses logtopus and contains the optional module as a dependency
// mymodule/example.js
const logtopus = require('logtopus');In this example tries logtopus to require logtopus-redis-logger in this order:
mymodule/node_modules/logtopus-redis-logger<cwd>/node_modules/logtopus-redis-logger../node_modules/logtopus-redis-logger(goes up until/node_modules)- return null
And optional second argument overrides the directories which may contain an optional module
const dirs = ['../foo/node_modules', '../bar/libs/'];
const mod = superimport('somemodule', dirs);Methods
superimport(str moduleName [, arr importDirs])
See description above
superimport.importAll(arr dir [, obj options])
Imports all .js or .node files from dir. The second options argument is optional and changes the behaviour. Prior version 1.3.0, the second argument was a boolean and enabled recursive search. This is deprecated now.
Options:
| Name | Default | Description |
| ------------- | ------- | --------------------------- |
| recursive | false | Includes all subdirectories |
| silent | false | Ignore errors |
| importTypes | false | Set file extensions to be imported. Uses require.extensions to determine the types by default |
Returns an array of all required modules
