update: added namespaces in client.js

This commit is contained in:
2026-04-17 10:57:21 +08:00
parent 914ad71a43
commit d9d1547e90
2 changed files with 33 additions and 23 deletions

View File

@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "common"
description = "Reusable code stubs"
version = "0.1.8"
version = "0.1.9"
requires-python = ">=3.13"
authors = [
{ name="BreakerBear", email="breakerbear@autistic.men" },

View File

@@ -12,31 +12,41 @@ CONNECTION.addEventListener('message', (e) => {
else promise.resolve(message.result);
});
async function notify(method, ...args) {
let request = { method };
if (args.length > 0) request.params = args;
let data = JSON.stringify(request);
CONNECTION.send(data);
}
const LogRecord = {
format: (entry) => {
let date = new Date(entry.created).toISOString().slice(0, 19).replace("T", " ");
let line = `[${date}] [${entry.levelname}] [${entry.name}] ${entry.msg}`;
let message = [line, entry.exc_text, entry.stack_info].filter(Boolean).join('\n');
return message;
},
};
async function invoke(method, ...args) {
let id = Math.floor(Math.random() * 1000000000);
let request = { method, id };
if (args.length > 0) request.params = args;
const RemoteProceduralCall = {
notify: async (method, ...args) => {
let request = { method };
if (args.length > 0) request.params = args;
let data = JSON.stringify(request);
CONNECTION.send(data);
},
invoke: async (method, ...args) => {
let id = Math.floor(Math.random() * 1000000000);
let request = { method, id };
if (args.length > 0) request.params = args;
let data = JSON.stringify(request);
CONNECTION.send(data);
let data = JSON.stringify(request);
CONNECTION.send(data);
let reject = null;
let resolve = null;
let promise = new Promise((a, b) => { resolve = a; reject = b; });
let item = { resolve, reject, id };
QUEUE.push(item);
let reject = null;
let resolve = null;
let promise = new Promise((a, b) => { resolve = a; reject = b; });
let item = { resolve, reject, id };
QUEUE.push(item);
let result = await promise;
return result;
}
let result = await promise;
return result;
},
};
window.notify = notify;
window.invoke = invoke;
window.LogRecord = LogRecord;
window.Rpc2 = RemoteProceduralCall;
main(...arguments); // entrypoint to user-defined (async) main stub of the script