(root, serverUri)
| 246 | * @returns {Promise<Number>} The quota in bytes |
| 247 | */ |
| 248 | export async function getQuota (root, serverUri) { |
| 249 | const filename = path.join(root, 'settings/serverSide.ttl') |
| 250 | debug('Reading quota from ' + filename) |
| 251 | let prefs |
| 252 | try { |
| 253 | prefs = await _asyncReadfile(filename) |
| 254 | } catch (error) { |
| 255 | debug('Setting no quota. While reading serverSide.ttl, got ' + error) |
| 256 | return Infinity |
| 257 | } |
| 258 | const graph = $rdf.graph() |
| 259 | const storageUri = serverUri.endsWith('/') ? serverUri : serverUri + '/' |
| 260 | try { |
| 261 | $rdf.parse(prefs, graph, storageUri, 'text/turtle') |
| 262 | } catch (error) { |
| 263 | throw new Error('Failed to parse serverSide.ttl, got ' + error) |
| 264 | } |
| 265 | return Number(graph.anyValue($rdf.sym(storageUri), nsObj.solid('storageQuota'))) || Infinity |
| 266 | } |
| 267 | |
| 268 | /** |
| 269 | * Returns true of the user has already exceeded their quota, i.e. it |
no test coverage detected