Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gimenete/barna
A tiny library to send debugging information to Slack
https://github.com/gimenete/barna
Last synced: about 2 months ago
JSON representation
A tiny library to send debugging information to Slack
- Host: GitHub
- URL: https://github.com/gimenete/barna
- Owner: gimenete
- License: mit
- Created: 2016-06-17T11:51:16.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-06-17T13:49:43.000Z (over 8 years ago)
- Last Synced: 2024-11-09T16:04:58.281Z (2 months ago)
- Language: JavaScript
- Size: 3.91 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# barna
A tiny library to send debugging information to Slack
## Installing
```
npm install barna --save
```## Basic usage
```javascript
// Configure barna
var barna = require('barna')
barna.slack({ webhook: process.env.SLACK_WEBHOOK })// Timing things
barna.time('database')
// ...
barna.timeEnd('database')// Printing markdown messages
barna.log('```SQL or whatever you want to print here```')
```## Usage with express
There's a middleware already ready to be used for express. Just use `app.use(barna.express())`.
`.express()` accepts two arguments that by default are `barna.express('query', 'tell')`. These parameters tell `barna` where to find the channel or username to which send the report information. The first argument can be `body`, `headers`, `query` or `params` and the second parameter is the name of the field.
This middleware will also add a CURL command at the end of the report that will let you reproduce the request.
Full example:
```javascript
var express = require('express')
var barna = require('barna')
barna.slack({ webhook: process.env.SLACK_WEBHOOK })var app = express()
app.use(barna.express())app.get('/', (req, res) => {
barna.time('database')
setTimeout(() => {
barna.timeEnd('database')
barna.log('```SQL or whatever you want to print here```')
res.send('hello world')
}, 300)
})var port = +process.env.PORT || 3000
app.listen(port)
console.log('Server listening at http://localhost:%d', port)
```Now you can invoke `http://localhost:3000/?tell=@somebody` to send a report of a user, or `http://localhost:3000/?tell=%23channel` to send the report to a channel (%23 is the # symbol escaped).
## Usage with any framework
```javascript
barna.start(() => {
barna.time('database')
setTimeout(() => {
barna.timeEnd('database')
barna.log('```SQL or whatever you want to print here```')
barna.send('@username')
}, 300)
})
```