UNPKG

bailiff

Version:
84 lines (83 loc) 4.1 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const dotenvStore_1 = __importDefault(require("./dotenvStore")); const fs = __importStar(require("fs")); const errors_1 = __importDefault(require("../errors")); const _ = __importStar(require("lodash")); const mongodb_1 = require("mongodb"); const node_cache_1 = __importDefault(require("node-cache")); class CentralStore { static get(name) { let value = this.nodeCache.get(`bailiff.config.${name}`); if (value == undefined) { value = this.__searchInJsonFile(name); this.nodeCache.set(`bailiff.config.${name}`, value); } return value; } static loadCentralConfigs() { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield mongodb_1.MongoClient.connect(this.__mongoUrl(), { promiseLibrary: Promise, useUnifiedTopology: true }); } catch (e) { console.error(errors_1.default["001"]); return; } const db = connection.db(dotenvStore_1.default.get("BAILIFF_MONGO_DB")); const result = yield db.collection(String(dotenvStore_1.default.get("BAILIFF_MONGO_COLLECTION"))).find({ "status": 1 }).toArray(); connection.close(); const jsonConfig = this.__parseResultAsJsonString(result); const jsongStringConfig = JSON.stringify(jsonConfig); if (jsongStringConfig != "{}") { fs.writeFileSync(this.jsonConfigFile, jsongStringConfig); } _.forEach(jsonConfig, (value, key) => { this.nodeCache.set(`bailiff.config.${key}`, value); }); }); } static __searchInJsonFile(name) { if (!fs.existsSync(this.jsonConfigFile)) return; return JSON.parse(fs.readFileSync(this.jsonConfigFile, 'utf-8') || "{}")[name]; } } exports.default = CentralStore; CentralStore.jsonConfigFile = "./.centralConfig.json"; CentralStore.nodeCache = new node_cache_1.default(); CentralStore.__parseResultAsJsonString = (data) => { return _.reduce(data, (result, entry) => { result[entry["name"]] = entry["value"]; return result; }, {}); }; CentralStore.__mongoUrl = () => { return dotenvStore_1.default.get("BAILIFF_MONGO_URI") || (function (connString) { connString += dotenvStore_1.default.get("BAILIFF_MONGO_USER") ? dotenvStore_1.default.get("BAILIFF_MONGO_USER") + ":" : ""; connString += dotenvStore_1.default.get("BAILIFF_MONGO_PASS") ? dotenvStore_1.default.get("BAILIFF_MONGO_PASS") + "@" : ""; connString += dotenvStore_1.default.get("BAILIFF_MONGO_HOST") ? dotenvStore_1.default.get("BAILIFF_MONGO_HOST") : ""; connString += dotenvStore_1.default.get("BAILIFF_MONGO_PORT") ? ":" + dotenvStore_1.default.get("BAILIFF_MONGO_PORT") : ""; return connString; }("mongodb://")); };