UNPKG

1.58 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const dotenv_1 = require("dotenv");
4const mongoose = require("mongoose");
5const loggerFactory_1 = require("./logger/loggerFactory");
6class MongoConnector {
7 constructor(envfile) {
8 /**
9 * Load environment variables from .env file, where API keys and passwords are configured.
10 */
11 const envFile = envfile || process.env.ENVFILE || ".env";
12 dotenv_1.config({ path: envFile });
13 mongoose.Promise = global.Promise;
14 }
15 /**
16 * Initiate connection to MongoDB
17 * @returns {Promise<void>}
18 */
19 connect(mongoUri) {
20 mongoUri = mongoUri || process.env.MONGODB_URI;
21 return new Promise((resolve, reject) => {
22 const options = {
23 keepAlive: true,
24 useNewUrlParser: true
25 };
26 this.mongoConnection = mongoose.connection;
27 mongoose.connect(mongoUri, options).then(() => {
28 const indexOfA = mongoUri.indexOf("@");
29 const db = indexOfA !== -1 ?
30 mongoUri.substring(0, 10) + "!_:_!" + mongoUri.substring(indexOfA) : mongoUri;
31 loggerFactory_1.default.info("MongoDB connected [%s]", db);
32 resolve();
33 }).catch(reject);
34 });
35 }
36 /**
37 * Disconnects from MongoDB
38 * @returns {Promise<void>}
39 */
40 disconnect() {
41 return this.mongoConnection.close();
42 }
43}
44exports.MongoConnector = MongoConnector;
45//# sourceMappingURL=mongoConnector.js.map
\No newline at end of file