kantaina
Wonderful asynchronous DI container based on promises.
Usage
kantaina = require "kantaina"w = require "when" # create container container = kantaina # define scalar value containerset "a"1 # define sync factory containerset "b" a + 1 # define async factory containerset "c" deffered = wdefer setTimeout -> defferedresolve a + b 1000 defferedpromise # try to override already defined value containerunless "a"100 # receive value resolved by async factory containerget"c"then # writes "3" after one second consolelog value # inject dependencies into function promise = containerinject a + b + c # inject method returns promise promisethen # writes "6" immediately because "c" already resolved consolelog value