@oondemand/oon-core-back 0.3.20 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/boot/database.js +37 -6
package/package.json
CHANGED
package/src/boot/database.js
CHANGED
|
@@ -22,14 +22,45 @@ function buildMongoUri() {
|
|
|
22
22
|
return uri;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
function connectionOptions() {
|
|
26
|
+
// MONGO_URI é um contrato completo e pode conter usuário, senha, authSource,
|
|
27
|
+
// TLS e demais opções. Passar user/pass indefinidos ao Mongoose pode
|
|
28
|
+
// sobrescrever a autenticação embutida e abrir uma sessão não autenticada.
|
|
29
|
+
if (process.env.MONGO_URI) return {};
|
|
30
|
+
|
|
31
|
+
const hasUser = Boolean(process.env.DB_USER);
|
|
32
|
+
const hasPassword = Boolean(process.env.DB_PASSWORD);
|
|
33
|
+
|
|
34
|
+
if (hasUser !== hasPassword) {
|
|
35
|
+
throw new Error("DB_USER e DB_PASSWORD devem ser configurados em conjunto.");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return hasUser
|
|
39
|
+
? { user: process.env.DB_USER, pass: process.env.DB_PASSWORD }
|
|
40
|
+
: {};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function databaseLabel(uri) {
|
|
44
|
+
if (process.env.DB_NAME) return process.env.DB_NAME;
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
const name = decodeURIComponent(new URL(uri).pathname.replace(/^\//, ""));
|
|
48
|
+
return name || "configurado";
|
|
49
|
+
} catch {
|
|
50
|
+
return "configurado";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
25
54
|
async function connectDB() {
|
|
26
55
|
const uri = buildMongoUri();
|
|
27
|
-
await mongoose.connect(uri,
|
|
28
|
-
|
|
29
|
-
pass: process.env.DB_PASSWORD,
|
|
30
|
-
});
|
|
31
|
-
console.log(`Conectado ao MongoDB (${process.env.DB_NAME || uri})`);
|
|
56
|
+
await mongoose.connect(uri, connectionOptions());
|
|
57
|
+
console.log(`Conectado ao MongoDB (${databaseLabel(uri)})`);
|
|
32
58
|
return mongoose.connection;
|
|
33
59
|
}
|
|
34
60
|
|
|
35
|
-
module.exports = {
|
|
61
|
+
module.exports = {
|
|
62
|
+
connectDB,
|
|
63
|
+
buildMongoUri,
|
|
64
|
+
connectionOptions,
|
|
65
|
+
databaseLabel,
|
|
66
|
+
};
|