UNPKG

libpiggy

Version:

Use a PostgreSQL database like a JSON document store.

53 lines (44 loc) 1.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _asyncToGenerator2 = require("babel-runtime/helpers/asyncToGenerator"); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const createNotifyFunction = (() => { var _ref = (0, _asyncToGenerator3.default)(function* ({ client, key }) { try { const text = ` CREATE OR REPLACE FUNCTION notify_trigger() RETURNS TRIGGER AS $body$ DECLARE BEGIN IF (TG_OP = 'INSERT') THEN PERFORM pg_notify('watchers', 'table=' || TG_TABLE_NAME || '&when=' || TG_WHEN || '&newkey=' || NEW.${key}); RETURN NEW; ELSIF (TG_OP = 'DELETE') THEN PERFORM pg_notify('watchers', 'table=' || TG_TABLE_NAME || '&when=' || TG_WHEN || '&oldkey=' || OLD.${key}); RETURN OLD; ELSIF (TG_OP = 'UPDATE') THEN PERFORM pg_notify('watchers', 'table=' || TG_TABLE_NAME || '&when=' || TG_WHEN || '&newkey=' || NEW.${key} || '&oldkey=' || OLD.${key}); RETURN NEW; END IF; END; $body$ LANGUAGE plpgsql; `; const results = yield client.query({ text }); return { client, results }; } catch (error) { throw error; } }); return function createNotifyFunction(_x) { return _ref.apply(this, arguments); }; })(); exports.default = createNotifyFunction;