From eb2b426ec7fc1a69e7df768e948fcf9e5a08b41b Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Thu, 27 Feb 2025 14:28:07 -0500 Subject: [PATCH] js: Clean up some oddness in old code as I struggle to replace it. --- core/app.js | 55 ++++++++++++++++++++++++-------------------------- core/client.js | 6 +++--- core/core.js | 28 ++++++++++++++++--------- 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/core/app.js b/core/app.js index 053013e7..a34adc64 100644 --- a/core/app.js +++ b/core/app.js @@ -46,7 +46,7 @@ App.prototype.makeFunction = function (api) { self.calls[id] = {resolve: resolve, reject: reject}; }); let message = { - message: 'tfrpc', + action: 'tfrpc', method: api[0], params: [...arguments], id: id, @@ -101,10 +101,10 @@ exports.app_socket = async function socket(request, response) { try { message = JSON.parse(event.data); } catch (error) { - print('ERROR', error, event.data, event.data.length, event.opCode); + print('WebSocket error:', error, event.data, event.data.length, event.opCode); return; } - if (message.action == 'hello') { + if (!process && message.action == 'hello') { let packageOwner; let packageName; let blobId; @@ -121,7 +121,7 @@ exports.app_socket = async function socket(request, response) { if (!blobId) { response.send( JSON.stringify({ - message: 'tfrpc', + action: 'tfrpc', method: 'error', params: [message.path + ' not found'], id: -1, @@ -174,6 +174,22 @@ exports.app_socket = async function socket(request, response) { } } if (process) { + process.client_api.tfrpc = function(message) { + if (message.id) { + let calls = process?.app?.calls; + if (calls) { + let call = calls[message.id]; + if (call) { + if (message.error !== undefined) { + call.reject(message.error); + } else { + call.resolve(message.result); + } + delete calls[message.id]; + } + } + } + }; process.app.readOutput(function (message) { response.send(JSON.stringify(message), 0x1); }); @@ -205,32 +221,13 @@ exports.app_socket = async function socket(request, response) { if (process && process.timeout > 0) { setTimeout(ping, process.timeout); } - } else if (message.action == 'resetPermission') { - if (process) { - process.resetPermission(message.permission); - } - } else if (message.action == 'setActiveIdentity') { - process.setActiveIdentity(message.identity); - } else if (message.action == 'createIdentity') { - await process.createIdentity(); - } else if (message.message == 'tfrpc') { - if (message.id) { - let calls = process?.app?.calls; - if (calls) { - let call = calls[message.id]; - if (call) { - if (message.error !== undefined) { - call.reject(message.error); - } else { - call.resolve(message.result); - } - delete calls[message.id]; - } - } - } } else { - if (process && process.eventHandlers['message']) { - await core.invoke(process.eventHandlers['message'], [message]); + if (process) { + if (process.client_api[message.action]) { + process.client_api[message.action](message); + } else if (process.eventHandlers['message']) { + await core.invoke(process.eventHandlers['message'], [message]); + } } } } else if (event.opCode == 0x8) { diff --git a/core/client.js b/core/client.js index bd2b98b5..b3e97624 100644 --- a/core/client.js +++ b/core/client.js @@ -1325,7 +1325,7 @@ function _receive_websocket_message(message) { line.append(key, message.stats[key]); } } - } else if (message && message.message === 'tfrpc' && message.method) { + } else if (message && message.action === 'tfrpc' && message.method) { let api = k_api[message.method]; let id = message.id; let params = message.params; @@ -1333,14 +1333,14 @@ function _receive_websocket_message(message) { Promise.resolve(api.func(...params)) .then(function (result) { send({ - message: 'tfrpc', + action: 'tfrpc', id: id, result: result, }); }) .catch(function (error) { send({ - message: 'tfrpc', + action: 'tfrpc', id: id, error: error, }); diff --git a/core/core.js b/core/core.js index 54deed7c..14221692 100644 --- a/core/core.js +++ b/core/core.js @@ -648,16 +648,24 @@ async function getProcessBlob(blobId, key, options) { permissions: await imports.core.permissionsGranted(), }); }; - process.resetPermission = async function resetPermission(permission) { - let user = process?.credentials?.session?.name; - await ssb.setUserPermission( - user, - options?.packageOwner, - options?.packageName, - permission, - undefined - ); - return process.sendPermissions(); + process.client_api = { + createIdentity: function() { + return process.createIdentity(); + }, + resetPermission: async function resetPermission(message) { + let user = process?.credentials?.session?.name; + await ssb.setUserPermission( + user, + options?.packageOwner, + options?.packageName, + message.permission, + undefined + ); + return process.sendPermissions(); + }, + setActiveIdentity: function setActiveIdentity(message) { + return process.setActiveIdentity(message.identity); + }, }; ssb.registerImports(imports, process); process.task.setImports(imports);