UNPKG

thebe-core

Version:

Typescript based core functionality for Thebe

104 lines 3.69 kB
// value of some of these enums are not arbitrary // but relate to events sent from the server via the // event stream export var ServerStatusEvent; (function (ServerStatusEvent) { ServerStatusEvent["launching"] = "launching"; ServerStatusEvent["ready"] = "server-ready"; ServerStatusEvent["closed"] = "closed"; ServerStatusEvent["unknown"] = "unknown"; })(ServerStatusEvent || (ServerStatusEvent = {})); export var SessionStatusEvent; (function (SessionStatusEvent) { SessionStatusEvent["starting"] = "starting"; SessionStatusEvent["ready"] = "ready"; SessionStatusEvent["shutdown"] = "shutdown"; })(SessionStatusEvent || (SessionStatusEvent = {})); export var KernelStatusEvent; (function (KernelStatusEvent) { KernelStatusEvent["starting"] = "starting"; KernelStatusEvent["ready"] = "ready"; KernelStatusEvent["shutdown"] = "shutdown"; })(KernelStatusEvent || (KernelStatusEvent = {})); export var NotebookStatusEvent; (function (NotebookStatusEvent) { NotebookStatusEvent["attached"] = "attached"; NotebookStatusEvent["detached"] = "detached"; NotebookStatusEvent["executing"] = "executing"; NotebookStatusEvent["idle"] = "idle"; })(NotebookStatusEvent || (NotebookStatusEvent = {})); export var CellStatusEvent; (function (CellStatusEvent) { CellStatusEvent["attached"] = "attached"; CellStatusEvent["detached"] = "detached"; CellStatusEvent["executing"] = "executing"; CellStatusEvent["idle"] = "idle"; })(CellStatusEvent || (CellStatusEvent = {})); export var EventSubject; (function (EventSubject) { EventSubject["server"] = "server"; EventSubject["session"] = "session"; EventSubject["kernel"] = "kernel"; EventSubject["notebook"] = "notebook"; EventSubject["cell"] = "cell"; })(EventSubject || (EventSubject = {})); // TODO improve typing around status's export var ErrorStatusEvent; (function (ErrorStatusEvent) { ErrorStatusEvent["warning"] = "warning"; ErrorStatusEvent["executeError"] = "execute-error"; ErrorStatusEvent["error"] = "error"; ErrorStatusEvent["server"] = "server-error"; ErrorStatusEvent["session"] = "session-error"; })(ErrorStatusEvent || (ErrorStatusEvent = {})); export function errorToMessage(json) { var _a; if (!json.traceback) { return json.evalue; } else if (Array.isArray(json.traceback)) { return `${json.evalue}\n${((_a = json.traceback) !== null && _a !== void 0 ? _a : []).join('')}`; } else { return `${json.evalue}\n${JSON.stringify(json.traceback)}`; } } export var ThebeEventType; (function (ThebeEventType) { ThebeEventType["status"] = "status"; ThebeEventType["error"] = "error"; })(ThebeEventType || (ThebeEventType = {})); export class ThebeEvents { constructor() { this.listeners = {}; } _ensureMap(event) { if (!(event in this.listeners)) this.listeners[event] = new Map(); } trigger(event, evt) { if (!(event in this.listeners)) return; this.listeners[event].forEach(({ unbind }, cb) => { cb(event, evt); if (unbind) this.listeners[event].delete(cb); }); } on(event, cb) { this._ensureMap(event); this.listeners[event].set(cb, { unbind: false }); return () => this.off(event, cb); } one(event, cb) { this._ensureMap(event); this.listeners[event].set(cb, { unbind: true }); return () => this.off(event, cb); } off(event, cb) { if (!(event in this.listeners)) return; this.listeners[event].delete(cb); } } //# sourceMappingURL=events.js.map