Use latest lowdb

This commit is contained in:
Rui Fortes
2018-06-04 20:11:09 +01:00
parent 0241ad5d35
commit 913473f304
5 changed files with 160 additions and 166 deletions

View File

@ -3,7 +3,7 @@ const methodOverride = require('method-override')
const _ = require('lodash')
const lodashId = require('lodash-id')
const low = require('lowdb')
const fileAsync = require('lowdb/lib/storages/file-async')
const Memory = require('lowdb/adapters/Memory')
const bodyParser = require('../body-parser')
const validateData = require('./validate-data')
const plural = require('./plural')
@ -11,7 +11,12 @@ const nested = require('./nested')
const singular = require('./singular')
const mixins = require('../mixins')
module.exports = (source, opts = { foreignKeySuffix: 'Id' }) => {
module.exports = (db, opts = { foreignKeySuffix: 'Id' }) => {
var isDB = _.has(db, '__chain__') && _.has(db, '__wrapped__')
if (!isDB) {
db = low(new Memory()).setState(db)
}
// Create router
const router = express.Router()
@ -19,15 +24,6 @@ module.exports = (source, opts = { foreignKeySuffix: 'Id' }) => {
router.use(methodOverride())
router.use(bodyParser)
// Create database
let db
if (_.isObject(source)) {
db = low()
db.setState(source)
} else {
db = low(source, { storage: fileAsync })
}
validateData(db.getState())
// Add lodash-id methods to db
@ -65,9 +61,9 @@ module.exports = (source, opts = { foreignKeySuffix: 'Id' }) => {
}
var sourceMessage = ''
if (!_.isObject(source)) {
sourceMessage = `in ${source}`
}
// if (!_.isObject(source)) {
// sourceMessage = `in ${source}`
// }
const msg =
`Type of "${key}" (${typeof value}) ${sourceMessage} is not supported. ` +