This package has been deprecated. Please use
ziploc for new projects. The purpose of
this package is to provide a way to resolve types asynchronously. Let's take a
look at the simplest example:
var Bag =require('baggy');
var bag =newBag();
bag.create('One')
.from(function(done){
done(null,1);
});
bag.resolve('One',function(error,one){
console.log(one);// 1
});
We can also create dependencies on other types:
var Bag =require('baggy');
var bag =newBag();
bag.create('One')
.from(function(done){
done(null,1);
});
bag.create('Two')
.from('One',function(one,done){
done(null, one + one);
});
bag.create('Three')
.from('One','Two',function(one,two,done){
done(null, one + two);
});
bag.resolve('Three',function(error,three){
console.log(three);// 3
});
The syntax is nice if you have a collection of static functions, but what if you
already have an object with methods? No worries. No need to repeat yourself.
var Bag =require('baggy');
var bag =newBag();
bag.use({
getOne:function(done){
done(null,1);
},
getTwoFromOne:function(one,done){
done(null, one + one);
},
getThreeFromOneAndTwo:function(one,two,done){
done(null, one + two);
}
});
bag.resolve('Three',function(error,three){
console.log(three);// 3
});
In some cases you will want to resolve a derived type without persisting its
dependencies. This is also supported.