@@ -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 ,
0 commit comments