🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

async-forward

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

async-forward

forward methods to asynchronously acquired objects

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

async-forward

Forward methods to asynchronously acquired objects.

Examples

Specify the method names you want to forward, and provide a callback for getting the object that should receive forwarded method calls.

var assert = require('assert')
var forward = require('./')

var methods = ['doSomethingAsync']
var proxy = forward(['double'], getSlowDoubler)

proxy.double(4, function (err, result) {
  assert.equal(8, result)
  console.log('ok - async method works')
})

The getSlowDoubler function looks like this, but it could be any sort of async function, as long as it returns an object with the expected methods:

function getSlowDoubler (callback) {
  var service = {
    double: function (n, callback) {
      setTimeout(function () {
        callback(null, n * 2)
      }, 100)
    }
  }

  // return the service asynchronously via callback
  process.nextTick(function () {
    callback(null, service)
  })
}

Any errors that occur while getting the method receiver will be forwarded to the callback:

function throwsAnError (callback) {
  throw new Error('whoops')
}

var proxy = forward(['myMethod'], throwsAnError)

proxy.myMethod(function (err) {
  assert.equal('whoops', err.message)
  console.log('ok - got expected error')
})

The same behaviour will work for errors that are returned via callback or thrown when invoking the method.

License

MIT

Keywords

forward

FAQs

Package last updated on 22 Apr 2014

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