@salilvnair/jsxpa
Version:
React Persistant API
82 lines (81 loc) • 4.53 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var jsx_electron_1 = require("@salilvnair/jsx-electron");
var NeDBConstant = require("../constant/nedb.constant");
var JsxpaConstant = require("../../../constant/jsxpa.constant");
var fs_common_util_1 = require("../util/fs-common.util");
var NeDBConnectionManager = /** @class */ (function () {
function NeDBConnectionManager() {
this.jsxElectronUtil = new jsx_electron_1.JsxElectronUtil();
this.fsCommonUtil = new fs_common_util_1.FsCommonUtil(this.jsxElectronUtil);
this.path = this.jsxElectronUtil.remote.require("path");
this.fs = this.jsxElectronUtil.remote.require("fs");
}
NeDBConnectionManager.prototype.getInstance = function () {
return this.getDefinedInstance(NeDBConstant.NEDB_CONFIG_DATABASE_FOLDER_NAME, NeDBConstant.NEDB_CONFIG_DEFAULT_DB_FILE_NAME);
};
NeDBConnectionManager.prototype.getDefinedInstance = function (databaseFolderName, databaseFileName, neDBConfig) {
var app = this.jsxElectronUtil.remote.require("electron").app;
var path = this.jsxElectronUtil.remote.require("path");
var pathDetail;
if (neDBConfig) {
if (neDBConfig.storeInUserHome) {
var userHome = this.jsxElectronUtil.env().HOME || this.jsxElectronUtil.env().USERPROFILE;
pathDetail = path.join(userHome, '.ngpa', neDBConfig.applicationName.toLowerCase(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, databaseFolderName, databaseFileName + NeDBConstant.NEDB_DATABASE_FILENAME_EXTENSTION);
}
}
else {
pathDetail = path.join(app.getAppPath(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, databaseFolderName, databaseFileName + NeDBConstant.NEDB_DATABASE_FILENAME_EXTENSTION);
}
var Datastore = this.jsxElectronUtil.remote.require('nedb');
var dbSourceInstance = new Datastore({
filename: pathDetail,
autoload: true
});
return dbSourceInstance;
};
NeDBConnectionManager.prototype.getInMemoryInstance = function () {
var Datastore = this.jsxElectronUtil.remote.require('nedb');
var dbSourceInstance = new Datastore();
return dbSourceInstance;
};
NeDBConnectionManager.prototype.getNeDBConfig = function (neDBConfig) {
var app = this.jsxElectronUtil.remote.require("electron").app;
var path = this.jsxElectronUtil.remote.require("path");
var configPathDetail;
if (neDBConfig) {
var userHome = this.jsxElectronUtil.env().HOME || this.jsxElectronUtil.env().USERPROFILE;
if (neDBConfig.storeInUserHome) {
configPathDetail = path.join(userHome, '.ngpa', neDBConfig.applicationName.toLowerCase(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, JsxpaConstant.JSXPA_SUBFOLDER_CONFIG, JsxpaConstant.JSXPA_PROVIDER_CONFIG_NEDB);
}
}
else {
configPathDetail = path.join(app.getAppPath(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, JsxpaConstant.JSXPA_SUBFOLDER_CONFIG, JsxpaConstant.JSXPA_PROVIDER_CONFIG_NEDB);
}
var basePath;
if (neDBConfig) {
if (neDBConfig.storeInUserHome) {
var userHome = this.jsxElectronUtil.env().HOME || this.jsxElectronUtil.env().USERPROFILE;
basePath = path.join(userHome, '.ngpa', neDBConfig.applicationName.toLowerCase(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, JsxpaConstant.JSXPA_SUBFOLDER_CONFIG);
}
}
else {
basePath = path.join(app.getAppPath(), JsxpaConstant.JSXPA_FOLDER_NAME, NeDBConstant.NEDB_HOME_FOLDER_NAME, JsxpaConstant.JSXPA_SUBFOLDER_CONFIG);
}
this.fsCommonUtil.checkAndCreateDestinationPath(basePath);
var nedbBasicConfig = {
applicationName: "your_app",
createExplicitDB: true,
inMemoryDB: false,
storeInUserHome: false
};
if (neDBConfig) {
nedbBasicConfig = neDBConfig;
}
var nedbBasicConfigString = JSON.stringify(nedbBasicConfig);
this.fsCommonUtil.writeFileIfNotExist(configPathDetail, nedbBasicConfigString);
return this.fsCommonUtil.readFileAsJson(configPathDetail);
};
return NeDBConnectionManager;
}());
exports.NeDBConnectionManager = NeDBConnectionManager;