2.0.5 • Published 6 years ago

@becual/pg-notify v2.0.5

Weekly downloads
14
License
MIT
Repository
github
Last release
6 years ago

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) ⇒ 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();
     }
 })();
2.0.5

6 years ago

2.0.4

6 years ago

2.0.3

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago