index.js
function Edge (opts) {
  this.id = opts.id
  this.innerformat = opts.inner + '_%s'
  this.outerformat = opts.outer + '_%s'
  this.innerkey = format(this.innerformat, this.id)
  this.outerkey = format(this.outerformat, this.id)
  this[opts.inner] = function (cb) {
    this.all(function (error, array) {
      if (error) return cb(error)
      if (!array || !array.length) return cb(null, array || [])
      array = array.map(function (gid) { return format(this.innerformat, String(gid)) }, this)
      db.sunion(array, cb)
    }.bind(this))
  }
  this[opts.outer] = function (cb) {
    this.all(function (error, array) {
      if (error) return cb(error)
      if (!array || !array.length) return cb(null, array || [])
      array = array.map(function (gid) { return format(this.outerformat, gid) }, this)
      db.sunion(array, cb)
    }.bind(this))
  }
}
function Edge (opts) {
  this.id = opts.id
  this.innerformat = opts.inner + '_%s'
  this.outerformat = opts.outer + '_%s'
  this.innerkey = format(this.innerformat, this.id)
  this.outerkey = format(this.outerformat, this.id)
  this[opts.inner] = function (cb) {
    this.all(function (error, array) {
      if (error) return cb(error)
      if (!array || !array.length) return cb(null, array || [])
      array = array.map(function (gid) { return format(this.innerformat, String(gid)) }, this)
      db.sunion(array, cb)
    }.bind(this))
  }
  this[opts.outer] = function (cb) {
    this.all(function (error, array) {
      if (error) return cb(error)
      if (!array || !array.length) return cb(null, array || [])
      array = array.map(function (gid) { return format(this.outerformat, gid) }, this)
      db.sunion(array, cb)
    }.bind(this))
  }
}
function Edge ( opts ) { this . id = opts . id this . innerformat = opts . inner + '_%s' this . outerformat = opts . outer + '_%s' this . innerkey = format ( this . innerformat , this . id ) this . outerkey = format ( this . outerformat , this . id ) this [ opts . inner ] = function ( cb ) { this . all ( function ( error , array ) { if ( error ) return cb ( error ) if ( ! array || ! array . length ) return cb ( null , array || [ ] ) array = array . map ( function ( gid ) { return format ( this . innerformat , String ( gid ) ) } , this ) db . sunion ( array , cb ) } . bind ( this ) ) } this [ opts . outer ] = function ( cb ) { this . all ( function ( error , array ) { if ( error ) return cb ( error ) if ( ! array || ! array . length ) return cb ( null , array || [ ] ) array = array . map ( function ( gid ) { return format ( this . outerformat , gid ) } , this ) db . sunion ( array , cb ) } . bind ( this ) ) } }
Initialize a new `Edge` with inner/outer edge names

@param {Object} opts
Initialize a new Edge with inner / outer edge names