bluebird-tools v1.8.0
Bluebird Tools
Tools to improve the bluebird promises with control flow and logging.
Install
npm install --save bluebird-toolsHow to use
const Promise = require('bluebird-tools');Control Flow
Promise.iif(condition, success, fail) -> promise
Calls success if pass the condition or calls fail
Promise.iif(x => x === 1, x => console.log('success', x), x => console.log('fail', x));promise.iif(condition, success, fail) -> promise
Calls success if pass the condition or calls fail
Promise.resolve(1)
.iif(x => x === 1, x => console.log('success', x), x => console.log('fail', x));promise.for(start, end, method) -> promise
Calls method passing the iterator and the resolved value
Promise.resolve(123)
.for(0, 5, (i, val) => console.log('iterator:', i, 'value:', val));
/* output:
iterator: 0 value: 123
iterator: 1 value: 123
iterator: 2 value: 123
iterator: 3 value: 123
iterator: 4 value: 123
*/promise.when(condition, success) -> promise
Calls success if pass the condition or calls fail
Promise.resolve(1)
.when(x => x === 1, x => console.log('success', x));Promise.when(condition, success) -> promise
Calls success if pass the condition or calls fail
Promise.when(x => x === 1, x => console.log('success', x));promise.unless(condition, fail) -> promise
Calls success if pass the condition or calls fail
Promise.resolve(1)
.unless(x => x === 2, x => console.log('fail', x));Promise.unless(condition, fail) -> promise
Calls success if pass the condition or calls fail
Promise.unless(x => x === 2, x => console.log('fail', x));promise.thenMonitor(name, method) -> promise
Calls method monitoring starting and ending
Promise.resolve()
.thenMonitor('something', () => executeSomething());
// logs:
// - starting something
// - finishing something - 65.564mspromise.whenMonitor(name, conditional, method) -> promise
If conditional is true, calls method monitoring starting and ending
Promise.resolve(3)
.whenMonitor('something', x => x === 3, () => executeSomething());
// logs:
// - starting something
// - finishing something - 1.234mspromise.unlessMonitor(name, conditional, method) -> promise
If conditional is false, calls method monitoring starting and ending
Promise.resolve(3)
.unlessMonitor('something', x => x === 2, () => executeSomething());
// logs:
// - starting something
// - finishing something - 1.234mspromise.iifMonitor(name, conditional, method) -> promise
If conditional is true, calls success or, if is false, calls fail, monitoring starting and ending
Promise.resolve(3)
.iifMonitor('something', x => x === 3,
() => executeSomething(), () => executeSomethingElse());
// logs:
// - starting something
// - process something has success
// - finishing something - 1.234msPromise.monitor(name, method) -> promise
Calls method, monitoring starting and ending
Promise.monitor('something', () => executeSomething());
// logs:
// - starting something
// - finishing something - 1.234msLogging
Configure logging for all Promise with the logging function.
Default levels to call the log:
- silly
- debug
- verbose
- info
- warning
- error
Promise.configureLog(logging)
const winston = require('winston');
// configure winston
Promise.configureLog(function logging(level, text, ...args) {
winston.log(level, text, ...args);
});Promise.log(level, text, ...args) -> promise
Promise.log('info', 'testing log', 1, 2, 3);promise.log(level, text, ...args) -> promise
Promise.resolve().log('info', 'testing log', 1, 2, 3);promise.silly(text, ...args) -> promise
Promise.resolve().silly('testing log', 1, 2, 3);promise.debug(text, ...args) -> promise
Promise.resolve().debug('testing log', 1, 2, 3);promise.verbose(text, ...args) -> promise
Promise.resolve().verbose('testing log', 1, 2, 3);promise.info(text, ...args) -> promise
Promise.resolve().info('testing log', 1, 2, 3);promise.warning(text, ...args) -> promise
Promise.resolve().warning('testing log', 1, 2, 3);promise.error(text, ...args) -> promise
Promise.resolve().error('testing log', 1, 2, 3);promise.whenLog(level, conditional, text, ...args) -> promise
Promise.resolve(1).whenLog('into', x => x === 1, 'testing log', 1, 2, 3);promise.unlessLog(level, conditional, text, ...args) -> promise
Promise.resolve(1).unlessLog('into', x => x === 2, 'testing log', 1, 2, 3);Manipulating promises
Promise.convert(promise) -> promise
Converts a native promise to a BluebirdTools promise
Promise.convert(promise)promise.isBluebird -> bool
Converts a native promise to a BluebirdTools promise
if (Promise.resolve().isBluebird) { // true
}