0.1.0 • Published 8 years ago

barna v0.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

barna

A tiny library to send debugging information to Slack

Installing

npm install barna --save

Basic usage

// 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:

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

barna.start(() => {
  barna.time('database')
  setTimeout(() => {
    barna.timeEnd('database')
    barna.log('```SQL or whatever you want to print here```')
    barna.send('@username')
  }, 300)
})