mirror of
https://github.com/zama-ai/tfhe-rs.git
synced 2026-01-08 22:28:01 -05:00
66 lines
1.7 KiB
JavaScript
66 lines
1.7 KiB
JavaScript
import * as Comlink from "comlink";
|
|
|
|
function setButtonsDisabledState(buttonIds, state) {
|
|
for (let id of buttonIds) {
|
|
let btn = document.getElementById(id);
|
|
if (btn) {
|
|
btn.disabled = state;
|
|
}
|
|
}
|
|
}
|
|
|
|
async function setup() {
|
|
const worker = new Worker(new URL("worker.js", import.meta.url), {
|
|
type: "module",
|
|
});
|
|
const demos = await Comlink.wrap(worker).demos;
|
|
|
|
const demoNames = [
|
|
"compactPublicKeyZeroKnowledgeBench",
|
|
];
|
|
|
|
function setupBtn(id) {
|
|
// Handlers are named in the same way as buttons.
|
|
let fn = demos[id];
|
|
|
|
let button = document.getElementById(id);
|
|
if (button === null) {
|
|
console.error(`button with id: ${id} not found`);
|
|
return null;
|
|
}
|
|
|
|
// Assign onclick handler + enable the button.
|
|
Object.assign(button, {
|
|
onclick: async () => {
|
|
document.getElementById("loader").hidden = false;
|
|
document.getElementById("testSuccess").checked = false;
|
|
setButtonsDisabledState(demoNames, true);
|
|
|
|
console.log(`Running: ${id}`);
|
|
try {
|
|
let results = await fn();
|
|
document.getElementById("testSuccess").checked = true;
|
|
if (results !== undefined) {
|
|
document.getElementById("benchmarkResults").value =
|
|
JSON.stringify(results);
|
|
}
|
|
} catch (error) {
|
|
console.error(`Test Failed: ${error}`);
|
|
document.getElementById("testSuccess").checked = false;
|
|
}
|
|
document.getElementById("loader").hidden = true;
|
|
setButtonsDisabledState(demoNames, false);
|
|
},
|
|
disabled: false,
|
|
});
|
|
|
|
return button;
|
|
}
|
|
|
|
for (let demo of demoNames) {
|
|
setupBtn(demo);
|
|
}
|
|
}
|
|
|
|
setup();
|