npm-dependency-injection
v1.1.2npm-dependency-injection
A very dumb version of dependency injection for npm
.
Please don't use this for anything that is production code. This is great
for personal tools and projects that need npm
dependencies without maintaining
a package.json
(example: Hyper.app).
How to use
Import the module
import npm from 'npm-dependency-injection';
Pass an array of
npm
module dependencies as well as the current working directory// Asynchronous promise based API const dependenciesPromise = npm.async( ['pokemonsay', 'cat-pad'], { output: true, cwd: __dirname }, ); // Synchronous API const { pokemonsay, 'cat-pad': catPad } = npm.sync( ['pokemonsay', 'cat-pad'], { output: true, cwd: __dirname }, );
If using
async
, wait for the promise to resolve and use your dependenciesdependenciesPromise .then( dependencies => { const { pokemonsay, 'cat-pad': catPad } = dependencies; // Do logic here } ) .catch( err => { console.error(err); process.exit(1); } );
API
Methods
sync(arrayOfDependencies, options)
: Synchronous method that returns a dependencies object (see below for details).async(arrayOfDependencies, options)
: Asynchronous method that returns a promise which resolves to a dependencies object (see below for details).
Arguments
arrayOfDependencies
: An array of strings that are the names ofnpm
modules.options
: An object with the following propertiescwd
: String, absolute path to wherenpm
modules should be read from, saved, or installed to. Defaults toprocess.cwd
.output
: Boolean, whether to show the output fromnpm
; logs usingconsole.log
andconsole.error
. Good for debugging purposes.
Dependencies Object
This is the result of either of the methods above. Keys will be the name of the
npm
module and values will be the npm
module after being require
d. example
below:
{
pokemonsay: {
default: {
iChooseYou: [Function: iChooseYou],
random: [Function: random],
say: [Function: say]
}
},
'cat-pad': [Function]
}
Metadata
- MIT
- Whatever
- Dylan Frankland
- released 12/4/2016