UNPKG

thebe-core

Version:

Typescript based core functionality for Thebe

76 lines (67 loc) 2.2 kB
import ThebeServer from '../server'; import type { CodeBlock } from '../notebook'; import ThebeNotebook from '../notebook'; import type { INotebookContent } from '@jupyterlab/nbformat'; import type { Config } from '..'; import { ThebeEvents } from '../events'; import { makeConfiguration } from '../options'; import { makeRenderMimeRegistry } from '../rendermime'; import * as coreModule from '../index'; import type { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import version from '../version'; export function connectToBinder(config: Config): ThebeServer { const server: ThebeServer = new ThebeServer(config); console.debug(`thebe:api:connect binder 📡`, config.binder); server.connectToServerViaBinder(); return server; } export function connectToJupyter(config: Config): ThebeServer { const server: ThebeServer = new ThebeServer(config); console.debug(`thebe:api:connect direct 🔌`, config.serverSettings); server.connectToJupyterServer(); return server; } export function connectToJupyterLite(config: Config): ThebeServer { const server: ThebeServer = new ThebeServer(config); console.debug(`thebe:api:connect JupyterLite 🤘`); server.connectToJupyterLiteServer(); return server; } export function makeEvents() { return new ThebeEvents(); } export function makeServer(config: Config) { return new ThebeServer(config); } export function setupNotebookFromBlocks( blocks: CodeBlock[], config: Config, rendermime: IRenderMimeRegistry, ) { return ThebeNotebook.fromCodeBlocks(blocks, config, rendermime); } export function setupNotebookFromIpynb( ipynb: INotebookContent, config: Config, rendermime: IRenderMimeRegistry, ) { return ThebeNotebook.fromIpynb(ipynb, config, rendermime); } export function setupThebeCore() { console.debug(`thebe-core (v${version})`, { coreModule }); window.thebeCore = Object.assign(window.thebeCore ?? {}, { module: coreModule, api: { makeConfiguration, makeEvents, makeServer, makeRenderMimeRegistry, connectToBinder, connectToJupyter, connectToJupyterLite, setupNotebookFromBlocks, setupNotebookFromIpynb, }, version, }); }