0.3.2 • Published 8 years ago

doser v0.3.2

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

doser

version downloads license

Lightweight ES2015+ dependency injection written in ES6

Installation

npm install doser --save

Usage

import Doser from 'doser';

class DatabaseConnection {
	constructor(url) {...}
	query() {...}
}
const DATABASE_CONNECTION_URL = 'mysql://user:password@localhost';

class ProductService {
	constructor(database) {
		this.database = database;
		...
	}
	list() {
		return this.database.query(...);
	}
}

const container = new Doser();

container.registerPrimitive('DATABASE_CONNECTION_URL', DATABASE_CONNECTION_URL, true);
container.register('database', (inject) => new DatabaseConnection(inject('DATABASE_CONNECTION_URL'), true));
container.register('product_service', (inject) => new ProductService(inject('database')));

container.has('product_service'); //true
container.has('unknown_key'); //false

const product_service = container.get('product_service');
product_service.list();

const proxy = container.makePublicProxy(); //returns a freezed object with getters for each registered public key
proxy.product_service.list();
0.3.2

8 years ago

0.3.1

8 years ago

0.3.0

8 years ago

0.2.0

8 years ago

0.1.0

8 years ago