index.js
function Supply(provider, options) {
  if (!this) return new Supply(provider, options);

  options = options || {};

  this.provider = provider || this;
  this.layers = [];
  this.length = 0;

  if ('function' === typeof this.initialize) {
    this.initialize(options);
  }
}
function Supply(provider, options) {
  if (!this) return new Supply(provider, options);

  options = options || {};

  this.provider = provider || this;
  this.layers = [];
  this.length = 0;

  if ('function' === typeof this.initialize) {
    this.initialize(options);
  }
}
function Supply ( provider , options ) { if ( ! this ) return new Supply ( provider , options ) ; options = options || { } ; this . provider = provider || this ; this . layers = [ ] ; this . length = 0 ; if ( 'function' === typeof this . initialize ) { this . initialize ( options ) ; } }
A minimal middleware layer system.

@constructor
@param {EventEmitter} provider EventEmitter instance.
@param {Object} options Optional options.
@api public
A minimal middleware layer system .