console-interceptor
Monkey-patches all console.*
methods (using ES Proxy) and lets you intercept the arguments.
Install
npm i console-interceptor
Usage
const disable = handler onError
{ // where `method` = original console[method] used, log|error|warn|... // and `arguments` = original arguments passed to console[method](...arguments) // You can control what will eventually get logged in any of the following ways: // let original console method/arguments be called as-is return // => console[method](...arguments) // log nothing return swallow // Return a string, or {arguments: 'string'}, or a Promise, or set this.arguments // to log that string return 'log this' return Promise return Promise thisarguments = 'log this' // => console[method]('log this') // Return an array, or {arguments: [array]}, or a Promise, or set this.arguments // to use it as arguments to console method return 'log' 'this' return arguments: 'log' 'this' return Promise return Promise thisarguments = 'log' 'this' // => console[method]('log', 'this') // Return {method: 'string'}, or a Promise, or set this.method // to change the console[method] used to log the argument return method: 'info' return Promise thismethod = 'info' // => console['info'](...arguments) // Mix and match any of the above thismethod = 'info' return Promise // => console['info']('log', 'this') // Return values take precedence over setting `this` }
// [optional] Called when the `handler` above, or the lib itself throws an error { // The default behavior (if this callback isn't provided) is this: // Which can also be achieved (in this callback) by calling }