Do app -> client communication more like tfrpc so that it's easier to get responses.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3956 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-08-13 18:58:06 +00:00
parent 41590921c3
commit d70dba021a
3 changed files with 71 additions and 28 deletions

View File

@ -438,7 +438,7 @@ function api_localStorageSet(key, value) {
}
function api_localStorageGet(key, value) {
send({message: 'localStorage', key: key, value: window.localStorage.getItem('app:' + key)});
return window.localStorage.getItem('app:' + key);
}
function api_requestPermission(permission, id) {
@ -594,10 +594,24 @@ function receive(message) {
}
timeseries.append(now, message.stats[key]);
}
} else if (message && message.action) {
let api = k_api[message.action];
} else if (message &&
message.message === 'tfrpc' &&
message.method) {
let api = k_api[message.method];
if (api) {
api.func(...api.args.map(x => message[x]));
Promise.resolve(api.func(...message.params)).then(function(result) {
send({
message: 'tfrpc',
id: message.id,
result: result,
});
}).catch(function(error) {
send({
message: 'tfrpc',
id: message.id,
error: error,
});
});
}
}
}