UNPKG

lodb

Version:

Flat JSON file database, fork of lowdb

55 lines (41 loc) 950 B
var fs = require('fs') var _ = require('lodash') var utils = require('./utils') function lodb(file, options) { options = options || {} db.stringify = options.stringify || lodb.stringify db.parse = options.parse || lodb.parse var obj = utils.getObject(file, db.parse) function db(key) { var array = obj[key] = obj[key] || [] var chain = _.chain(array) db.save() return chain } db.save = _.noop if (file) { if (options.async) { db.save = function(f) { f = f ? f : file utils.saveAsync(file, db.stringify(obj)) } } else { db.save = function(f) { f = f ? f : file utils.saveSync(file, db.stringify(obj)) } } } db.object = obj return db } lodb.mixin = function(arg) { _.mixin(arg) } lodb.stringify = function(obj) { return JSON.stringify(obj, null, 2) } lodb.parse = function(str) { return JSON.parse(str) } module.exports = lodb