UNPKG

@salilvnair/jsxpa

Version:
82 lines (81 loc) 4.53 kB
"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;