code: function GeoJSON (json) {
    if (this instanceof GeoJSON) {
      switch (typeof json) {
        case 'string':
          this.str = json
          break
        case 'object':
          this.str = JSON.stringify(json)
          break
        default:
          throw new TypeError('Not a valid GeoJSON value')
      }
    } else {
      return new GeoJSON(json)
    }
  }
docs: @class GeoJSON
  
  @classdesc Representation of a GeoJSON value. Since GeoJSON values are JSON
  objects they need to be wrapped in the <code>GeoJSON</code> class so that
  the client can distinguish them from other types of objects.
  
  For more information, please refer to the section on
  <a href="http://www.aerospike.com/docs/guide/geospatial.html" title="Aerospike Geospatial Data Type">&uArr;Geospatial Data Type</a>
  in the Aerospike technical documentation.
  
  @summary Creates a new GeoJSON instance.
  
  @param {(Object|string)} value - GeoJSON value; the constructor accepts
  either a string representation of the JSON object, or a JS object.
  
  @example
  
  const Aerospike = require('aerospike')
  const GeoJSON = Aerospike.GeoJSON
  const Key = Aerospike.Key
  
  Aerospike.connect((error, client) => {
  if (error) throw error
  let key = new Key('test', 'demo', 'bob')
  let location = new GeoJSON({type: 'Point', coordinates: [103.913, 1.308]})
  client.put(key, {loc: location}, (error) => {
  if (error) throw error
  client.close()
  })
  })