libpiggy
Version:
Use a PostgreSQL database like a JSON document store.
46 lines (35 loc) • 935 B
JavaScript
;
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;