UNPKG

libpiggy

Version:

Use a PostgreSQL database like a JSON document store.

46 lines (35 loc) 935 B
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _qs = require('qs'); var _qs2 = _interopRequireDefault(_qs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const isTrigger = function ({ table, when, parsed }) { if (parsed.table !== table) { return false; } if (!when) { return true; } if (parsed.when === when) { return true; } return false; }; const watchTable = function ({ client, table, when, watcher, store }) { client = client || store.client; try { client.on('notification', ({ channel, payload }) => { const parsed = _qs2.default.parse(payload); const trigger = isTrigger({ table, when, parsed }); if (trigger) { watcher({ client, channel, payload, parsed }); } }); return { client }; } catch (error) { throw error; } }; exports.default = watchTable;