New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@becual/pg-notify

Package Overview
Dependencies
Maintainers
2
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@becual/pg-notify

NodeJS PostgreSQL pg-notify subscription library

latest
Source
npmnpm
Version
2.0.5
Version published
Maintainers
2
Created
Source

pg-notify

Configure and subscribe to Postgres Notify automatically for a given set of tables.

ParamTypeDefaultDescription
clientobjectnode-postgres Client instance
configObjectobjectConfiguration object
configObject.schemastring"public"Name of the schema where the tables exists.
configObject.functionNamestring"notify_table_change"Name of the function to use notify.
configObject.channelNamestring"notify_table_change_channel"Name of the channel where the function will notify.
  • pg-notify
    • [~Subscribe to all database events of a given list of tables(tables)](#module_pg-notify..Subscribe to all database events of a given list of tables) ⇒ Promise
    • [~Create the functions and triggers to configure pg-notify.(tables)](#module_pg-notify..Create the functions and triggers to configure pg-notify.) ⇒ Promise

pg-notify~Subscribe to all database events of a given list of tables(tables) ⇒ Promise

Kind: inner method of pg-notify
Returns: Promise - a promise wich resolves an NodeJS EventEmitter

ParamTypeDescription
tablesArray.<string>An array of table names to listen

Example

const { Client }  = require('pg');
 const pgNotify = require('@becual/pg-notify');

 let eventHandler = evt => {
     console.log(JSON.stringify(evt, null, 4));
 };

 (async () => {
     // Use your connection string
     const client = new Client({ connectionString: process.env.PG_CONNECTION_STRING });

     // Choose your tables to listen
     const tables = ['customer', 'order_detail'];

    try {
        // Connect client
        await client.connect();

        // By default schema is public
        const sub = await pgNotify(client, {schema: 'mySchema'}).subscribe(tables);

        // Listen for changes
        sub.on('INSERT', eventHandler);
        sub.on('UPDATE', eventHandler);
        sub.on('DELETE', eventHandler);
    }
    catch(error) {
        console.log(error.message);
    }
    finally {
        await client.end();
    }
 })();

pg-notify~Create the functions and triggers to configure pg-notify.(tables) ⇒ Promise

Kind: inner method of pg-notify
Returns: Promise - A promise that will implement the pg-notify config.

ParamTypeDescription
tablesArray.<string>The list of tables to create pg notify configuration.

Example

const { Client } = require('pg');
 const pgNotify = require('@becual/pg-notify');

 (async () => {

     const client = new Client({ connectionString: process.env.PG_CONNECTION_STRING });
     const tableList = ['customer', 'order_detail'];

     try {
         // Try to generate configuration
         await client.connect();
         await pgNotify(client, {schema: 'mySchema'}).config(tableList);
     }
     catch(error) {
         // Show errors
         console.log(error.message);
     }
     finally {
         // Close connection
         await client.end();
     }
 })();

Keywords

postgresql

FAQs

Package last updated on 17 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts