https://github.com/kwelch/babel-plugin-captains-log
Babel plugin that injects helpful details into console statements
https://github.com/kwelch/babel-plugin-captains-log
babel babel-plugin console-statements logging utility
Last synced: 12 months ago
JSON representation
Babel plugin that injects helpful details into console statements
- Host: GitHub
- URL: https://github.com/kwelch/babel-plugin-captains-log
- Owner: kwelch
- License: mit
- Created: 2017-04-22T17:04:21.000Z (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T02:53:12.000Z (about 2 years ago)
- Last Synced: 2024-04-13T19:21:36.943Z (almost 2 years ago)
- Topics: babel, babel-plugin, console-statements, logging, utility
- Language: JavaScript
- Homepage:
- Size: 2.4 MB
- Stars: 85
- Watchers: 6
- Forks: 7
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Captain's Log (☠️)
[](http://npm.im/babel-plugin-captains-log)
[](http://npm-stat.com/charts.html?package=babel-plugin-captains-log)
[](https://travis-ci.com/kwelch/babel-plugin-captains-log.svg)
[](https://codecov.io/gh/kwelch/babel-plugin-captains-log)
[](http://opensource.org/licenses/MIT)
[](#contributors)
[](https://github.com/semantic-release/semantic-release)
[](https://github.com/kwelch/babel-plugin-captains-log/watchers)
[](https://github.com/kwelch/babel-plugin-captains-log/stargazers)
[](https://twitter.com/intent/tweet?text=Check%20out%20babel-plugin-captains-log!%20https://github.com/kwelch/babel-plugin-captains-log%20%F0%9F%91%8D)
## Usage
`babel-plugin-captains-log` injects helpful details into console statements.
Default behavior:
- prepend console statement file & location
- add inject variable name into console statements
**Transforms**
```diff
function add(a = 1, b = 2) {
console.log(a); // outputs: 1
return a + b;
}
↓ ↓ ↓ ↓ ↓ ↓
function add(a = 1, b = 2) {
console.log("simple.js(2:2)", "a", a); // outputs: "simple.js(2:2)" "a" 1
return a + b;
}
```
See the [Issues][issues] for a future features and opportunities to contribute.
## Requirements
This is a Babel plugin so it requires Babel v6 to run.
## Installation
This module is distributed using npm which comes bundled with node:
```
npm install --save-dev babel-plugin-captains-log
```
To include the plugin in your project, create or open your .babelrc file at the root of your project. Then, add namespaces to your plugin list:
```
{
plugins: ["babel-plugin-captains-log"]
}
```
## Options
### Methods
This option provides control over which console statements are adjusted. Methods is set within your `.babelrc` as an array.
**Default**: `["debug", "error", "exception", "info", "log", "warn"]`
```
{
plugins: [
["babel-plugin-captains-log", {
"methods": ['debug', 'info']
}]
]
}
```
### Ignore Patterns
This option provides control over which files are adjusted. Ignore Patterns is set within your `.babelrc` as an array of strings.
**Default**: `["node_modules"]`
```
{
plugins: [
["babel-plugin-captains-log", {
"ignorePatterns": ["node_modules", ".spec.js"]
}]
]
}
```
### Use a logger other then console
This option provides control over which files are adjusted. Ignore Patterns is set within your `.babelrc` as an array of strings.
**Default**: `"console"`
```
{
plugins: [
["babel-plugin-captains-log", {
"loggerName": "logger"
}]
]
}
```
### Flags
Flags are values set for all methods and are used to turn that feature on or off. Flags are not merged with defaults to allow for maximum control.
#### Variable Name Labels
**Default**: `true`
```
{
plugins: [
["babel-plugin-captains-log", {
"injectVariableName": true
}]
]
}
```
#### File Location Data
**Default**: `true`
```
{
plugins: [
["babel-plugin-captains-log", {
"injectFileName": true
}]
]
}
```
#### Inject Scope _(Experimental)_
_This has a few issues with other plugins particularly react-hot-loader, as it changes method names. Also, it was written for recursion which adds too much noise to the console statement which is against this libraries purpose_
**Default**: `false`
```
{
plugins: [
["babel-plugin-captains-log", {
"injectScope": true
}]
]
}
```
## License
MIT
## Contributors
Thanks goes to these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)):
| [
Kyle Welch](http://www.krwelch.com)
[💻](https://github.com/kwelch/babel-plugin-captains-log/commits?author=kwelch "Code") [📖](https://github.com/kwelch/babel-plugin-captains-log/commits?author=kwelch "Documentation") [⚠️](https://github.com/kwelch/babel-plugin-captains-log/commits?author=kwelch "Tests") | [
Maksim](https://github.com/mqklin)
[🐛](https://github.com/kwelch/babel-plugin-captains-log/issues?q=author%3Amqklin "Bug reports") |
| :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
[issues]: https://github.com/kwelch/babel-plugin-captains-log/issues