this repo has no description
1
2function getWorkerURL( url ) {
3 const content = `globalThis.__global_rel_url="${ url }"\nimportScripts( "${ url }/worker.js" );`;
4 return URL.createObjectURL( new Blob( [ content ], { type: "text/javascript" } ) );
5}
6
7const worker = new Worker(getWorkerURL("https://jon-test.ludl.am/_opam"))
8
9var promises = new Map()
10var id = 1
11
12worker.onmessage = function (e) {
13 j = JSON.parse(e.data)
14 if (j.id) {
15 promise = promises[j.id]
16 promises.delete(j.id)
17 promise(j.result)
18 }
19}
20
21function rpc(method, params) {
22 const localid = id++;
23 return new Promise(function (resolve, reject) {
24 worker.postMessage(JSON.stringify({ id:localid, method, params }));
25 promises[localid] = resolve
26 })
27}
28
29function init(cmas,cmi_urls) {
30 return rpc("init",[{init_libs: {execute: true, findlib_requires:[]}}])
31}
32
33function setup() {
34 return rpc("setup",[null])
35}
36
37function exec(phrase) {
38 return rpc("exec",[phrase])
39}
40
41function dump(result) {
42 console.log(result.stdout)
43}
44
45init([],[]).then(() => setup()).then(function(result) { dump(result); exec("let _ = Mime_printer.push \"text/text\" \"hello, world\";;").then((result) => dump(result))})
46