conso1e v1.2.2
conso1e ( consoonee ) is a fully functional console wrapper with additional features. Since it wraps every console method, you can simply replace console with it.
Features
- Supports method-chaining
- It's stateful
- Logs can be suppressed & bufferable
- Provides a global & singleton instance which is accessible across modules
- Labels
- Subcontexts
Getting Started
Install it with NPM:
npm i conso1erequire() it and create() an instance:
const console = require('conso1e').create();
console.log('Hello');If you want to replace console with conso1e entirely, overwrite the global console variable:
console = require('conso1e').create(); // Overwriting the builtin console object
console.log('Hello');
// You can still access the original console
// via .core property
console.core.log('Hello');* Beware that overwriting console affects the entire application
Instead of creating a local instance, you can also use global() to access the global instance:
const console = require('conso1e').global();global() always returns the same instance. In other words, it returns singleton.
The global instance persists across different modules.
ES module loading is also supported:
import Conso1e from 'conso1e';
const console = Conso1e.create(); // Local instance
const console = Conso1e.global(); // Global instanceMethods & Properties
.suppress ( buffer = false )
Starts suppression. During suppression, any method calls don't output to the console.
Suppression can be bypassed by prefixing methods with underscore (ex. console.log() → console._log() ).
- @param \ buffer - If true, suppressed calls will be buffered
- @return
- Returns
this
.unsuppress ( flush = true )
Ends suppression.
- @param \ flush - If true, all the buffered calls are sent to the console at once
- @return
- Returns
this
.flush ( )
Outputs and clears the current buffers
.clearBuffers ( )
Clears the current buffers without output
.option ( name, value )
Sets or returns an option value by name
- @param \ name - Name of the option
- @param \ value - New value to set to the option
- @return
- Returns
thisifvalueis provided. Otherwise, returns the option value
Available Options:
| name | type | description |
|---|---|---|
label | string | If any string is set, it appears preceding every console output. |
forceOutput | boolean | If it is true, suppression is completely ignored. |
// Example
let console = require('conso1e').create();
console.option('label', '[LABEL]');
console.log('ABC'); // '[LABEL] ABC'
console.log('DEF'); // '[LABEL] DEF'.subcontext ( )
Creates and returns a subcontext. Subcontext is a child conso1e instance that inherits the current state and the core from the parent.
A subcontext defaults to the parent's current state and the option values. However you can override these individually.
// Example
let parent = require('conso1e').create();
let child = parent.subcontext();
parent.option('label', '[LABEL]');
parent.log('ABC'); // '[LABEL] ABC'
child.log('123'); // '[LABEL] 123' // label is inherited
child.option('label', '[SUB_LABEL]');
parent.log('ABC'); // '[LABEL] ABC'
child.log('123'); // '[SUB_LABEL] 123' // label is overriden- @return - Returns a new subcontext instance
.core
The real console object that is wrapped
@type object *(read only)
.parent
The parent conso1e instance. It is null if this is not a subcontext
@type object \ *(read only)
.isSuppressed
Whether suppression is currently active, or not
@type boolean *(read only)
.isBuffering
Whether buffering is currently active, or not
@type boolean *(read only)
.hasBuffer
Whether the console has any buffered call
@type boolean *(read only)
Advanced Usage
Custom Console
create() function has the exact same parameters as the constructor of the built-in Console class.
const debugLog = fs.createWriteStream('./debug.log');
const errorLog = fs.createWriteStream('./error.log');
const console = require('conso1e').create(debugLog, errorLog);You can also pass a console object to wrap() :
const myConsole = new console.Console(debugLog, errorLog);
const console = require('conso1e').wrap(myConsole);© 2020 amekusa