Socket
Socket
Sign inDemoInstall

plv8

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

plv8

require() node.js modules in plv8


Version published
Maintainers
1
Created
Source

node-plv8

NPM version Build status Dependency Status Code Climate

require() node modules in PLV8. Optimize your Node.js Backend by offloading work directly onto the database (PostgreSQL). Send/receive events between Node and PLV8.

Install

$ npm install --save plv8

Usage

Node API

install (module, [cwd])

Install a Node module which can be loaded into the plv8 context by using the require() method.

uninstall (module)

Remove a previously installed module.

eval (code)

Evaluate a block of Javascript on the fly.

on (event, handler)

Listen for a Postgres NOTIFY event, and invoke the given handler when the event is emitted.

Postres API

require (module)

Load an installed Node module.

log (level, message)

Send a log message to the Node.js application.

emit (event, payload)

Emit an aribtrary event to the Node.js application via NOTIFY.

Example

// setup plv8 connection
const PLV8 = require('plv8')
const plv8 = new PLV8({
  client: 'pg',
  connection: {
    // knex.js connection object
  }
})

// setup a log listener
plv8.on('log:error', msg => {
  console.error(msg)
})

// setup a listener
plv8.on('user:updated', user => {
  // do some stuff with the "user" object
})

// install the lodash module so that it can be loaded (via require()) later
plv8.install(require.resolve('lodash'))
  .then(() => {

    // eval some code
    return plv8.eval(() => {
      const _ = require('lodash')
      return _.map([ 1, 2, 3 ], e => e + 1)
    })
  })
  .then(result => {
    // result = [ 2, 3, 4 ]
  })
// send some events to the client 
plv8.eval(() => {
  const _ = require('lodash')
  const veryImportantValue = _.map([ 1, 2, 3 ], e => e + 1)

  // maybe I want to send this event to the client, but continue doing more things
  plv8.emit('user:updated', {
    username: 'tjwebb',
    email: 'tjwebb@langa.io'
  })

  try {
    return veryImportantValue + 1
  }
  catch (e) {
    plv8.log('error', e)
    return 0
  }
})

2.

PLV8 Extension

This module requires the plv8 Postgres extension.

$ easy_install pgxnclient
$ pgxnclient install plv8

Forked!

This is a fork of plv8x that has been streamlined down to the essentials, and extended with additional API features. Important differences:

  • 90%+ smaller than plv8x (~20kb vs. 300+ kb)
  • Removed node-pg-native
  • Removed Livescript / Coffeescript Support
  • Removed CLI
  • Removed unused/unneeded dependencies
  • Transpile modules using babel instead of browserify

License

MIT

Maintained By

Keywords

FAQs

Package last updated on 20 Mar 2017

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc