microservice / koa-inject
minimalist dependency injection for koa applications
usage
app = koa(), app.use(inject(function* | object))
example
var inject = require('@microservice/koa-inject');
app = koa();
app.use(inject({
foo: function() {
console.log(this);
return 'foo!';
},
bar: function() {
return Promise.resolve('bar!');
}
}));
app.use(inject(function* (next, foo) {
console.log(foo);
yield* next;
}));
advanced
app.use(inject({
baz: function* (next) {
this.biff = 'bad';
this.baz = 'good';
yield* next;
},
blah: function* (next, baz) {
this.blah = 'blah...' + baz;
yield* next;
}
}));
providers in a definition object are (automagically) run in order, depending on their dependencies.