warm
v1.0.2
Published
warm up node modules before using
Downloads
16
Readme
warm
This node.js module is useful if you want to load other modules and be sure all warming code is executed before you continue.
Quick usage
Install module into own project
# npm install --save warm
Create new class and call .parallel
method
Warm = requre('warm');
new Warm('./database', './redis').parallel(function (err) {
if(err) { throw err; }
console.log('Initial code was executed in all described modules');
});
Modules database
and redis
should return special method (.init
by default), which resolve promise or call callback on finish. See Modules
Options
You can pass additional options like plain object: new Warm({ ... }, 'module1', ...)
:
| Name | Default | Description |
| ------------- |:----------:| -----|
| .expect
| promise
| will init method inform about finish with promise (reject/resolve it), or will fire callback with error (expect: 'callback'
)
| .path
| ''
| prefix for requiring modules
| .strict
| true
| should return error if init method not found in module
| .init
| init
| init method name
Samples
Warm = requre('warm');
// load modules in array or additional parameters with options
options1 = {
expect: 'callback'
}
options2 = {
strict: true
}
new Warm(options1, ['./module1', './module2'], './module3', options2).parallel(console.log);
// execute already loaded module
new Warm(require('./module3')).parallel(console.log);
// handle promise
new Warm('./module1').parallel().then(function () {
console.log('loaded');
}).catch(function (err) {
console.log('error:', err);
})
Modules
Module should contain method .init
(or other, described in options) which will return promise or file callback. Example:
module.exports = function () {
return 'i will not fire';
};
module.exports.init = function (callback) {
setTimeout(function () {
console.log('>>> i will fire durning warming');
callback();
}, 100);
};
Additional samples can be found in test folder