When you use Dizzy to perform dependency injection you could also want the things to use promises. For instance, using fs.readFile()
can get you into a mess with callbacks. By leveraging Bluebird, you can make all node-style callback functions return promises. That call to fs.readFile()
turns into fs.readFileAsync()
and you've started a promise chain.
First, you will likely want to get Dizzy up and running.
var container, Dizzy;
Dizzy = require('dizzy');
Next, call the plugin and pass in your reference to Dizzy.
require('dizzy-promisify-bluebird')(Dizzy);
Make your container.
container = new Dizzy();
Finally, register some modules to be promisified.
// One module
container.register("fsAsync", "fs").fromModule().promisified().cached();
// Multiple modules
container.registerBulk({
cryptoAsync: "crypto",
globAsync: "glob",
zlibAsync: "zlib"
}).fromModule().promisified().cached();
Want to use TypeScript?
import { default as Dizzy } from 'dizzy';
import { default as dizzyPromisifyBluebird } from 'dizzy-promisify-bluebird';
dizzyPromisifyBluebird(Dizzy);
container = new Dizzy();
// and then use your container.
Use npm
to install this package easily.
$ npm install --save dizzy-promisify-bluebird
Alternately you may edit your package.json
and add this to your dependencies
object:
{
...
"dependencies": {
...
"dizzy-promisify-bluebird": "*"
...
}
...
}
This software is licensed under a MIT license that contains an additional non-advertising clause. Read full license terms