code: 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);
    }
  }
docs: A minimal middleware layer system.
  
  @constructor
  @param {EventEmitter} provider EventEmitter instance.
  @param {Object} options Optional options.
  @api public