Infector
Dependency injection for Node.js and the browser. Inspired by the dependency injection approaches in AngularJS and node-di. No relation to Infector++.
Usage
Infector
Grab In the browser, Lo-Dash is a dependency and Infector
is exposed as a global. So do something like:
Using Bower:
$ bower install infector --save
In Node.js:
$ npm install infector --save
Specify dependencies
Use a constructor property:
{}Fooinfect = 'bar';// or Foo.inject = ['bar'];
Register modules
There are two return options.
type
: an instance oftype
will be returned vianew
:
{}infector;
If you want the module to be returned as a singleton:
infector;
value
: the registeredvalue
will be returned:
infector;
Get modules
Just do:
infector;
Examples
Browser
A working example is available in the examples/browser
dir. To view:
$ open examples/browser/index.html
Node.js
A working example is available in the examples/node
dir. To run:
$ node examples/node
Testing
In the browser:
$ npm run test-browser
In Node.js:
$ npm run test-spec
To generate a coverage report:
$ npm run test-cov
Credits
- This great article by Chad Perry: DIY-DI
- @vojtajina, whose injector recipe in node-di gave me ideas for module registration
- AngularJS, where the idea of how to specify dependencies to be injected came from
- Infector++, where the name for this component came from ;)