'use strict';

/**
 * Module dependencies
 */

module.exports = mongoose => {
  var Decimal = require('mongoose-float').loadType(mongoose, 2);
  var Float = require('mongoose-float').loadType(mongoose, 20);

  return {
    convertType: mongooseType => {
      switch (mongooseType.toLowerCase()) {
        case 'array':
          return Array;
        case 'boolean':
          return 'Boolean';
        case 'binary':
          return 'Buffer';
        case 'date':
        case 'datetime':
        case 'time':
        case 'timestamp':
          return Date;
        case 'decimal':
          return Decimal;
        case 'float':
          return Float;
        case 'json':
          return 'Mixed';
        case 'biginteger':
        case 'integer':
          return 'Number';
        case 'uuid':
          return 'ObjectId';
        case 'email':
        case 'enumeration':
        case 'password':
        case 'string':
        case 'text':
          return 'String';
        default:
      }
    },
  };
};

@@ -73,20 +73,38 @@
  =%3E %7B%0A  
-var 
+mongoose.Schema.Types.
 Decimal 
@@ -160,12 +160,30 @@
 ;%0A  
-var 
+mongoose.Schema.Types.
 Floa
@@ -632,23 +632,25 @@
  return 
+'
 Decimal
+'
 ;%0A      
@@ -682,21 +682,23 @@
  return 
+'
 Float
+'
 ;%0A      

Fix mongoose float and decimal problems