colle
A simple Nodejs dependency injection framework inspired by Angularjs. I build this framework to be used in conjunction with coffescript's programs where everything is compiled in a single js file; so I don't have to worry about compilation order. Also I believe it can be reused for other cases...
Installation
npm install colle
Usage
Create an injector
call the make function, the result should be reused globally.
colle = ;
Add dependencies
call the set
function with the following parameters to create a dependency:
- a name
- an array of dependencies
- a constructor function taking denpendecies as parameters The result of the constructor will be injected.
An exemple for an injector that create a counter that do not take dependencies:
colle;
A injector to print the counter
dependency.
colle;
Init function
Sometimes construction can fail (like the connection to a database). You can define an _init
function that takes a callback to report the error:
colle;
Note that when a dependency failed to start properly the whole process is halted.
Starting
At the end of the program call the start
method to setup all the contructors in the right order
(if a cyclic dependency is detected, an exception will be thown):
collestart { if err return consolelog "something wrong happend: " + err; consolelog "dependencies are ready!"; counter = colle; counter; console;};
Inside the start
function call the get
method to get a dependency.