Files
old-spike/client/lib/databasable.js
2016-02-19 10:49:07 -06:00

44 lines
1001 B
JavaScript

const DEFAULTS = {
adapter: ''
};
var databasable = {
accessDb: function(db_name, opts){
var databasable = this;
opts = Object.assign(Object.assign({}, DEFAULTS), opts || {});
return new Promise((fnResolve, fnReject){
if (!databasable.db) {
databasable.db = new Loki(db_name, opts);
databasable.db.loadDatabase({}, ()=>{
fnResolve(databasable.db);
});
} else { fnResolve(databasable.db); }
});
},
closeDb: function(){
var databasable = this;
if (databasable.db){
databasable.db.save();
databasable.db.close();
databasable.db = undefined;
}
},
collection(collection_name, options){
var databasable = this;
databasable.accessDb()
.then((db)=>{
var collection = db.getCollection(collection_name)
if (!collection){
collection = db.addCollection(collection_name, options);
}
return collection;
});
}
};
export default databaseable;