Module-ified the ssb app and started to integrate tfrpc.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3911 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-06-19 22:08:15 +00:00
parent af3e96c7e8
commit ab58f42f0c
8 changed files with 59 additions and 41 deletions

View File

@ -26,6 +26,14 @@ function make_rpc(target, prop, receiver) {
}
}
function send(response) {
if (k_is_browser) {
window.parent.postMessage(response, '*');
} else {
app.postMessage(response);
}
}
function call_rpc(message) {
if (message && message.message === 'tfrpc') {
if (message.method) {
@ -33,14 +41,16 @@ function call_rpc(message) {
if (method) {
let response = {message: 'tfrpc', id: message.id};
try {
response.result = method(...message.params);
Promise.resolve(method(...message.params)).then(function(result) {
response.result = result;
send(response);
}).catch(function(error) {
response.error = error;
send(response);
});
} catch (error) {
response.error = error;
}
if (k_is_browser) {
window.parent.postMessage(response, '*');
} else {
app.postMessage(response);
send(response);
}
} else {
throw new Error(message.method + ' not found.');