0.0.7 • Published 11 years ago

injct v0.0.7

Weekly downloads
8
License
-
Repository
github
Last release
11 years ago

injct

npm install injct --save

extremely simple dependency injection for nodejs

var injct = require('injct');

function UserRepository() {}
injct.register('userRepository', UserRepository);

function UserService(userRepository) {
    this.userRepository = userRepository;
    injct.apply(this);
}

var userService = new UserService();
assert.equal(userService.userRepository instanceof UserRepository);

two scopes: prototype and unique

  • prototype: new instance when the class is requested
injct.register(name, class)
  • unique: reuse the instance
injct.unique(name, class)

mocking

Say you have a registered UserRepository class like this:

var injct = require('injct');
injct.register('userRepository', UserRepository);

function UserRepository() {}
module.exports = UserRepository;

And an user service that expects that UserRepository to be injected

function UserService(userRepository) {
    this.userRepository = userRepository;
    injct.apply(this);
}

You can mock the repository behavior, no matter the scope

injct.register('userRepository', function AnotherRepository(){});

var userService = new UserService();
assert.ok(userService.userRepository instanceof AnotherRepository);
0.0.7

11 years ago

0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago