postgres-watcher
v0.2.1
Published
Watch your PostgreSQL tables for changes
Downloads
10
Maintainers
Readme
postgres-watcher
Watches your PostgreSQL DB for changes. Before using this module you need to set up some triggers, for example with postgres-triggers.
Heavily inspired by this blog post by @fritzy.
This module is in its early stages. Feedback and PRs welcome!
Install
npm i postgres-watcher
Usage (API)
This module is basically an event emitter. It doesn't make any assumption about your trigger payload, except that it should be a JSON object.
const Watcher = require('postgres-watcher')
const watcher = Watcher({
db: 'postgres://foo@localhost:5432/db',
channel: 'table_update', // optional
// optional filter function.
// only payloads which return a truthy value
// will later emit a 'change' event
filter: function (payload) { return payload.id >= 42 }
})
// listen for changes
watcher.on('change', function (change) {
console.log(change) // { id: 1, type: 'INSERT', table: 'foo', ... }
})
watcher.on('error', console.error.bind(console))
// start watching, callback is optional
watcher.start(function(err) {
if (err) throw err
console.log(watcher.running) // true
})
// insert, update, delete rows in your db...
// stop watching, callback is optional
watcher.stop(function () {})
TODO
there is certainly stuff to do ;-)
Tests
You need to give it a database connection string to be able to run the tests.
POSTGRES=postgres://postgres@localhost:5432/postgres npm test
License
MIT