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] [project]
name = "common" name = "common"
description = "Reusable code stubs" description = "Reusable code stubs"
version = "0.1.8" version = "0.1.9"
requires-python = ">=3.13" requires-python = ">=3.13"
authors = [ authors = [
{ name="BreakerBear", email="breakerbear@autistic.men" }, { name="BreakerBear", email="breakerbear@autistic.men" },

View File

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