js: Clean up some oddness in old code as I struggle to replace it.

This commit is contained in:
Cory McWilliams 2025-02-27 14:28:07 -05:00
parent 4864a0411f
commit eb2b426ec7
3 changed files with 47 additions and 42 deletions

View File

@ -46,7 +46,7 @@ App.prototype.makeFunction = function (api) {
self.calls[id] = {resolve: resolve, reject: reject}; self.calls[id] = {resolve: resolve, reject: reject};
}); });
let message = { let message = {
message: 'tfrpc', action: 'tfrpc',
method: api[0], method: api[0],
params: [...arguments], params: [...arguments],
id: id, id: id,
@ -101,10 +101,10 @@ exports.app_socket = async function socket(request, response) {
try { try {
message = JSON.parse(event.data); message = JSON.parse(event.data);
} catch (error) { } catch (error) {
print('ERROR', error, event.data, event.data.length, event.opCode); print('WebSocket error:', error, event.data, event.data.length, event.opCode);
return; return;
} }
if (message.action == 'hello') { if (!process && message.action == 'hello') {
let packageOwner; let packageOwner;
let packageName; let packageName;
let blobId; let blobId;
@ -121,7 +121,7 @@ exports.app_socket = async function socket(request, response) {
if (!blobId) { if (!blobId) {
response.send( response.send(
JSON.stringify({ JSON.stringify({
message: 'tfrpc', action: 'tfrpc',
method: 'error', method: 'error',
params: [message.path + ' not found'], params: [message.path + ' not found'],
id: -1, id: -1,
@ -174,6 +174,22 @@ exports.app_socket = async function socket(request, response) {
} }
} }
if (process) { 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) { process.app.readOutput(function (message) {
response.send(JSON.stringify(message), 0x1); response.send(JSON.stringify(message), 0x1);
}); });
@ -205,32 +221,13 @@ exports.app_socket = async function socket(request, response) {
if (process && process.timeout > 0) { if (process && process.timeout > 0) {
setTimeout(ping, process.timeout); 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 { } else {
if (process && process.eventHandlers['message']) { if (process) {
await core.invoke(process.eventHandlers['message'], [message]); 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) { } else if (event.opCode == 0x8) {

View File

@ -1325,7 +1325,7 @@ function _receive_websocket_message(message) {
line.append(key, message.stats[key]); 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 api = k_api[message.method];
let id = message.id; let id = message.id;
let params = message.params; let params = message.params;
@ -1333,14 +1333,14 @@ function _receive_websocket_message(message) {
Promise.resolve(api.func(...params)) Promise.resolve(api.func(...params))
.then(function (result) { .then(function (result) {
send({ send({
message: 'tfrpc', action: 'tfrpc',
id: id, id: id,
result: result, result: result,
}); });
}) })
.catch(function (error) { .catch(function (error) {
send({ send({
message: 'tfrpc', action: 'tfrpc',
id: id, id: id,
error: error, error: error,
}); });

View File

@ -648,16 +648,24 @@ async function getProcessBlob(blobId, key, options) {
permissions: await imports.core.permissionsGranted(), permissions: await imports.core.permissionsGranted(),
}); });
}; };
process.resetPermission = async function resetPermission(permission) { process.client_api = {
let user = process?.credentials?.session?.name; createIdentity: function() {
await ssb.setUserPermission( return process.createIdentity();
user, },
options?.packageOwner, resetPermission: async function resetPermission(message) {
options?.packageName, let user = process?.credentials?.session?.name;
permission, await ssb.setUserPermission(
undefined user,
); options?.packageOwner,
return process.sendPermissions(); options?.packageName,
message.permission,
undefined
);
return process.sendPermissions();
},
setActiveIdentity: function setActiveIdentity(message) {
return process.setActiveIdentity(message.identity);
},
}; };
ssb.registerImports(imports, process); ssb.registerImports(imports, process);
process.task.setImports(imports); process.task.setImports(imports);