runner = {
console.log("Running", settings);
const start = Date.now();
return new Runtime().module(targetNotebook, (name) => {
return {
pending() {
viewof events.value = [
...viewof events.value,
{ status: "pending", ts: Date.now() - start, name: name }
];
viewof events.dispatchEvent(new Event("input", { bubbles: true }));
},
fulfilled(value) {
viewof events.value = [
...viewof events.value,
{
status: "fulfilled",
ts: Date.now() - start,
name: name,
value: value
}
];
viewof events.dispatchEvent(new Event("input", { bubbles: true }));
let sentrySDK = undefined;
if (value?.captureException) sentrySDK = value;
else if (value?.sentry?.captureException) sentrySDK = value.sentry;
else if (value?.value?.sentry?.captureException)
sentrySDK = value.value.sentry;
if (sentrySDK) {
viewof sentry.value = sentrySDK;
viewof sentry.dispatchEvent(new Event("input", { bubbles: true }));
}
},
rejected(error) {
const ignore = settings.excludes.includes(name);
debugger;
viewof events.value = [
...viewof events.value,
{
status: ignore ? "ignored" : "rejected",
ts: Date.now() - start,
name: name,
error: error
}
];
viewof events.dispatchEvent(new Event("input", { bubbles: true }));
if (!ignore) {
viewof errors.value = [
...viewof errors.value,
{ error: error, cell: name }
];
viewof errors.dispatchEvent(new Event("input", { bubbles: true }));
}
}
};
});
}