Enumerate apps without walking all DB keys.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3768 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
parent
1ae9aaf752
commit
4637509b3d
26
core/core.js
26
core/core.js
@ -193,12 +193,17 @@ async function getProcessBlob(blobId, key, options) {
|
|||||||
'getUser': getUser.bind(null, process, process),
|
'getUser': getUser.bind(null, process, process),
|
||||||
'user': getUser(process, process),
|
'user': getUser(process, process),
|
||||||
'apps': function() {
|
'apps': function() {
|
||||||
var apps = process.credentials &&
|
if (process.credentials &&
|
||||||
process.credentials.session &&
|
process.credentials.session &&
|
||||||
process.credentials.session.name ?
|
process.credentials.session.name) {
|
||||||
new Database(process.credentials.session.name).getLike('path:%') :
|
var db = new Database(process.credentials.session.name);
|
||||||
{};
|
try {
|
||||||
return Object.fromEntries(Object.keys(apps).map(key => [key.substring(5), apps[key]]));
|
var names = JSON.parse(db.get('apps'));
|
||||||
|
return Object.fromEntries(names.map(name => [name, db.get('path:' + name)]));
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {};
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -478,7 +483,16 @@ async function blobHandler(request, response, blobId, uri) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var database = new Database(user);
|
var database = new Database(user);
|
||||||
await database.set('path:' + app, newBlobId);
|
var apps = new Set();
|
||||||
|
try {
|
||||||
|
apps = new Set(JSON.parse(database.get('apps')));
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
|
if (!apps.has(app)) {
|
||||||
|
apps.add(app);
|
||||||
|
database.set('apps', JSON.stringify([...apps]));
|
||||||
|
}
|
||||||
|
database.set('path:' + app, newBlobId);
|
||||||
}
|
}
|
||||||
|
|
||||||
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
|
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
|
||||||
|
Loading…
Reference in New Issue
Block a user