@ifit/mongoose-dao
Version:
Mongo helper methods for working with data in a DAO or repository pattern
32 lines • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.connectToMongo = exports.MongoConnectionState = exports.defaultOptions = void 0;
const mongoose = require("mongoose");
mongoose.Promise = global.Promise;
exports.defaultOptions = {
poolSize: 3,
};
var MongoConnectionState;
(function (MongoConnectionState) {
MongoConnectionState[MongoConnectionState["Disconnected"] = 0] = "Disconnected";
MongoConnectionState[MongoConnectionState["Connected"] = 1] = "Connected";
MongoConnectionState[MongoConnectionState["Connecting"] = 2] = "Connecting";
MongoConnectionState[MongoConnectionState["Disconnecting"] = 3] = "Disconnecting";
})(MongoConnectionState || (exports.MongoConnectionState = MongoConnectionState = {}));
const defaultReplacePattern = "%%auth%%";
async function connectToMongo(connection) {
const { mongoUri, mongoAuth, replacePattern, options } = Object.assign(Object.assign({ mongoUri: process.env.MONGO_URI, mongoAuth: process.env.MONGO_AUTH, replacePattern: defaultReplacePattern }, connection), { options: Object.assign(Object.assign({}, exports.defaultOptions), (connection && connection.options ? connection.options : null)) });
if (typeof mongoUri === "undefined") {
throw new Error("mongoUri is undefined");
}
if (typeof mongoAuth === "undefined") {
throw new Error("mongoAuth is undefined");
}
if (mongoose.connection.readyState === MongoConnectionState.Disconnected) {
const uris = replacePattern ? mongoUri.replace(replacePattern, mongoAuth) : mongoUri;
await mongoose.connect(uris, options);
}
return mongoose.connection.readyState;
}
exports.connectToMongo = connectToMongo;
//# sourceMappingURL=mongo-connect.js.map