glpkService = {
const handler = async event => {
if (
event.origin === window.origin &&
event.data.tag === server_comm_tag &&
event.data.method === "solve"
) {
console.log("Running on GLPK");
const model = modelToLp(event.data.model);
if (debug.length) {
const result = glpk.write(model);
mutable cplex = result;
mutable lp = JSON.stringify(model, null, 2);
debugger;
}
const output = await glpk.solve(model, event.data.options || {});
console.log("GLPK complete");
event.source.postMessage(
{
tag: server_comm_tag,
method: "solution",
session: event.data.session,
result: glpkToResult(output.result)
},
window.origin
);
}
};
window.addEventListener("message", handler, false);
invalidation.then(() => window.removeEventListener("message", handler));
}