filter-console
Version:
Filter out unwanted `console.log()` output
79 lines (49 loc) ⢠1.57 kB
Markdown
# filter-console
> Filter out unwanted `console.log()` output
Can be useful when you don't control the output, for example, filtering out PropType warnings from a third-party React component.
## Install
```
$ npm install filter-console
```
## Usage
```js
import filterConsole from 'filter-console';
const disableFilter = filterConsole(['š¼']);
const log = () => {
console.log('');
console.log('š¦');
console.log('š¼');
console.log('š¶');
};
log();
disableFilter();
log();
```
```
$ node example.js
š¦
š¶
š¦
š¼
š¶
```
## API
### filterConsole(excludePatterns, options?)
Returns a function, which when called, disables the filter.
#### excludePatterns
Type: `Array<string | RegExp | Function>`
Console output that matches any of the given patterns are filtered from being logged. The patterns are matched against what would be logged and not the `console` method input arguments directly. Meaning an exclude pattern of `'foo bar'` will match `console.log('foo %s', 'bar')`.
Filter types:
- `string`: Checks if the string pattern is included in the console output.
- `RegExp`: Checks if the RegExp pattern matches the console output.
- `Function`: Receives the console output as a string and is expected to return a truthy/falsy value of whether to exclude it.
#### options
Type: `object`
##### methods
Type: `string[]`\
Default: `['log', 'debug', 'info', 'warn', 'error']`
Console methods to filter.
##### console
Type: `object`\
Default: `console`
Use a custom `console` object. Can be useful for testing or mocking.