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

Commit 2e19626

Browse files
committed
Merge branch 'db_info-update' into 0.1.0-rc.1.1
2 parents 1697e24 + 0c4a4d0 commit 2e19626

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
lines changed

src/lib/db-manager.js

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,49 @@ 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+
let result
7+
console.log(`Serching for ${dbn} in DBs`)
8+
if (dbn in _dbs) return _dbs[dbn]
9+
for (let db of Object.values(_dbs)) {
10+
if (dbn == db.id) {
11+
result = db
12+
break
13+
} else if (dbn == [db.address.root, db.address.path].join('/')) {
14+
result = db
15+
break
16+
}
17+
};
18+
if (result) return result
19+
console.log(`DB ${dbn} not found`)
20+
};
21+
22+
this.get = async (dbn, params) => {
23+
let db = find_db(dbn);
24+
if (db) {
25+
return db;
826
} else {
9-
let db;
10-
console.log(`Opening db ${dbname}`);
11-
db = await orbitdb.open(dbname, params);
27+
console.log(`Opening db ${dbn}`);
28+
db = await orbitdb.open(dbn, params);
1229
await db.load();
1330
console.log(`Loaded db ${db.dbname}`);
1431
_dbs[db.dbname] = db;
1532
return db;
1633
}
1734
};
1835

19-
this.db_list_remove = (dbname) => {
20-
delete _dbs[dbname];
36+
this.db_list_remove = async (dbn) => {
37+
let db = find_db(dbn)
38+
if (db) {
39+
await db.close()
40+
delete _dbs[db.dbname];
41+
console.log(`Unloaded db ${db.dbname}`);
42+
}
2143
}
2244

2345
this.db_list = () => {
2446
let db_info_list = {};
25-
for (var dbn in _dbs) {
47+
for (let dbn in _dbs) {
2648
if (_dbs.hasOwnProperty(dbn)) {
2749
db_info_list[dbn] = this.db_info(dbn);
2850
}
@@ -31,7 +53,7 @@ class DBManager {
3153
};
3254

3355
this.db_info = (dbn) => {
34-
var db = _dbs[dbn];
56+
let db = find_db(dbn);
3557
if (!db) return {};
3658
return {
3759
address: db.address,

src/lib/orbitdb-api.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,7 @@ class OrbitdbAPI extends Express {
4242
});
4343

4444
this.delete('/db/:dbname', asyncMiddleware( async (req, res, next) => {
45-
let db
46-
db = await dbm.get(req.params.dbname)
47-
48-
await db.drop()
49-
dbm.db_list_remove(req.params.dbname)
45+
await dbm.db_list_remove(req.params.dbname)
5046
return res.json('')
5147
}))
5248

0 commit comments

Comments
 (0)