Home

Awesome

Dependable

A minimalist dependency injection framework for Node.js.

Installation

To install the latest version:

npm install --save dependable

Usage

Create a new container by calling dependable.container:

const dependable = require('dependable');
const container = dependable.container();

To register a new factory dependency, call container.factory:

container.factory('formatter', function () {
  return function (message) {
    return `formatted ${message}`;
  };
});

Factories can depend on other dependencies as well:

container.factory('logger', function (formatter) {
  return formatter('logged message');
});

You can also register constant dependencies as objects with container.constant:

container.constant('config', {
  password: '********'
});

To get a registered dependency, simply use container.get:

const logger = container.get('logger');

// This will print "formatted logged message"
console.log(logger);

API

container.factory(name, function) - Registers a factory dependency by name. function must be a function that takes dependencies and returns anything.

container.constant(name, object) - Registers a constant dependency by name. object must be an object or string with no dependencies.

container.get(name, overrides = {}) - Returns a dependency by name, with all dependencies injected. If you specify overrides, the dependency will be given those overrides instead of those registered.

container.getSandboxed(name, overrides = {}) - Returns a dependency by name, with all dependencies injected. Unlike get, you must specify overrides for all dependencies. This can (and should) be used during testing to ensure a module under test has been competely isolated.

Development

Tests are written with Mocha. To run the tests, run npm test.

License

MIT