44 lines
1001 B
JavaScript
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;
|