You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"use strict";
var loki = require('lokijs'), fs = require("fs"), path = require("path"), Promise = require('bluebird'), _ = require('lodash');
var cols = ['User','Entry'];
/** * Loki.js module * * @param {Object} appconfig Application config * @return {Object} LokiJS instance */ module.exports = function(appconfig) {
let dbReadyResolve; let dbReady = new Promise((resolve, reject) => { dbReadyResolve = resolve; });
// Initialize Loki.js
let dbModel = { Store: new loki(path.join(appconfig.datadir.db, 'app.db'), { env: 'NODEJS', autosave: true, autosaveInterval: 5000 }), onReady: dbReady };
// Load Models
dbModel.Store.loadDatabase({}, () => {
_.forEach(cols, (col) => { dbModel[col] = dbModel.Store.getCollection(col); if(!dbModel[col]) { dbModel[col] = dbModel.Store.addCollection(col); } });
dbReadyResolve();
});
return dbModel;
};
|