Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

Commit 7344699

Browse files
committed
Unify find_db, disconnect dbs on remove
1 parent 3b57e35 commit 7344699

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

src/lib/db-manager.js

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,37 @@ class DBManager {
22
constructor(orbitdb){
33
let _dbs = {};
44

5-
this.get = async (dbname, params) => {
6-
if (dbname in _dbs) {
7-
return _dbs[dbname];
5+
let find_db = (dbn) => {
6+
if (dbn in _dbs) return _dbs[dbn]
7+
_dbs.forEach(db => {
8+
if (dbn = db.id) {
9+
return db
10+
} else if (dbn = [db.address.root, db.address.path].join('/')) {
11+
return db
12+
}
13+
});
14+
};
15+
16+
this.get = async (dbn, params) => {
17+
let db = find_db(dbn);
18+
if (db) {
19+
return db;
820
} else {
9-
let db;
10-
console.log(`Opening db ${dbname}`);
11-
db = await orbitdb.open(dbname, params);
21+
console.log(`Opening db ${dbn}`);
22+
db = await orbitdb.open(dbn, params);
1223
await db.load();
1324
console.log(`Loaded db ${db.dbname}`);
1425
_dbs[db.dbname] = db;
1526
return db;
1627
}
1728
};
1829

19-
this.db_list_remove = (dbname) => {
20-
delete _dbs[dbname];
30+
this.db_list_remove = (dbn) => {
31+
db = find_db(dbn)
32+
if (db) {
33+
await db.disconnect()
34+
delete _dbs[db.dbname];
35+
}
2136
}
2237

2338
this.db_list = () => {
@@ -31,16 +46,7 @@ class DBManager {
3146
};
3247

3348
this.db_info = (dbn) => {
34-
var db = _dbs[dbn];
35-
if (!db) {
36-
_dbs.forEach(d => {
37-
if (dbn = d.id) {
38-
db = d
39-
} else if (dbn = [d.address.root, d.address.path].join('/')) {
40-
db = d
41-
}
42-
});
43-
}
49+
let db = find_db(dbn);
4450
if (!db) return {};
4551
return {
4652
address: db.address,

0 commit comments

Comments
 (0)