node package manager

Introducing npm Enterprise add-ons. Integrate third-party dev tools into npm…

infector

Dependency injection for Node.js and the browser.

Infector

Dependency injection for Node.js and the browser. Inspired by the dependency injection approaches in AngularJS and node-di. No relation to Infector++.

In the browser, Lo-Dash is a dependency and Infector is exposed as a global. So do something like:

<script src="lodash.js"></script>
<script src="infector.js"></script>

Using Bower:

$ bower install infector --save

In Node.js:

$ npm install infector --save

Use a constructor property:

function Foo(bar) {}
Foo.infect = ['bar'];
// or Foo.inject = ['bar']; 

There are two return options.

  • type: an instance of type will be returned via new:
function Foo() {}
infector.register({ foo: { type: Foo } });

If you want the module to be returned as a singleton:

infector.register({ foo: { type: Foo, isSingleton: true } });
  • value: the registered value will be returned:
infector.register({ foo: { value: 'Foo' } });

Just do:

infector.get('foo');

A working example is available in the examples/browser dir. To view:

$ open examples/browser/index.html

A working example is available in the examples/node dir. To run:

$ node examples/node

In the browser:

$ npm run test-browser

In Node.js:

$ npm run test-spec

To generate a coverage report:

$ npm run test-cov