code: function(options) {
      options = options || {}
      var exclude = options.exclude || []
      var schema = []
      var query = []
      var mutation = []
  
      Object.keys(this.models).forEach(function(modelName) {
        var model = this.models[modelName]
        var definition = model.definition
  
        if (definition.graphqlHelper.hidden) return // via this.graphQLExclude()
        if (exclude.indexOf(modelName) !== -1) return
  
        schema.push(model.toGraphQLType())
        schema.push.apply(schema, definition.graphqlHelper.schema)
  
        query.push.apply(query, definition.graphqlHelper.query)
        mutation.push.apply(mutation, definition.graphqlHelper.mutation)
      }, this)
  
      if (query.length > 0) {
        schema.push(
          [
            'type Query{',
            query
              .map(function(str) {
                return '  ' + str
              })
              .join('\n'),
            '}'
          ].join('\n')
        )
      }
  
      if (mutation.length > 0) {
        schema.push(
          [
            'type Mutation{',
            mutation
              .map(function(str) {
                return '  ' + str
              })
              .join('\n'),
            '}'
          ].join('\n')
        )
      }
  
      return schema.join('\n\n')
    }
docs: returns a string represing the model as a graphql type
  @param  {Object} options Optional options
  @param  {Array} options.exclude Array of fields to exclude
  @return {String}         The graphql schema