@@ -8,6 +8,7 @@ const level = require('level')
8
8
const through = require ( 'through2' )
9
9
const pump = require ( 'pump' )
10
10
const mkdirp = require ( 'mkdirp' )
11
+ const collect = require ( 'collect-stream' )
11
12
const argv = require ( 'yargs' ) . argv
12
13
13
14
const { loadMetadata } = require ( './lib/metadata' )
@@ -118,6 +119,16 @@ async function start () {
118
119
return res . sendStatus ( 200 )
119
120
} )
120
121
122
+ app . get ( '/list' , async ( req , res ) => {
123
+ try {
124
+ let result = await list ( db )
125
+ return res . json ( result )
126
+ } catch ( err ) {
127
+ console . error ( 'List error:' , err )
128
+ return res . sendStatus ( 500 )
129
+ }
130
+ } )
131
+
121
132
await store . ready ( )
122
133
await refreshMounts ( hypermount , db )
123
134
@@ -134,6 +145,20 @@ async function start () {
134
145
}
135
146
}
136
147
148
+ function list ( db ) {
149
+ return new Promise ( ( resolve , reject ) => {
150
+ const result = { }
151
+ const stream = db . createReadStream ( )
152
+ stream . on ( 'data' , ( { key : mnt , value : record } ) => {
153
+ result [ record . key ] = mnt
154
+ } )
155
+ stream . on ( 'end' , ( ) => {
156
+ return resolve ( result )
157
+ } )
158
+ stream . on ( 'error' , reject )
159
+ } )
160
+ }
161
+
137
162
async function mount ( hypermount , db , key , mnt , opts ) {
138
163
let { key : mountedKey } = await hypermount . mount ( key , mnt , opts )
139
164
0 commit comments