deepie
A simple logger with depth.
Deepie makes it easier to add depth to your cli logging when you want more visual structure.
Installation
$ npm install deepie --save
API
deepie(options)
Creates a new deepie instance.
Available options:
component
: component's nameseparator
: string used to separate this component block with the previous one (defaults to the previous separator or a single space if none so far)endSeparator
: string used to separate the components block and the text to be loggedloggers
: object with log functionsdepth
: maximum depth to be logged
Example:
var logger = deepie({
component: 'loader',
loggers: { error: chalk.red }
});
deepie.child(options)
Creates a new deepie child component overriding the parents options.
Example: deepie.child({ component: '[loader]' })
deepie.<logger>(string, [string...])
Logs to process.stdout
the provided arguments (separated by spaces) using the previously configured logger.
Example:
var logger = deepie({
component: '[loader]',
loggers: { error: chalk.red }
});
logger.error('Error: failed to load!');
deepie.<logger>.stream()
Returns a transform stream that will stream the buffer after applying the logger function on it.
Example: fs.createReadStream('.editorconfig').pipe(deepie.stdout.stream()).pipe(process.stdout);
Examples
Go crazy with some colors:
var chalk = require('chalk');
var deepie = require('deepie');
deepie = deepie({
component: { logger: chalk.gray.bgBlack, name: 'pm' },
loggers: {
info: chalk.cyan.bind(null, '›'),
done: chalk.green.bind(null, '✓'),
debug: chalk.yellow.bind(null, '»'),
}
});
deepie.info('installing module chalk...');
var installDeepie = deepie.child({
component: { logger: chalk.magenta.bgBlack, name: 'install' },
separator: { logger: chalk.gray.bgBlack, value: '›' },
});
installDeepie.debug('chalk: will install version 1.0.1...');
var downloadDeepie = installDeepie.child({
component: { logger: chalk.blue.bgBlack, name: 'download' },
separator: { logger: chalk.magenta.bgBlack, value: '›' },
});
downloadDeepie.debug('chalk: downloading from repo...');
downloadDeepie.debug('chalk: download done.');
installDeepie.debug('chalk: installing package...');
deepie.done('chalk: installation done!');
Outputs
You can limit the amount of depth to be logged:
var deepie = require('deepie');
deepie = deepie({
depth: 1
});
Outputs
License
Released under the MIT License.