Source: connection.js

/**
* @param {number|string|Function} [options.id]
* @param {number|number[]|string|string[]|Object|Object[]} [options.from]
* @param {number|number[]|string|string[]|Object|Object[]} [options.to]
*/
function Connection(options={}) {
  this.id = options.id;
  this.from = options.from;
  this.to = options.to;

  this.forward = [];  // payload stream `from --> to`
  this.backward = []; // payload stream `to --> from`

  /**
  * @param {Object} payload
  * @param {boolean} [options.forward=true]
  * @param {boolean} [options.front=false] - Iff `true`, will add payload to the the front/begining of `this.forward` or `this.backward`
  *
  * @fires prepush
  * @fires push
  * @fires postpush
  */
  this.push = function(payload, options={}) {}
  /**
  * @param {boolean} [options.forward=true]
  * @param {boolean} [options.front=true]
  *
  * @fires prepull
  * @fires pull
  * @fires postpull
  */
  this.pull = function(options={}) {}
}

module.exports = Connection;