Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    infectorpublic

    Infector

    build status coverage status npm version npm downloads dependency status devDependency status

    browser support

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

    Usage

    Grab 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
    

    Specify dependencies

    Use a constructor property:

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

    Register modules

    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' } });

    Get modules

    Just do:

    infector.get('foo');

    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

    install

    npm i infector

    Downloadsweekly downloads

    3

    version

    1.0.7

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar