{"_id":"@dan_koyuki/mongoose-connection-manager","_rev":"4-8a49a77dda9d9fdec522f7a483eb86a2","name":"@dan_koyuki/mongoose-connection-manager","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@dan_koyuki/mongoose-connection-manager","version":"1.0.0","keywords":["mongoose","mongodb","connection","manager","multi-database","orm"],"author":{"name":"Dan Koyuki"},"license":"MIT","_id":"@dan_koyuki/mongoose-connection-manager@1.0.0","maintainers":[{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"}],"homepage":"https://github.com/Danang-Bahtiar/mongoose-connection-manager#readme","bugs":{"url":"https://github.com/Danang-Bahtiar/mongoose-connection-manager/issues"},"dist":{"shasum":"029b55dd501b192fede8a61b28be918f981df56a","tarball":"https://registry.npmjs.org/@dan_koyuki/mongoose-connection-manager/-/mongoose-connection-manager-1.0.0.tgz","fileCount":6,"integrity":"sha512-KsbGPmfGs9MT50ykN4LUAc5FjFW7rS6y15iHxOneT4Q6dg6As3L/0ZziqSWKj9BJFZ5Mm4cQxejrsJ+4lxbFhg==","signatures":[{"sig":"MEQCIH/ntLRsrUOwRtP/2Qn8Gb8Zevf1libTw8k7YDWdcZNwAiBdsa1hSFzI/Hg0AsQ6nrCM8Qs+uknLyfATWNokeBK4rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13142},"main":"src/cjs/index.cjs","type":"module","module":"src/mjs/index.mjs","exports":{"import":"./src/mjs/index.mjs","require":"./src/cjs/index.cjs"},"gitHead":"4ffacd3e6a86d1069732960a291fbb06e50f01d8","_npmUser":{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"},"repository":{"url":"git+https://github.com/Danang-Bahtiar/mongoose-connection-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight utility to manage multiple Mongoose connections with ease.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"mongoose":"^8.16.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/mongoose-connection-manager_1.0.0_1752620883770_0.7128978245255231","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dan_koyuki/mongoose-connection-manager","version":"1.1.0","keywords":["mongoose","mongodb","connection","manager","multi-database","orm"],"author":{"name":"Dan Koyuki"},"license":"MIT","_id":"@dan_koyuki/mongoose-connection-manager@1.1.0","maintainers":[{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"}],"homepage":"https://github.com/Danang-Bahtiar/mongoose-connection-manager#readme","bugs":{"url":"https://github.com/Danang-Bahtiar/mongoose-connection-manager/issues"},"dist":{"shasum":"25eb3f19325e84739cc19b9ed3360eadb5861ca7","tarball":"https://registry.npmjs.org/@dan_koyuki/mongoose-connection-manager/-/mongoose-connection-manager-1.1.0.tgz","fileCount":6,"integrity":"sha512-yfyooWRcxsFGArR/BjUxDBcVNHu/UeIfId/XxMdrG0lxrl5Q7eJle4h5AZyKPay1eGsd/rkbRHJ+6mqdFuMVHQ==","signatures":[{"sig":"MEUCIH9y6HqnSZaNblbdu0mfSV/Zv7dfwd0ltvy3yg5jplE3AiEA62gPWDIPAMkhkt47eBSa8kfsJXr3n5NxnfKIop44I/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12649},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"4ffacd3e6a86d1069732960a291fbb06e50f01d8","scripts":{"build":"tsc"},"_npmUser":{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"},"repository":{"url":"git+https://github.com/Danang-Bahtiar/mongoose-connection-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight utility to manage multiple Mongoose connections with ease.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"mongoose":"^8.16.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mongoose-connection-manager_1.1.0_1755997086101_0.2721845965297498","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@dan_koyuki/mongoose-connection-manager","version":"1.1.1","keywords":["mongoose","mongodb","connection","manager","multi-database","orm"],"author":{"name":"Dan Koyuki"},"license":"MIT","_id":"@dan_koyuki/mongoose-connection-manager@1.1.1","maintainers":[{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"}],"homepage":"https://github.com/Danang-Bahtiar/mongoose-connection-manager#readme","bugs":{"url":"https://github.com/Danang-Bahtiar/mongoose-connection-manager/issues"},"dist":{"shasum":"78a4c00a72dd971b485f840d2b3c2a0a64d72bd3","tarball":"https://registry.npmjs.org/@dan_koyuki/mongoose-connection-manager/-/mongoose-connection-manager-1.1.1.tgz","fileCount":6,"integrity":"sha512-K+ML5VFlo9l8NsE1XvAzbik1LDTxTuA37QE9m4IguAN/nhNDSS8EMHb79C7FJ5truzD7zQjQwX110lxJmABOCQ==","signatures":[{"sig":"MEQCIDV4T8wFFsAmfUmD4EwVlg31nWSA1kDaw4c7PD3bUFurAiA6Iyu6MTlSSjLCIiU/NSDeSzfJXiZT/Db6PevtYiE8/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12655},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"4ffacd3e6a86d1069732960a291fbb06e50f01d8","scripts":{"build":"tsc"},"_npmUser":{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"},"repository":{"url":"git+https://github.com/Danang-Bahtiar/mongoose-connection-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A lightweight utility to manage multiple Mongoose connections with ease.","directories":{},"_nodeVersion":"20.18.1","dependencies":{"mongoose":"^8.16.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.3","@types/node":"^24.1.0"},"_npmOperationalInternal":{"tmp":"tmp/mongoose-connection-manager_1.1.1_1756805636600_0.29880956216875454","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@dan_koyuki/mongoose-connection-manager","version":"1.1.2","description":"A lightweight utility to manage multiple Mongoose connections with ease.","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"tsc"},"author":{"name":"Dan Koyuki"},"license":"MIT","keywords":["mongoose","mongodb","connection","manager","multi-database","orm"],"repository":{"type":"git","url":"git+https://github.com/Danang-Bahtiar/mongoose-connection-manager.git"},"bugs":{"url":"https://github.com/Danang-Bahtiar/mongoose-connection-manager/issues"},"homepage":"https://github.com/Danang-Bahtiar/mongoose-connection-manager#readme","peerDependencies":{"mongoose":"^8.16.4"},"devDependencies":{"@types/node":"^24.1.0","typescript":"^5.8.3","mongoose":"^8.16.4"},"_id":"@dan_koyuki/mongoose-connection-manager@1.1.2","gitHead":"81d07890e3fd586d9562a3b0f84cfbb009bf195d","_nodeVersion":"20.18.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-sAMZ7/+0CAy1NrkcTDAzJ1HuiRWU6iYK9w8NryRGTtsYzeQG8CUd5HXdHrgX1sFbGZH3mmgy6jfEeev2Xu6R5w==","shasum":"91c443f9fd70f343bbc1dc0900c0c1d9a6f85a56","tarball":"https://registry.npmjs.org/@dan_koyuki/mongoose-connection-manager/-/mongoose-connection-manager-1.1.2.tgz","fileCount":6,"unpackedSize":12748,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID8JPlCswqrpgeULhdVj2pLuKdIi6yssfZ26t/ZVd9SFAiEA8AaUiRlY6i4VhzyfvBm/10AVyb/fO3QmpcVMOx63s8Y="}]},"_npmUser":{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"},"directories":{},"maintainers":[{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mongoose-connection-manager_1.1.2_1758006767488_0.9500244485924141"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-15T23:08:03.678Z","modified":"2025-09-16T07:12:47.836Z","1.0.0":"2025-07-15T23:08:03.975Z","1.1.0":"2025-08-24T00:58:06.284Z","1.1.1":"2025-09-02T09:33:56.771Z","1.1.2":"2025-09-16T07:12:47.650Z"},"bugs":{"url":"https://github.com/Danang-Bahtiar/mongoose-connection-manager/issues"},"author":{"name":"Dan Koyuki"},"license":"MIT","homepage":"https://github.com/Danang-Bahtiar/mongoose-connection-manager#readme","keywords":["mongoose","mongodb","connection","manager","multi-database","orm"],"repository":{"type":"git","url":"git+https://github.com/Danang-Bahtiar/mongoose-connection-manager.git"},"description":"A lightweight utility to manage multiple Mongoose connections with ease.","maintainers":[{"name":"dan_koyuki","email":"dankoyuki398@gmail.com"}],"readme":"#### Readme not updated, however some function is stay same!\n\n# Mongoose Connection Manager\n\nA lightweight and modular class for managing **multiple MongoDB connections** using Mongoose. Supports easy creation, retrieval, monitoring, and cleanup of named connections.\n\n---\n\n## ✨ Features\n\n- 🔌 Add and store multiple named Mongoose connections\n- 📡 Get connection state, active connection count, or MongoDB client\n- 🧹 Graceful shutdown on `SIGINT` with auto-close of all connections\n- 🧾 Optional detailed connection listing (models, URIs, states)\n- ✅ Clean API for integration in larger applications\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install mongoose-connection-manager\n```\n\n## 🚀 Usage\n1. Add a new connection\n```bash\nawait mongooseConnectionManager.addConnection(\"mainDB\", \"mongodb://localhost:27017/mydb\", {\n  useNewUrlParser: true,\n  useUnifiedTopology: true,\n});\n```\n2. Get a connection (to use with models, etc.)\n```bash\nconst conn = mongooseConnectionManager.getConnection(\"mainDB\");\nconst User = conn.model(\"User\", new mongoose.Schema({ name: String }));\n```\n3. Get raw MongoDB client\n```bash\nconst client = mongooseConnectionManager.getClient(\"mainDB\");\n```\n4. Get connection state\n```bash\nconst state = mongooseConnectionManager.getState(\"mainDB\");\n// 0 = disconnected, 1 = connected, 2 = connecting, 3 = disconnecting\n```\n5. List connections\n```bash\nconst names = mongooseConnectionManager.getAllConnections();\n// ['mainDB', 'logsDB', ...]\n\nconst details = mongooseConnectionManager.getAllConnections(true);\n/*\n[\n  {\n    name: 'mainDB',\n    state: 1,\n    models: ['User'],\n    uri: 'localhost/mydb'\n  },\n  ...\n]\n*/\n```\n6. Get active connection count\n```bash\nconst count = mongooseConnectionManager.getActiveConnectionCount();\n```\n7. Close one or all connections\n```bash\nawait mongooseConnectionManager.closeConnection(\"mainDB\");\nawait mongooseConnectionManager.closeAllConnections();\n💡 All connections are automatically closed when the process receives a SIGINT (e.g., Ctrl+C).\n```\n\n## 🧪 Example: Define models with specific connection\n```bash\nconst conn = mongooseConnectionManager.getConnection(\"mainDB\");\n\nconst User = conn.model(\"User\", new mongoose.Schema({\n  username: String,\n  createdAt: { type: Date, default: Date.now }\n}));\n\nawait User.create({ username: \"dan\" });\n```\n\n## 📚 API Summary\n| Method | Description |\n| -------|-------------|\n| addConnection(name, url, options?) |Creates and stores a new Mongoose connection. |\ngetConnection(name)|\tRetrieves a specific connection.\ngetClient(name)\t|Retrieves the underlying MongoClient instance.\ngetState(name)\t|Returns the readyState of a connection.\ngetAllConnections(withDetails?)\t|Returns names or full details of all connections.\ngetActiveConnectionCount()\t|Returns the number of active connections.\ncloseConnection(name)\t|Closes a specific connection.\ncloseAllConnections()\t|Closes all active connections.","readmeFilename":"README.md"}