From dbe24494d962669c98783dd8ddaeb0b6c9edacca Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Sun, 16 Jun 2024 16:02:39 -0400 Subject: [PATCH] Remove ssb.messageContentGet. It's easy to do this with ssb.sqlAsync, and this wasn't being used productively. Three uses of DB on the main thread remaining. --- core/core.js | 29 +++++++---------------------- src/ssb.js.c | 20 -------------------- 2 files changed, 7 insertions(+), 42 deletions(-) diff --git a/core/core.js b/core/core.js index 90dc246b..7aed4982 100644 --- a/core/core.js +++ b/core/core.js @@ -749,7 +749,7 @@ async function getProcessBlob(blobId, key, options) { }; process.task.setImports(imports); process.task.activate(); - let source = await getBlobOrContent(blobId); + let source = await ssb.blobGet(blobId); let appSourceName = blobId; let appSource = utf8Decode(source); try { @@ -757,7 +757,7 @@ async function getProcessBlob(blobId, key, options) { if (appObject.type == 'tildefriends-app') { appSourceName = options?.script ?? 'app.js'; let id = appObject.files[appSourceName]; - let blob = await getBlobOrContent(id); + let blob = await ssb.blobGet(id); appSource = utf8Decode(blob); await process.task.loadFile([ '/tfrpc.js', @@ -767,7 +767,7 @@ async function getProcessBlob(blobId, key, options) { Object.keys(appObject.files).map(async function (f) { await process.task.loadFile([ f, - await getBlobOrContent(appObject.files[f]), + await ssb.blobGet(appObject.files[f]), ]); }) ); @@ -851,21 +851,6 @@ function sendData(response, data, type, headers, status_code) { } } -/** - * TODOC - * @param {*} id - * @returns - */ -async function getBlobOrContent(id) { - if (!id) { - return; - } else if (id.startsWith('&')) { - return ssb.blobGet(id); - } else if (id.startsWith('%')) { - return ssb.messageContentGet(id); - } -} - let g_handler_index = 0; /** @@ -993,7 +978,7 @@ async function blobHandler(request, response, blobId, uri) { response.writeHead(304, headers); response.end(); } else { - data = await getBlobOrContent(id); + data = await ssb.blobGet(id); if (match[3]) { let appObject = JSON.parse(data); data = appObject.files[match[3]]; @@ -1025,7 +1010,7 @@ async function blobHandler(request, response, blobId, uri) { response.writeHead(304, headers); response.end(); } else { - data = await getBlobOrContent(blobId); + data = await ssb.blobGet(blobId); sendData( response, data, @@ -1141,7 +1126,7 @@ async function blobHandler(request, response, blobId, uri) { app_id = await db.get('path:' + match[2]); } - let app_object = JSON.parse(utf8Decode(await getBlobOrContent(app_id))); + let app_object = JSON.parse(utf8Decode(await ssb.blobGet(app_id))); id = app_object?.files[uri.substring(1)]; if (!id && app_object?.files['handler.js']) { let answer; @@ -1197,7 +1182,7 @@ async function blobHandler(request, response, blobId, uri) { 'Access-Control-Allow-Origin': '*', 'Content-Security-Policy': k_content_security_policy, }; - data = await getBlobOrContent(id); + data = await ssb.blobGet(id); let type = httpd.mime_type_from_extension(uri) || httpd.mime_type_from_magic_bytes(data); diff --git a/src/ssb.js.c b/src/ssb.js.c index 44cf9721..f5e7da9a 100644 --- a/src/ssb.js.c +++ b/src/ssb.js.c @@ -910,25 +910,6 @@ static JSValue _tf_ssb_blobStore(JSContext* context, JSValueConst this_val, int return result; } -static JSValue _tf_ssb_messageContentGet(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv) -{ - JSValue result = JS_NULL; - tf_ssb_t* ssb = JS_GetOpaque(this_val, _tf_ssb_classId); - if (ssb) - { - const char* id = JS_ToCString(context, argv[0]); - uint8_t* blob = NULL; - size_t size = 0; - if (tf_ssb_db_message_content_get(ssb, id, &blob, &size)) - { - result = JS_NewArrayBufferCopy(context, blob, size); - tf_free(blob); - } - JS_FreeCString(context, id); - } - return result; -} - static JSValue _tf_ssb_connections(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv) { JSValue result = JS_NULL; @@ -2156,7 +2137,6 @@ void tf_ssb_register(JSContext* context, tf_ssb_t* ssb) JS_SetPropertyStr(context, object, "getActiveIdentity", JS_NewCFunction(context, _tf_ssb_getActiveIdentity, "getActiveIdentity", 3)); JS_SetPropertyStr(context, object, "getIdentityInfo", JS_NewCFunction(context, _tf_ssb_getIdentityInfo, "getIdentityInfo", 3)); JS_SetPropertyStr(context, object, "blobGet", JS_NewCFunction(context, _tf_ssb_blobGet, "blobGet", 1)); - JS_SetPropertyStr(context, object, "messageContentGet", JS_NewCFunction(context, _tf_ssb_messageContentGet, "messageContentGet", 1)); JS_SetPropertyStr(context, object, "connections", JS_NewCFunction(context, _tf_ssb_connections, "connections", 0)); JS_SetPropertyStr(context, object, "storedConnections", JS_NewCFunction(context, _tf_ssb_storedConnections, "storedConnections", 0)); JS_SetPropertyStr(context, object, "getConnection", JS_NewCFunction(context, _tf_ssb_getConnection, "getConnection", 1));