async-hooks

1.3.1 • Public • Published

async-hooks

NPM Version NPM Downloads

Async 'will' and 'did' hooks for any methods.

install

npm i async-hooks

usage

'use strict';
const hooks = require('async-hooks');
 
// Define your class
class MyClass {
  constructor() {
    hooks(this);
  }
 
  method(arg1, arg2) {
    return Promise.resolve(arg1 + arg2);
  }
}
 
// Instantiate MyClass
const myClass = new MyClass();
// Now you can add hooks to any class methods
 
myClass.will('method', (arg1, arg2) => {
  // ... do something
});
 
myClass.will('method', (arg1, arg2) => {
  // ... do something else
});
 
myClass.did('method', res => {
  // ... do something
  return res;
});
 
myClass.did('method', res => {
  // ... do something else
  return res;
});

API

(object, [method, ...])

Adds will and did methods to the object. Both will and did are lazy methods. So to use auto hooks you still should run it as:

hooks(this, 'method', 'anotherMethod');

will(method, hook)

Adds will (runs before) hook function to the method only if method exists and it is a function. hook function will receive all arguments as the original method. If hook function is async it should return a Promise.

If object has will<Method> it will be run before all other hooks

did(method, hook)

Adds did (runs after) hook function to the method only if method exists and it is a function. hook function will receive a result of the original method or previous hook and should return result or Promise.

If object has did<Method> it will be run after all other hooks

Errors

If object has catch<Method> it will receive the throws and orginal arguments.

License MIT;

© velocityzen

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.3.1
    385
    • latest

Version History

Package Sidebar

Install

npm i async-hooks

Weekly Downloads

387

Version

1.3.1

License

MIT

Unpacked Size

8.79 kB

Total Files

5

Last publish

Collaborators

  • velocityzen